C++ Books

Showing posts with label Jaakko Järvi. Show all posts
Showing posts with label Jaakko Järvi. Show all posts

Wednesday, September 26, 2012

HotDrink: A Library for Web User Interfaces

by John Freeman, Jaakko Järvi, and Gabriel Foust

HotDrink is a JavaScript library for constructing forms, dialogs, and other common user interfaces for Web applications. With HotDrink, instead of writing event handlers, developers declare a "view-model" in JavaScript and a set of "bindings" between the view-model and the HTML elements comprising the view. These specifications tend to be small, but they are enough for HotDrink to provide a fully operational GUI with multi-way dataflows, enabling/disabling of values, activation/deactivation of commands, and data validation. HotDrink implements these rich behaviors, expected of high-quality user interfaces, as generic reusable algorithms. This paper/tool demonstration introduces developers to the HotDrink library by stepping through the construction of an example web application GUI.

The library is a concrete realization of our prior work on the "property models" approach to declarative GUI programming. To encourage adoption among developers, we have packaged the technology following established web programming conventions.

See also: GPCE'12 paper, property models, demo, project

Tuesday, November 23, 2010

Extending Type Systems in a Library

Type-safe XML processing in C++
by Yuriy Solodkyy and Jaakko Järvi

Abstract

Type systems built directly into the compiler or interpreter of a programming language cannot be easily extended to keep track of run-time invariants of new abstractions. Yet, programming with domain-specific abstractions could benefit from additional static checking. This paper presents library techniques for extending the type system of C++ to support domain-specific abstractions. The main contribution is a programmable “subtype” relation. As a demonstration of the techniques, we implement a type system for defining type qualifiers in C++, as well as a type system for the XML processing language, capable of, e.g., statically guaranteeing that a program only produces valid XML documents according to a given XML schema.


Research highlights

  • Metaprogramming capabilities of C++ enable domain-specific type system extensions.
  • A template library for building new type system extensions.
  • Type system extensions for type qualifiers.
  • Type system extensions for regular expression types for typing XML.

Keywords: Type systems; XML; Type qualifiers; C++; Template metaprogramming; Active libraries

Thursday, September 23, 2010

Literature Search for Computer Science

Interesting talk by Todd Veldhuizen that was presented by Dr. Jaakko Jarvi during our PTTL Reading Group gathering last Friday.

Literature Search for Computer Science

by Todd Veldhuizen
Abstract
Why read the literature?
  • Because sometimes "a year of hard work can save a week of reading".
  • Increase the likelihood that someone will care about your research:
    • Not duplicate an already known result.
    • Identify communities of people who will appreciate what you are doing.
  • Be able to give a convincing treatment of your research problem:
    • Using standard terminology and notations;
    • Comparing your contribution to related work;
    • Avoiding obvious ‘newbie ’ mistakes
    • Not getting crushed by some crusty professor who claims to have published your result twenty years ago.