The Poplar project

Programming Language Support for Component Integration

This is a research project of the Honiden laboratory at the National Institute of Informatics in Tokyo, Japan.

Modern software is composed from components; this is sometimes called component based software engineering. Components can be developed in-house, obtained from external vendors, or can be supplied with the programming language being used. However, composing such components in modern languages such as Java and C# is still a tedious and error-prone task. It becomes especially challenging when those components, and their interfaces in particular, evolve continuously and out of sync with each other.

In this project, Poplar, we investigate ways of creating support for dynamic integration of components at the programming language level. By adding state and protocol information to the type system - similar to the static analysis technique known as typestate checking - we obtain information that is used to generate and regenerate the code that integrates components automatically.

Internship opportunities

We have an early prototype, which is implemented as an extension to the Java language, but there is still much work to be done, and there are openings for contributions in many different areas. The ideal candidate has knowledge and/or interest in areas such as static analysis, code generation, software engineering and programming languages. There are openings for both theoretical work, such as formalising operational semantics, and practical work, such as improving the implementation and the basic design. Knowledge of the Scala language is beneficial but not necessary.

The following papers would be good sources of background information for this project:

For further information, please contact Johan Nyström-Persson at johan@nii.ac.jp.