H ? « »

Language peer sets for CRML:
United States
United States/1992
Designed 1992
1990s languages
Fifth generation
Post-Cold War


alternate simple view
Country: United States
Designed 1992

Compile-time Reflective ML

CRML is an implementation of compile-time reflection for a subset of ML built on top of the Standard ML of New Jersey compiler. Reflection is the "magic" that turns data into programs. Compile-time reflection allows user written functions to access data calculated during compilation to construct program representations. These representations are then transformed, by reflection, into the programs they represent. Essentially, compile-time reflection allows representations (data) calculated by compile-time evaluation to be type-checked and submitted to the compiler itself, to be turned into object code and integrated with the rest of the compiler's output.

Related languages
SML/NJ CRML   Based on
TRPL CRML   Evolution of
CRML MetaML   Evolution of

  • Fegaras, L. (1993) Fegaras, L. ; D. Maier, and T. Sheard. Specifying rule-based query optimizers in a reflective framework. In Third International Conference on Deductive and Object-Oriented Databases, pages 146-168, Phoenix, Arizona, December 1993 Abstract
  • Hook, J. and Sheard, T. (1993) Hook, J. and Sheard, T. "A semantics of compile-time reflection" Technical Report 93-019, Dept. of Computer Science and Engineering, Oregon Graduate Institute, Portland, Oregon, 1993
  • Sheard, Tim (1993) Sheard, Tim "Guide to using crml, cmopile-time reflective ml", October 1993.
  • Sheard, Tim (1993) Sheard, Tim "Type parametric programming" Technical Report CSE 93-018, Oregon Graduate Institute, 1993
    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder