TY - GEN
T1 - A mixin-based, semantics-based approach to reusing domain-specific programming languages
AU - Duggan, Dominic
N1 - Publisher Copyright:
© Springer-Verlag Berlin Heidelberg 2000.
PY - 2000
Y1 - 2000
N2 - Domain-specific programming languages (DSLs) are emerging as an important paradigm for the engineering of large reliable software systems. Modular interpreters are an approach to building off-the-shelf software components that implement fragments of DSLs.We describe an approach to implementing modular interpreters in an object-oriented fashion, using the design pattern of extensible computations. The modular structuring and reuse of DSL implementations has potentially important lessons for object-oriented reuse, because of the highly recursive nature of any non-trivial programming language, and the close semantic relationship between inheritance and recursion.We give paradigmatic examples of the definition of extensible computations in the Java programming language, and consider what extensions would be required for typed object-oriented languages in order to support this approach in a statically type-safe manner.
AB - Domain-specific programming languages (DSLs) are emerging as an important paradigm for the engineering of large reliable software systems. Modular interpreters are an approach to building off-the-shelf software components that implement fragments of DSLs.We describe an approach to implementing modular interpreters in an object-oriented fashion, using the design pattern of extensible computations. The modular structuring and reuse of DSL implementations has potentially important lessons for object-oriented reuse, because of the highly recursive nature of any non-trivial programming language, and the close semantic relationship between inheritance and recursion.We give paradigmatic examples of the definition of extensible computations in the Java programming language, and consider what extensions would be required for typed object-oriented languages in order to support this approach in a statically type-safe manner.
KW - Domain-specific programming languages
KW - Java
KW - Mixin-based inheritance
KW - Modular interpreters
KW - Monads
UR - http://www.scopus.com/inward/record.url?scp=84957806508&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84957806508&partnerID=8YFLogxK
U2 - 10.1007/3-540-45102-1_9
DO - 10.1007/3-540-45102-1_9
M3 - Conference contribution
AN - SCOPUS:84957806508
SN - 3540676600
SN - 9783540676607
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 179
EP - 200
BT - ECOOP 2000 - Object-Oriented Programming - 14th European Conference, Proceedings
A2 - Bertino, Elisa
T2 - 14th European Conference on Object-Oriented Programming, ECOOP 2000
Y2 - 12 June 2000 through 16 June 2000
ER -