Abstract

Language Oriented Programming (LOP) is a paradigm that puts domain specific programming languages (DSLs) at the center of the software development process. Currently, there are three main approaches to LOP: (1) the use of internal DSLs, implemented as libraries in a given host language; (2) the use of external DSLs, implemented as interpreters or compilers in an external language; and (3) the use of language workbenches, which are integrated development environments (IDEs) for defining and using external DSLs. In this paper, we contribute: (4) a novel language-oriented approach to LOP for defining and using internal DSLs. While language workbenches adapt internal DSL features to overcome some of the limitations of external DSLs, our approach adapts language workbench features to overcome some of the limitations of internal DSLs. We introduce Cedalion, an LOP host language for internal DSLs, featuring static validation and projectional editing. To validate our approach we present a case study in which Cedalion was used by biologists in designing a DNA microarray for molecular Biology research.
- I. Beno, K. Rosenthal, M. Levitine, L. Shaulov, and T. E. Haran. Sequence-dependent cooperative binding of p53 to DNA targets and its relationship to the structural properties of the DNA targets. Nucleic Acids Research, 39 (5): 1919--1932, Mar. 2011.Google Scholar
Cross Ref
- M. F. Berger and M. L. Bulyk. Universal protein-binding microarrays for the comprehensive characterization of the DNA-binding specificities of transcription factors. Nature protocols, 4 (3): 393--411, 2009.Google Scholar
- M. L. Bulyk. Protein binding microarrays for the characterization of DNA--protein interactions. Advances in Biochemical Engineering/Biotechnology, 104: 65--85, 2007. Analytics of Protein--DNA Interactions.Google Scholar
Cross Ref
- Cedalion. The Cedalion project homepage. Software Engineering Research Lab, The Open University of Israel, 2010. http://cedalion.sourceforge.net.Google Scholar
- S. Dmitriev. Language oriented programming: The next programming paradigm. Jet Brains on Board, 1 (2), Nov. 2004.Google Scholar
- M. Fowler. Bliki: Fluent interface, Dec. 2005. http://martinfowler.com/bliki/FluentInterface.html.Google Scholar
- M. Fowler. Language workbenches: The killer-app for domain specific languages, June 2005. http://www.martinfowler.com/articles/languageWorkbench.html.Google Scholar
- M. Fowler. Bliki: Projectional editing, Jan. 2008. http://martinfowler.com/bliki/ProjectionalEditing.html.Google Scholar
- S. Freeman and N. Pryce. Evolving an embedded domain-specific language in Java. In Proceedings of the 21st Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'06), pages 855--865, Portland, Oregon, USA, Oct. 22--26 2006. ACM Press. Google Scholar
Digital Library
- A. Hen-Tov, D. H. Lorenz, A. Pinhasi, and L. Schachter. ModelTalk: When everything is a domain-specific language. IEEE Software, 26 (4): 39--46, 2009. Special issue on Domain-Specific Modeling. Google Scholar
Digital Library
- M. Hennessy and R. Milner. On observing nondeterminism and concurrency. In Automata, Languages and Programming, number 85 in Lecture Notes in Computer Science, pages 299--309. Springer-Verlag, Berlin, Heidelberg, 1980. Google Scholar
Digital Library
- M. Hennessy and R. Milner. Algebraic laws for nondeterminism and concurrency. J. ACM, 32 (1): 137--161, Jan. 1985. Google Scholar
Digital Library
- P. Hudak. Building domain-specific embedded languages. ACM Computing Surveys (CSUR), 28 (4es), 1996. Google Scholar
Digital Library
- L. C. Kats and E. Visser. The Spoofax language workbench: Rules for declarative specification of languages and IDEs. In Proceedings of the ACM International Conference on Systems, Programming Languages, and Applications: Software for Humanity (SPLASH'10), pages 444--463, Reno/Tahoe, Nevada, USA, Oct. 2010. ACM. Google Scholar
Digital Library
- D. Knuth. Backus normal form vs. Backus Naur form. Communications of the ACM, 7 (12): 735--736, 1964. Google Scholar
Digital Library
- D. H. Lorenz and B. Rosenan. Cedalion: A language oriented programming language. In IBM Programming Languages and Development Environments Seminar (PLDE'10), Haifa, Israel, Apr. 2010. IBM Research.Google Scholar
- D. H. Lorenz and B. Rosenan. Code reuse with language oriented programming. In Proceedings of the 12th International Conference on Software Reuse (ICSR12), number 6727 in Lecture Notes in Computer Science, pages 165--180, Pohang, Korea, June 13--17 2011. Springer Verlag. Google Scholar
Digital Library
- D. H. Lorenz and J. Vlissides. Designing components versus objects: A transformational approach. In Proceedings of the 23th International Conference on Software Engineering (ICSE'01), pages 253--262, Toronto, Canada, May 12--19 2001. IEEE Computer Society. Google Scholar
Digital Library
- S. Mellor, A. Clark, and T. Futagami. Model-driven development. IEEE software, 20 (5): 14--18, 2003. Google Scholar
Digital Library
- M. Mernik, J. Heering, and A. M. Sloane. When and how to develop domain-specific languages. ACM Comput. Surv., 37, Dec. 2005. Google Scholar
Digital Library
- R. Milner. A Calculus of Communicating Systems. Number 92 in Lecture Notes in Computer Science. Springer-Verlag, New York, NY, USA, 1980. Google Scholar
Digital Library
- A. Mycroft and R. A. O'Keefe. A polymorphic type system for Prolog. Artificial intelligence, 23 (3): 295--307, 1984. Google Scholar
Digital Library
- B. Rosenan. Designing language-oriented programming languages. In Companion to the ACM International Conference on Systems, Programming Languages, and Applications: Software for Humanity (SPLASH'10), pages 207--208, Reno/Tahoe, Nevada, USA, Oct. 2010. ACM. Student Research Competition, 2nd prize. Google Scholar
Digital Library
- B. Rosenan. Cedalion submission to the language workbench competition of 2011. In M. Völter, E. Visser, S. Kelly, A. Hulshout, J. Warmer, P. J. Molina, B. Merkle, and K. Thoms, editors, Language Workbench Competition. 2011. http://www.languageworkbenches.net/lwc11-cedalion.pdf.Google Scholar
- C. Sassenrath. The REBOL scripting language. Dr. Dobb's Journal: Software Tools for the Professional Programmer, 25 (7): 64--68, 2000. http://rebol.com.Google Scholar
- T. Schrijvers, V. S. Costa, J. Wielemaker, and B. Demoen. Towards typed Prolog. In Proceedings of the 24th International Conference on Logic Programming (ICLP'08), pages 693--697, Udine, Italy, 2008. Springer-Verlag. Google Scholar
Digital Library
- C. Simonyi. The death of computer languages, the birth of intentional programming. Technical Report MSR-TR-95--52, Microsoft Corporation, 1995.Google Scholar
- C. Simonyi, M. Christerson, and S. Clifford. Intentional software. ACM SIGPLAN Notices, 41 (10): 451--464, 2006. Google Scholar
Digital Library
- Z. Somogyi, F. Henderson, and T. Conway. Mercury, an efficient purely declarative logic programming language. Australian Computer Science Communications, 17: 499--512, 1995.Google Scholar
- T. Stahl and M. Völter. Model-Driven Software Development: Technology, Engineering, Management. John Wiley & Sons, 2006. Google Scholar
Digital Library
- C. Szyperski. Component Software, Beyond Object-Oriented Programming. Addison-Wesley, 2nd edition, 2002. With Dominik Gruntz and Stephan Murer. Google Scholar
Digital Library
- S. Tobin-Hochstadt and M. Felleisen. The design and implementation of typed Scheme. In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'08), pages 395--406, San Francisco, California, USA, Jan. 2008. ACM. Google Scholar
Digital Library
- E. Visser. Scannerless generalized-LR parsing. Technical Report P9707, University of Amsterdam, Programming Research Group, Department of Computer Science, Kruislaan 403, NL-1098 SJ Amsterdam, The Netherlands, Aug. 1997.Google Scholar
- M. P. Ward. Language-oriented programming. Software-Concepts and Tools, 15 (4): 147--161, 1994.Google Scholar
- J. Wielemaker. An overview of the SWI-Prolog programming environment. In F. Mesnard and A. Serebrenik, editors, Proceedings of the 13th International Workshop on Logic Programming Environments (WLPE'03), pages 1--16, Mumbai, India, Dec. 2003. Report CW371, Katholieke Universiteit Leuven, Nov. 2003.Google Scholar
- XLR. XLR: Extensible language and runtime, 2008. http://xlr.sourceforge.net/concept/XL.html.Google Scholar
Index Terms
Cedalion: a language for language oriented programming
Recommendations
Cedalion: a language for language oriented programming
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applicationsLanguage Oriented Programming (LOP) is a paradigm that puts domain specific programming languages (DSLs) at the center of the software development process. Currently, there are three main approaches to LOP: (1) the use of internal DSLs, implemented as ...
Cedalion 101: "i want my DSL now"
OOPSLA '11: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companionCedalion is a research LOP language designed for hosting internal DSLs but with the look-and-feel of external DSLs. Cedalion demonstrates a novel approach that combines extensible logic programming with projectional editing. We shall demonstrate the ...
A case study of language oriented programming with cedalion: [extended abstract]
OOPSLA '11: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companionCedalion is an LOP language designed for hosting internal DSLs while providing projectional editing. We present a case study where Cedalion was used to help colleagues in the field of Biology design a DNA microarray for a protein-binding assay.







Comments