|
Overview
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.
Researcher
Gregory Neverov
Downloads
Metaphor prototype compiler: Binary, Source, Licence.
Requirements:
Papers
Gregory Neverov and Paul Roe, Metaphor: A Multi-Stage,
Object-Oriented Programming Language in
The Third
International Conference on Generative Programming and Component
Engineering, Vancouver, Canada, October 2004.
[pdf]
[ppt]
Gregory Neverov and Paul Roe, Cross-stage Persistence in Metaphor
in Informal Proceedings of
The First MetaOCaml Workshop,
Vancouver, Canada, October 2004.
Gregory Neverov and Paul Roe, Towards a Fully-reflective
Meta-programming Language in
28th
Australasian Computer Science Conference, Newcastle, Australia,
January 2005. [pdf]
Gregory Neverov and Paul Roe, Experiences with an object-oriented, multi-stage language in
Science of Computer Programming 62(1), 2006. [pdf]
Contact
Last updated: 12 January, 2006
|