Large software systems are often constructed by reusing existing code. This dissertation describes several approaches that address the limitations of existing code reuse mechanisms such as class inheritance. The Polyglot design pattern enables software systems to be extended in a scalable way: the code required to extend the system is proportional to the amount of new functionality provided. This design pattern has been used to implement an extensible compiler framework. Nested inheritance is an object-oriented programming language mechanism that supports scalable extensibility in a safer, more natural way than the design pattern approach. Nested inheritance permits modular, type-safe extension of a package (including nested packages a...
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple ...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Abstraction mechanisms in programming languages aim to allow orthogonal pieces of functionality to b...
Abstract. Polyglot is an extensible compiler framework that supports the easy creation of compilers ...
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for b...
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Compute...
Polyglot is an extensible compiler framework that supports the easy creation of compilers for langu...
Programming-language design is more active than ever: existing languages are evolving continually an...
Domain-specific languages (DSLs) are now ubiquitous. New DSLs are needed and existing DSLs are evolv...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Compilers are among the most widely-studied pieces of software; and, modularizing these valuable art...
The introduction of new features to a programming language often requires that its compiler goes to ...
This thesis concerns the technical problems of software reuse and the -related- problem of construct...
The ability to add new features to programming languages is essential for language design experiment...
AbstractAll programmers should understand the concept of software families and know the techniques f...
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple ...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Abstraction mechanisms in programming languages aim to allow orthogonal pieces of functionality to b...
Abstract. Polyglot is an extensible compiler framework that supports the easy creation of compilers ...
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for b...
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Compute...
Polyglot is an extensible compiler framework that supports the easy creation of compilers for langu...
Programming-language design is more active than ever: existing languages are evolving continually an...
Domain-specific languages (DSLs) are now ubiquitous. New DSLs are needed and existing DSLs are evolv...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Compilers are among the most widely-studied pieces of software; and, modularizing these valuable art...
The introduction of new features to a programming language often requires that its compiler goes to ...
This thesis concerns the technical problems of software reuse and the -related- problem of construct...
The ability to add new features to programming languages is essential for language design experiment...
AbstractAll programmers should understand the concept of software families and know the techniques f...
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple ...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Abstraction mechanisms in programming languages aim to allow orthogonal pieces of functionality to b...