Gregory Neverov


I am a PhD student in the Programming Languages and System research group at the Queensland University of Technology.

Research

I am researching the application of multi-stage programming to an imperative, object-oriented language. My work consists of the design of a multi-stage language, Metaphor, and its prototype compiler implementation.

Metaphor is a programming language with support for type-safe run-time code generation -- a form of meta-programming. Metaphor is based on a subset of C# or Java and combines the imperative, object-oriented nature of these languages with the multi-stage programming constructs from MetaOCaml. Metaphor uses the static type system of multi-stage languages to achieve compile-time safety of run-time generated code.

Metaphor's type system also incorporates a stronger typing of the type reflection systems found in C# or Java. This allows the reflection system to be safely incorporated into the language’s staging constructs and thus allows the generation of code based on the structure of types (i.e., staged polytypic programming).

Metaphor is implemented as a compiler on the Microsoft CLR.

Downloads

Metaphor prototype compiler: Binary, Source, Licence.

Requirements:

Papers


Last updated: 5 February, 2007