“From now on, a main goal in designing a language should be to plan for growth. ” Guy Steele: Growing a Language, OOPSLA’98 invited talk. We present our experiences with a syntax macro language which we claim forms a general abstraction mechanism for growing (domain-specific) extensions of programming languages. Our syntax macro language is designed to guarantee type safety and termination. A concept of metamorphisms allows the arguments of a macro to be inductively defined in a meta level grammar and morphed into the host language. We also show how the metamorphisms can be made to operate simultaneously on multiple parse trees at once. The result is a highly flexible mechanism for growing new language constructs without resorting to compil...
Currently existing syntactic definitions employ many different notations (usually dialects of EBNF) ...
Grammars in a broad sense (specifications of structural commitments) are complex artefacts that defi...
Programming languages researchers have developed many advanced tools that promise to greatly ease so...
"From now on, a main goal in designing a language should be to plan for growth."Guy Steele: Growing ...
The design of programming languages is, in general, geared towards accumulation rather than composit...
Today, many dialects of traditional programming languages exist [6]. In most cases, they add some pr...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
High-level programming languages have been developed to simplify the communication problem between t...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
It is common practice to bootstrap compilers of programming languages. By using the compiled languag...
Applications that manipulate programs as data are called meta programs. Examples of meta programs ar...
Programming languages and formal notations are central to computer science. A significant part of c...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Compile-time meta-programming allows programs to be constructed by the user at compile-time. Althoug...
Context: Meta programming consists for a large part of matching, analyzing, and transforming syntax ...
Currently existing syntactic definitions employ many different notations (usually dialects of EBNF) ...
Grammars in a broad sense (specifications of structural commitments) are complex artefacts that defi...
Programming languages researchers have developed many advanced tools that promise to greatly ease so...
"From now on, a main goal in designing a language should be to plan for growth."Guy Steele: Growing ...
The design of programming languages is, in general, geared towards accumulation rather than composit...
Today, many dialects of traditional programming languages exist [6]. In most cases, they add some pr...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
High-level programming languages have been developed to simplify the communication problem between t...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
It is common practice to bootstrap compilers of programming languages. By using the compiled languag...
Applications that manipulate programs as data are called meta programs. Examples of meta programs ar...
Programming languages and formal notations are central to computer science. A significant part of c...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Compile-time meta-programming allows programs to be constructed by the user at compile-time. Althoug...
Context: Meta programming consists for a large part of matching, analyzing, and transforming syntax ...
Currently existing syntactic definitions employ many different notations (usually dialects of EBNF) ...
Grammars in a broad sense (specifications of structural commitments) are complex artefacts that defi...
Programming languages researchers have developed many advanced tools that promise to greatly ease so...