INSIDE the Laboratory

Systems & Software Division

Software Construction Laboratory

Atsushi Ohori, Professor
Katsuhiro Ueno, Assistant Professor

We research on software development environments and programming methodologies, especially in the fields of programming languages and database systems, for constructing highly-reliable advanced software systems.
Today's software systems are becoming more and more complicated due to the need to integrate of integrating various computation resources available on the Internet. A key to control the complexity and to enhance the reliability of such a system is to develop a high-level programming language that can directly represent various resources and automatically detect potential inconsistencies among the components in a system. Based on this general observation, our research aims at establishing both a firm theoretical basis and implementation techniques for flexible and reliable programming systems. Towards this goal, we are conducting research into various aspects of programming languages and database systems, including the following:

1. Theoretical foundations for programming languages.

One direction toward this goal is to establish logical foundations for compilation. We aim at establishing a proof-theoretical framework that accounts for the entire process of compilation - including pattern matching, closure conversion, and code generation - as a series of proof-transformations. Another research direction, which complements the above, is a type-directed compilation method that can produce efficient code for high-level programming languages.

2. Integration of various programming languages and data sources.

We investigate the theoretical basis and implementation techniques for inter-operation between multiple languages and databases. Current interests include the formal semantics of scripting language as a basis of embedding a scripting language into a typed language.

3. Development of SML#, a new ML-style polymorphic programming anguage.

We are also developing a new practical ML(Meta Language)-style programming language, SML#, that embodies some of our recent results such as record polymorphism and a high-degree of interoperability with existing languages and databases.

Page Top