Files
Abstract
Meta-programming, writing programs that write other programs, involves two kinds of languages. The meta-language is the language in which meta-programs, which construct or manipulate other programs, are written. The object language is the language of programs being manipulated. We study a class of meta-language features used to write meta-programs that are statically guaranteed to maintain semantic invariants of object-language programs, such as typing and scoping.