Abstract
Often an ad hoc programming language integrating features from different programming languages and paradigms represents the best choice to express a concise and clean solution to a problem. But, developing a programming language is not an easy task and this often discourages from developing your problem-oriented or domain-specific language. To foster DSL development and to favor clean and concise problem-oriented solutions we developed Neverlang
The Neverlang framework provides a mechanism to build custom programming languages up from features coming from different languages. The composability and flexibility provided by Neverlang permit to develop a new programming language by simply composing features from previously developed languages and reusing the corresponding support code (parsers, code generators, …).
In this work, we explore the Neverlang framework and try out its benefits in a case study that merges functional programming à la Python with coordination for distributed programming as in Linda.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
References
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison Wesley, Reading (1986)
Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for Implementing Domain-Specific Languages. In: Proceedings of the 5th International Conference on Software Reuse, Victoria, BC, Canada, pp. 143–153. IEEE Computer Society (June 1998)
Bravenboer, M., Visser, E.: Concrete Syntax for Objects: Domain-Specific Language Embedding and Assimilation without Restrictions. In: Vlissides, J.M., Schmidt, D.C. (eds.) Proceedings of the 19th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2004), Vancouver, BC, Canada, pp. 365–383. ACM (October 2004)
Carriero, N., Gelernter, D.: Linda in Context. Commun. ACM 32(4), 444–458 (1989)
Cazzola, W., Poletti, D.: DSL Evolution through Composition. In: Proceedings of the 7th ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution, RAM-SE 2010, Maribor, Slovenia. ACM (June 2010)
Cazzola, W., Speziale, I.: Sectional Domain Specific Languages. In: Proceedings of the 4th Domain Specific Aspect-Oriented Languages, DSAL 2009, Charlottesville, Virginia, USA, pp. 11–14. ACM (March 2009)
Ekman, T.: Extensible Compiler Construction. Phd thesis, Department of Computer Science, Lund University, Lund, Sweden (2006)
Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. In: Proceedings of the 22nd Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA 2007, Montréal, Québec, Canada, pp. 1–18. ACM (October 2007)
Ford, B.: Parsing Expression Grammars: a Recognition-Based Syntactic Foundation. In: Jones, N.D., Leroy, X. (eds.) Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, pp. 111–122. ACM (January 2004)
Freeman, E., Arnold, K., Hupfer, S.: JavaSpaces Principles, Patterns, and Practice. Addison-Wesley (1999)
Gelernter, D.: Generative Communication in Linda. ACM Trans. Prog. Lang. Syst. 7(1), 80–112 (1985)
Grimm, R.: Better Extensibility through Modular Syntax. In: Schwartzbach, M.I., Ball, T. (eds.) Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, PLDI 2006, Ottawa, Ontario, Canada (June 2006)
Harrison, W., Ossher, H., Tarr, P.: Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition. Technical Report RC22685 (W0212-147), IBM (December 2002)
Hedin, G., Magnusson, E.: JastAdd — An Aspect-Oriented Compiler Construction System. Science of Computer Programming 47(1), 37–58 (2003)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Lee, S.H. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Marguerie, F., Eichert, S., Wooley, J.: Introducing LINQ. In: LINQ in Action. Manning (January 2008)
Mernik, M., Heering, J., Sloane, A.M.: When and How to Develop Domain Specific Languages. ACM Comput. Surv. 37(4), 316–344 (2005)
Mertz, D.: Functional Programming in Python. In: Charming Python, ch. 13 (January 2001), http://gnosis.cx/publish/programming/charming_python_13.txt
Nielson, S.J., Knutson, C.D.: OO++: Exploring the Multiparadigm Shift. In: Prooceedings of ECOOP Workshop on Multiparadigm Programming with Object-Oriented Languages, MPOOL 2004, Oslo, Norway (June 2004)
Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An Extensible Compiler Framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)
Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Aritma Press (2008)
Oliveira, B.C.d.S.: Modular Visitor Components: A Practical Solution to the Expression Families Problem. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 269–293. Springer, Heidelberg (2009)
Ossher, H., Tarr, P.:Hyper/J: Multi-Dimensional Separation of Concerns for Java. In: Proceedings of the 23rd International Conference on Software Engineering, ICSE 2001, Toronto, Ontario, Canada, pp. 729–730. IEEE Computer Society (2001)
Renggli, L., Ducasse, S., Gîrba, T., Nierstrasz, O.: Practical Dynamic Grammars for Dynamic Languages. In: Proceedings of the 4th Workshop on Dynamic Languages and Applications, DYLA 2010, Málaga, Spain (June 2010)
Sahlin, D.: The Concurrent Functional Programming Language Erlang – An Overview. In: Proceedings of the Joint International Conference and Symposium on Logic Programming, Bonn, Germany (September 1996)
Steinberg, D., Budinsky, D., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework. Addison-Wesley (December 2008)
Torgersen, M.: The Expression Problem Revisited. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 123–146. Springer, Heidelberg (2004)
Zdun, U.: A DSL Toolkit for Deferring Architectural Decisions in DSL-Based Software Design. Information and Software Technology 52(7), 733–748 (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cazzola, W. (2012). Domain-Specific Languages in Few Steps. In: Gschwind, T., De Paoli, F., Gruhn, V., Book, M. (eds) Software Composition. SC 2012. Lecture Notes in Computer Science, vol 7306. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30564-1_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-30564-1_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-30563-4
Online ISBN: 978-3-642-30564-1
eBook Packages: Computer ScienceComputer Science (R0)