We have designed and implemented Maya, a version of Java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as multimethods on the corresponding generic functions. Programmers can write new generic functions (i.e., grammar productions) and new multimethods (i.e., semantic actions), through which they can extend the grammar of the language and change the semantics of its syntactic constructs, respectively. Maya’s multimethods are compile-time metaprograms that transform abstract syntax: they execute at program compile-time, because they are semantic actions executed by the parser. Maya’s multimethods can be disp...
This paper presents linguistic primitives for publish/subscribe programming using events and objects...
The object-oriented programming paradigm provides strong support for code re-use via inheritance mec...
Abstract. Polyglot is an extensible compiler framework that supports the easy creation of compilers ...
technical reportWe have designed and implemented Maya, a version of Java that allows programmers to ...
Extensible programming languages allow users to create fundamentally new syntax and translate this s...
New programming languages are frequently designed to improve upon other languages or to simplify pro...
New programming languages are frequently designed to improve upon other languages or to simplify pro...
Multiple dispatch offers several well-known advantages over the single dispatching of conventional o...
Although most popular object oriented languages use single dispatch, multiple dispatch programming l...
MultiJava is an extension of the Java Programming Language with open classes and symmetric multiple ...
Associated research group: Minnesota Extensible Language ToolsWe show how new syntactic forms and st...
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple ...
Abstract This paper presents OpenJava, which is a macro system that we have developed for Java. With...
Multi-stage programming is a programming paradigm that supports runtime code generation and executio...
The presence of Multiple Inheritance in a language raises subtle problems related to possible ambigu...
This paper presents linguistic primitives for publish/subscribe programming using events and objects...
The object-oriented programming paradigm provides strong support for code re-use via inheritance mec...
Abstract. Polyglot is an extensible compiler framework that supports the easy creation of compilers ...
technical reportWe have designed and implemented Maya, a version of Java that allows programmers to ...
Extensible programming languages allow users to create fundamentally new syntax and translate this s...
New programming languages are frequently designed to improve upon other languages or to simplify pro...
New programming languages are frequently designed to improve upon other languages or to simplify pro...
Multiple dispatch offers several well-known advantages over the single dispatching of conventional o...
Although most popular object oriented languages use single dispatch, multiple dispatch programming l...
MultiJava is an extension of the Java Programming Language with open classes and symmetric multiple ...
Associated research group: Minnesota Extensible Language ToolsWe show how new syntactic forms and st...
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple ...
Abstract This paper presents OpenJava, which is a macro system that we have developed for Java. With...
Multi-stage programming is a programming paradigm that supports runtime code generation and executio...
The presence of Multiple Inheritance in a language raises subtle problems related to possible ambigu...
This paper presents linguistic primitives for publish/subscribe programming using events and objects...
The object-oriented programming paradigm provides strong support for code re-use via inheritance mec...
Abstract. Polyglot is an extensible compiler framework that supports the easy creation of compilers ...