Skip to main content

Code Reuse with Language Oriented Programming

  • Conference paper
Top Productivity through Software Reuse (ICSR 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6727))

Included in the following conference series:

  • 866 Accesses

Abstract

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.

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Dmitriev, S.: Language oriented programming: The next programming paradigm. JetBrains on Board 1(2) (2004)

    Google Scholar 

  2. Fowler, M.: Language workbenches: The killer-app for domain specific languages (2005), http://www.martinfowler.com/articles/languageWorkbench.html

  3. Hudak, P.: Building domain-specific embedded languages. ACM Computing Surveys (CSUR) 28(4es) (1996)

    Google Scholar 

  4. Johnson, S.C.: Yacc: Yet another compiler-compiler. Technical Report CSTR32, Bell Laboratories, Murray Hill, NJ (1975)

    Google Scholar 

  5. Lorenz, D.H., Rosenan, B.: Cedalion: A language-oriented programming language. In: IBM Programming Languages and Development Environments Seminar, Haifa, Israel (April 2010)

    Google Scholar 

  6. Neighbors, J.M.: The Draco approach to constructing software from reusable components. IEEE Trans. Software Eng. 10(5), 564–574 (1984)

    Article  Google Scholar 

  7. Rosenan, B.: Designing language-oriented programming languages. In: Companion to the ACM International Conference on Systems, Programming Languages, and Applications: Software for Humanity (SPLASH 2010), pp. 207–208. ACM, Reno (2010)

    Google Scholar 

  8. Simonyi, C., Christerson, M., Clifford, S.: Intentional software. ACM SIGPLAN Notices 41(10), 451–464 (2006)

    Article  Google Scholar 

  9. Völter, M.: Implementing feature variability for models and code with projectional language workbenches. In: Proceedings of the 2nd International Workshop on Feature-Oriented Software Development (FOSD 2010), pp. 41–48. ACM, Eindhoven (2010)

    Chapter  Google Scholar 

  10. Völter, M., Visser, E., Kelly, S., Hulshout, A., Warmer, J., Molina, P.J., Merkle, B., Thoms, K.: Language workbench competition (2011), http://www.languageworkbenches.net

  11. Ward, M.P.: Language-oriented programming. Software-Concepts and Tools 15(4), 147–161 (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lorenz, D.H., Rosenan, B. (2011). Code Reuse with Language Oriented Programming. In: Schmid, K. (eds) Top Productivity through Software Reuse. ICSR 2011. Lecture Notes in Computer Science, vol 6727. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21347-2_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-21347-2_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-21346-5

  • Online ISBN: 978-3-642-21347-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics