Home research People General Info Seminars Resources Intranet
Home Page for Jaakko Järvi | Parasol Laboratory

Picture Jaakko Järvi
Associate Professor
Programming Tools, Techniques and Languages Group

Parasol Laboratory url: http://parasol.tamu.edu/~jarvi/
Department of Computer Science and Engineering email:
Texas A&M University office: 416 HRBB
College Station, TX 77843-3112 tel: (979) 845-4359
USA fax: (979) 458-0718

Course information


My research interests include user interface programming, generic and generative programming, programming languages, type systems, and software construction in general.

  • Publications.
  • Students:
    • Jason Wilkins, PhD
    • Anirudh Ramanathan, MS
    • Pawan Singh, MS
    • Natalie Rawle, BS
  • Alumni:
    • Gabriel Foust, PhD (Two Sigma) (passed defense in Dec, will graduate in Spring 2016)
    • John Freeman, PhD (Harding University) (passed defense in Dec, will graduate in Spring 2016)
    • Xiaolong Tang, PhD
    • Sankara Muthukrishnan, MS (National Instruments)
    • Wonseok Kim, MS (Microsoft)
    • Jacob Smith, PhD (Intel)
    • Aravind Srinivasa, MS (Cisco Systems),
    • Sylvia N'Guessan, MS (Cisco Systems)
    • Santhosh Srinivasan, MCS (Yahoo!)
    • Philip van Ruitenbeek, undergraduate research
    • Lucas Kuhr, undergraduate research
    • Travis Kosarek, undergraduate research


The MultiselectJS is a JavaScript library for implementing multi-selection (with a mouse, etc.) in any context where multi-selection is meaningful.

The HotDrink project is a library for declaratively programming user interfaces.

The Boost Tuple Library and the Boost Lambda Library are generic programming libraries I've been involved in developing. Another small but useful C++ tool is the enable_if family of templates, also part of the C++ Boost library collection.

C++ standardization

I'm involved in the C++ ISO standardization process. Some of the libraries and features I have worked on include tuple types, support for partial function application (bind templates), core language support for inferring the type of a variable from its initializer expression, decltype operator, auto specifier, a constraint system for C++ templates ("concepts"), variadic templates, and lambda expressions. See my publications page for technical reports that contain more detailed description of the topics.