TY - GEN
T1 - Code reuse with language oriented programming
AU - Lorenz, David H.
AU - Rosenan, Boaz
PY - 2011
Y1 - 2011
N2 - There is a gap between our ability to reuse high-level concepts in software design and our ability to reuse the code implementing them. Language Oriented Programming (LOP) is a software development paradigm that aims to close this gap, through extensive use of Domain Specific Languages (DSLs). With LOP, the high-level reusable concepts become reusable DSL constructs, and their translation into code level concepts is done in the DSL implementation. Particular products are implemented using DSL code, thus reusing only high-level concepts. In this paper we provide a comparison between two implementation approaches for LOP: (a),using external DSLs with a projectional language workbench (MPS); and (b),using internal DSLs with an LOP language (Cedalion). To demonstrate how reuse is achieved in each approach, we present a small case study, where LOP is used to build a Software Product Line (SPL) of calculator software.
AB - There is a gap between our ability to reuse high-level concepts in software design and our ability to reuse the code implementing them. Language Oriented Programming (LOP) is a software development paradigm that aims to close this gap, through extensive use of Domain Specific Languages (DSLs). With LOP, the high-level reusable concepts become reusable DSL constructs, and their translation into code level concepts is done in the DSL implementation. Particular products are implemented using DSL code, thus reusing only high-level concepts. In this paper we provide a comparison between two implementation approaches for LOP: (a),using external DSLs with a projectional language workbench (MPS); and (b),using internal DSLs with an LOP language (Cedalion). To demonstrate how reuse is achieved in each approach, we present a small case study, where LOP is used to build a Software Product Line (SPL) of calculator software.
UR - http://www.scopus.com/inward/record.url?scp=79959648051&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-21347-2_13
DO - 10.1007/978-3-642-21347-2_13
M3 - Conference contribution
AN - SCOPUS:79959648051
SN - 9783642213465
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 167
EP - 182
BT - Top Productivity through Software Reuse - 12th International Conference on Software Reuse, ICSR 2011, Proceedings
T2 - 12th International Conference on Software Reuse, ICSR 2011
Y2 - 13 June 2011 through 17 June 2011
ER -