LANGUAGE-ORIENTED PROGRAMMING VIA DSL STACKING

Bernhard G. Humm, Ralf S. Engelschall

2010

Abstract

According to the paradigm of Language-Oriented Programming, an application for a problem should be implemented in the most appropriate domain-specific language (DSL). This paper introduces DSL stacking, an efficient method for implementing Language-Oriented Programming where DSLs and general-purpose languages are incrementally developed on top of a base language. This is demonstrated with components of a business information system that are implemented in different DSLs for Semantic Web technology in Lisp.

References

  1. Aho, A. V., Kernighan, B. W., and Weinberger, P. J. (1988). The AWK Programming Language. Addison-Wesley.
  2. Berners-Lee, T., Hendler, J., and Lassila, O. (2001). The Semantic Web: A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities: www.scientificamerican.com/article.cfm?id=thesemantic-web. Scientific American.
  3. Brauer, J., Crasemann, C., and Krasemann, H. (2008). Auf dem Weg zu idealen Programmierwerkzeugen - Bestandsaufnahme und Ausblick. Informatik Spektrum, 31(6):580-590.
  4. Clocksin, W. F. and Mellish, C. (1987). Programming in Prolog, 3rd Edition. Springer.
  5. Dmitriev, S. (2005). Language Oriented Programming: The Next Programming Paradigm. http://www.onboard.jetbrains.com/is1/articles/04/10/ lop/.
  6. Feldman, S. I. (1979). Make - A Program for Maintaining Computer Programs. Software: Practice & Experience, 9:255-265.
  7. Felleisen, M. (1990). On the Expressive Power of Programming Languages. In Jones, N., editor, Proceedings 3rd European Symposium on Programming (ESOP'90) Copenhagen, Denmark, May , 1990, volume 432 of Lecture Notes in Computer Science, pages 134-151, Berlin, Heidelberg, Springer,.
  8. Fowler, M. (2005). Language Workbenches: The Killer-App for Domain Specific Languages? http://martinfowler.com/articles/languageWorkbench. html.
  9. Goldfinger, R. (1961). language structure. 4(3):138.
  10. Gosling, J., Joy, B., Steele, G., and Bracha, G. (2005). The Java language specification. Addison-Wesley, Upper Saddle River, NJ, 3. ed., 1. print. edition.
  11. Graunke, P. T., Krishnamurthi, S., Van Der Hoeven, S., and Felleisen, M. (2001). Programming the Web with High-Level Programming Languages. In David Sands, editor, Proceedings 10th European Symposium on Programming (ESOP 2001), Genova, Italy, April 2001, volume 2028 of Lecture Notes in Computer Science. Springer.
  12. Greenfield, J. (2004). Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. http://msdn.microsoft.com/enus/library/ms954811.aspx.
  13. Irons, E. T. (1961). A Syntax Directed Compiler for ALGOL 60. Communications of the ACM, 4(1):51-55.
  14. Irons, E. T. (1970). Experience with an Extensible Language. Communications of the ACM, 13(1):31-40.
  15. Kay, A., Piumarta, I., Rose, K., Ingalls, D., and Amelang, D. (2008). STEPS Toward The Reinvention of Programming: 2008 Progress Report Submitted to the National Science Foundation (NSF): VPRI Technical Report TR-2008-004. Technical report, Viewpoints Research Institute.
  16. Kay, A. C. (1993). The Early History of Smalltalk. In HOPL Preprints, pages 69-95.
  17. Kernighan, B. W. and Ritchie, D. M. (2008). The C programming language. Prentice Hall PTR, Upper Saddle River, NJ, 2nd ed., 43. print. edition.
  18. McCarthy, J. (1960). Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Communications of the ACM, 3(4):184-195.
  19. OASIS (2007). Web Services Business Process Execution Language Version 2.0: OASIS Standard. http://docs.oasis-open.org/wsbpel/2.0/wsbpelv2.0.pdf.
  20. Simonyi, C., Christerson, M., and Clifford, S. (2006). Intentional software. In Tarr, P. L. and Cook, W. R., editors, Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2006), pages 451-464.
  21. Steele, G. L. (1984). COMMON LISP: The Language. Digital Press, 12 Crosby Drive, Bedford, MA 01730, USA.
  22. van Deursen, A., Klint, P., and Visser, J. (2000). DomainSpecific Languages: An Annotated Bibliography. ACM SIGPLAN Notices, 35:26-36.
  23. Ward, M. P. (1994). Language-Oriented Programming. Software - Concepts and Tools, 15(4):147-161.
  24. World Wide Web Consortium (W3C) (2010). Semantic Web: http://www.w3.org/standards/semanticweb/, last visited 30/4/2010.
Download


Paper Citation


in Harvard Style

G. Humm B. and S. Engelschall R. (2010). LANGUAGE-ORIENTED PROGRAMMING VIA DSL STACKING . In Proceedings of the 5th International Conference on Software and Data Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-23-2, pages 279-287. DOI: 10.5220/0002925402790287


in Bibtex Style

@conference{icsoft10,
author={Bernhard G. Humm and Ralf S. Engelschall},
title={LANGUAGE-ORIENTED PROGRAMMING VIA DSL STACKING},
booktitle={Proceedings of the 5th International Conference on Software and Data Technologies - Volume 2: ICSOFT,},
year={2010},
pages={279-287},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0002925402790287},
isbn={978-989-8425-23-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 5th International Conference on Software and Data Technologies - Volume 2: ICSOFT,
TI - LANGUAGE-ORIENTED PROGRAMMING VIA DSL STACKING
SN - 978-989-8425-23-2
AU - G. Humm B.
AU - S. Engelschall R.
PY - 2010
SP - 279
EP - 287
DO - 10.5220/0002925402790287