Programming Language Research at Kansas State University


Automatically customizing adaptable software using partial evaluation

Our primary research project involves using partial evaluation techniques to automatically customize adaptable software written in modern imperative programming languages. (Here is a brief overview of partial evaluation if you have not already read it.)

In complex real-world systems, software requirements are constantly evolving. This demands methodologies for designing reusable, adaptable, customizable software, and associated technologies for modifying, transforming, and customizing programs and specifications.

Partial evaluation is an automatic tool for program specialization, customization, and optimization. It thus provides the foundation for a novel paradigm of adaptable software construction and instantiation.

Despite successful applications, current partial evaluation technology is unable to satisfactorily treat modern imperative languages that include object-oriented, multi-tasking, and exception-handling features.

The goal of our research is to scale-up partial evaluation technology to handle modern language features, and through experiments with specializing large real-world software systems, develop methodologies for constructing and customizing adaptable software using partial evaluation.

Potential thesis topics

There are a wide range of research topics in this project for students interested in doing a M.S. or Ph.D. thesis.

Regional and International Collaboration

Our research group maintains strong collaborative ties with researchers from Kansas State University and two Danish universities: University of Copenhagen, and University of Aarhus. These ties provide interesting opportunities for students to interact with researchers outside of OSU.

We are involved in several ways with the programming language research group at the University of Copenhagen. Currently we are applying the C-Mix partial evaluation (a partial evaluator for ANSI C) developed at Copenhagen (currently supported by Peter Holst Andersen under supervision of Neil Jones). We also collaborate on other partial evaluation topics with Robert Glueck, on CPS transformations in pure type systems with Morten Heine Soerensen, and on transformations for higher-order logic programs with Henning Niss.

Finally, continue to have extensive collaboration with Olivier Danvy from Aarhus University on program transformations for functional programs.

Other Research Projects In Programming Languages

While we focus on partial evaluation, there are other possibilities for thesis topics in the areas of operational semantics, continuations, logics and type theory, logical frameworks. We are especially interested in different approaches for formal machine-assisted verification of programs and program transformations,


For more information about research in partial evaluation and programming languages at Kansas State, contact John Hatcliff.

John Hatcliff (hatcliff@cis.okstate.edu) January 7, 1997.