Programming languages are often designed as static, monolithic units. As a result, they are inflexible. We show a new mechanism of programming language design that allows to more flexible languages: by using compile-time function execution and metaprogramming, we implement a language mostly in itself. Our approach is usable for creating feature-rich, yet low-overhead system programming languages. We illustrate it on two systems, one that lowers to C and one that lowers to LLVM
A novel, simple scheme for providing compile-time facilities to PL/I programmers is proposed. The sc...
This thesis describes the motivation, design, and implementation of L.B. Stanza, an optionally-typed...
Modern programming languages provide extensive metaprogramming facilities. We understand metaprogram...
Programming languages are often designed as static, monolithic units. As a result, they are inflexib...
Compile-time meta-programming allows programs to be constructed by the user at compile-time. Althoug...
Today, many dialects of traditional programming languages exist [6]. In most cases, they add some pr...
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: Growin...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
The programming languages of today are stuck in a deep rut that has developed over the past 50 years...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
Programming languages and formal notations are central to computer science. A significant part of c...
The design of programming languages is, in general, geared towards accumulation rather than composit...
Modern assemblers provide powerful macro facilities to enable programmers to create their own high l...
A novel, simple scheme for providing compile-time facilities to PL/I programmers is proposed. The sc...
This thesis describes the motivation, design, and implementation of L.B. Stanza, an optionally-typed...
Modern programming languages provide extensive metaprogramming facilities. We understand metaprogram...
Programming languages are often designed as static, monolithic units. As a result, they are inflexib...
Compile-time meta-programming allows programs to be constructed by the user at compile-time. Althoug...
Today, many dialects of traditional programming languages exist [6]. In most cases, they add some pr...
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: Growin...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
The programming languages of today are stuck in a deep rut that has developed over the past 50 years...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
Powerful, safe macro systems allow programs to be programatically constructed by the user at compile...
Programming languages and formal notations are central to computer science. A significant part of c...
The design of programming languages is, in general, geared towards accumulation rather than composit...
Modern assemblers provide powerful macro facilities to enable programmers to create their own high l...
A novel, simple scheme for providing compile-time facilities to PL/I programmers is proposed. The sc...
This thesis describes the motivation, design, and implementation of L.B. Stanza, an optionally-typed...
Modern programming languages provide extensive metaprogramming facilities. We understand metaprogram...