Code reuse with language oriented programming

David Lorenz, Boaz Rosenan

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review


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.

Original languageEnglish
Title of host publicationProceedings of the 12th International Conference on Software Reuse (ICSR12)
PublisherSpringer Verlag
Number of pages16
ISBN (Print)9783642213465
StatePublished - 1 Jun 2011
Event12th International Conference on Software Reuse, ICSR 2011 - Pohang, Korea, Republic of
Duration: 13 Jun 201117 Jun 2011

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6727 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Conference12th International Conference on Software Reuse, ICSR 2011
Country/TerritoryKorea, Republic of

Bibliographical note

Funding Information:
This research was supported in part by the Israel Science Foundation (ISF) under grant No. 926/08.


Dive into the research topics of 'Code reuse with language oriented programming'. Together they form a unique fingerprint.

Cite this