Plenary talk III Domain-specific languages

Computer science is undergoing a revolution today, in which language designers are shifting attention from general purpose programming languages to so-called domain-specific languages (DSLs). General-purpose languages like Java, C#, C++, and C have long been the primary focus of language research. The idea was to create one language that would be better suited for programming than any other language. Ironically, we now have so many different general purpose languages that it is hard to imagine how this goal could be attained. Instead of aiming to be the best for solving any kind of computing problem, DSLs aim to be particularly good for solving a specific class of problems, and in doing so they are often much more accessible to the general public than traditional programming languages.

[1]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[2]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[3]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[4]  K. J. Gough Little language processing, an alternative to courses on compiler construction , 1981, SGCS.

[5]  Peter Henderson Functional geometry , 1982, LFP '82.

[6]  Thomas W. Reps,et al.  Generating Language-Based Environments , 1982 .

[7]  Bruce J. MacLennan,et al.  Principles of Programming Languages , 1983 .

[8]  G.C.N. Yeung,et al.  Principles of programming languages: Design, evaluation, and implementation , 1985, Proceedings of the IEEE.

[9]  David R. Barstow Domain-Specific Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[10]  Ellis Horowitz,et al.  A survey of Application Generators , 1985, IEEE Software.

[11]  Jon Louis Bentley,et al.  Programming pearls: little languages , 1986, CACM.

[12]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[13]  Valdis Berzins,et al.  The Realizable Benefits of a Language Prototyping Language , 1988, IEEE Trans. Software Eng..

[14]  J. Craig Cleaveland,et al.  Building application generators , 1988, IEEE Software.

[15]  G. Arango Domain analysis: from art form to engineering discipline , 1989, IWSSD '89.

[16]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[17]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[18]  E. Schmidt,et al.  Lex—a lexical analyzer generator , 1990 .

[19]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[20]  Philip Wadler,et al.  Comprehending monads , 1990, LISP and Functional Programming.

[21]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[22]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[23]  Guy L. Steele,et al.  Building interpreters by composing monads , 1994, POPL '94.

[24]  Will Tracz,et al.  Software development using domain-specific software architectures: CDRl A011—a curriculum module in the SEI style , 1995, SOEN.

[25]  Paul Hudak,et al.  Monad transformers and modular interpreters , 1995, POPL '95.

[26]  David A. Espinosa Semantic Lego , 1995 .

[27]  Mark A. Simos,et al.  Organization domain modeling (ODM): formalizing the core domain modeling life cycle , 1995, SSR '95.

[28]  Tim Sheard,et al.  A software engineering experiment in software component generation , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[29]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[30]  Paul Hudak,et al.  Modular Denotational Semantics for Compiler Construction , 1996, ESOP.

[31]  Arie van Deursen,et al.  Industrial Applications of ASF+SDF , 1996, AMAST.

[32]  James Withey Investment Analysis of Software Assets for Product Lines. , 1996 .

[33]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[34]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[35]  Walid Taha,et al.  Multi-stage programming with explicit annotations , 1997, PEPM.

[36]  Roger F. Crew ASTLOG: A Language for Examining Abstract Syntax Trees , 1997, DSL.

[37]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[38]  Yannis Smaragdakis,et al.  DiSTiL: A Transformation Library for Data Structures , 1997, DSL.

[39]  Thomas R. Gross,et al.  Code Composition as an Implementation Language for Compilers , 1997, DSL.

[40]  Samuel N. Kamin,et al.  A Special-Purpose Language for Picture-Drawing , 1997, DSL.

[41]  Lars S. Nyland,et al.  KHEPERA: A System for Rapid Implementation of Domain Specific Languages , 1997, DSL.

[42]  Marco Antoniotti,et al.  SHIFT and SMART-AHS: A Language for Hybrid System Engineering Modeling and Simulation , 1997, DSL.

[43]  Andrew W. Appel,et al.  The Zephyr Abstract Syntax Description Language , 1997, DSL.

[44]  Anindya Basu,et al.  A Language-Based Approach to Protocol Construction , 1998 .

[45]  Daniel E. Stevenson,et al.  Programming Language Support for Digitized Images or, The Monsters in the Closet , 1997, DSL.

[46]  David J. Anderson,et al.  Regulatory Mechanisms in Stem Cell Biology , 1997, Cell.

[47]  Luca Cardelli,et al.  Service Combinators for Web Computing , 1999, DSL.

[48]  Nenad Medvidovic,et al.  Domains of Concern in Software Architectures and Architecture Description Languages , 1997, DSL.

[49]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[50]  Matthew Fuchs Domain Specific Languages for ad hoc Distributed Applications , 1997, DSL.

[51]  Nils Klarlund,et al.  A Domain-Specific Language for Regular Sets of Strings and Trees , 1997, IEEE Trans. Software Eng..

[52]  Calton Pu,et al.  Microlanguages for Operating System Specialization , 1997 .

[53]  Jan A. Bergstra,et al.  The Discrete Time TOOLBUS - A Software Coordination Architecture , 1998, Science of Computer Programming.

[54]  Daniel Hoffman,et al.  Commonality and Variability in Software Engineering , 1998, IEEE Softw..

[55]  John K. Ousterhout,et al.  Scripting: Higher-Level Programming for the 21st Century , 1998, Computer.

[56]  Paul Hudak,et al.  Modular monadic semantics and compilation , 1998 .

[57]  Arie van Deursen,et al.  Little languages: little maintenance , 1998 .

[58]  Emir Pasalic,et al.  DSL implementation using staging and monads , 1999, DSL '99.

[59]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[60]  James Jennings,et al.  Verischemelog: Verilog embedded in Scheme , 1999, DSL '99.

[61]  Klaus Schmid,et al.  A systematic approach to derive the scope of software product lines , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[62]  Anne Rogers,et al.  Hancock: a language for processing very large-scale data , 1999, DSL '99.

[63]  Gregory D. Hager,et al.  Monadic robotics , 1999, DSL '99.

[64]  Mark A. Ardis,et al.  Jargons for domain engineering , 1999, DSL '99.

[65]  Dawson R. Engler,et al.  Interface Compilation: Steps Toward Compiling Program Interfaces as Languages , 1999, IEEE Trans. Software Eng..

[66]  Keshav Pingali,et al.  A case for source-level transformations in MATLAB , 1999, DSL '99.

[67]  Emin Gün Sirer,et al.  Using production grammars in software testing , 1999, DSL '99.

[68]  Gregg Rothermel,et al.  Slicing spreadsheets: an integrated methodology for spreadsheet testing and debugging , 1999, DSL '99.

[69]  Michel Augeraud,et al.  BDL: A Specialized Language for Per-Object Reactive Control , 1999, IEEE Trans. Software Eng..

[70]  Calvin Lin,et al.  An annotation language for optimizing software libraries , 1999, DSL '99.

[71]  Conal Elliott,et al.  An Embedded Modeling Language Approach to Interactive 3D and Multimedia Animation , 1999, IEEE Trans. Software Eng..

[72]  Paul Hudak,et al.  Lambda in Motion: Controlling Robots with Haskell , 1999, PADL.

[73]  Walid Taha,et al.  MetaML and multi-stage programming with explicit annotations , 2000, Theor. Comput. Sci..

[74]  Magne Haveraaen,et al.  An algebraic programming style for numerical software and its optimization , 2000, Sci. Program..

[75]  Brian Foote,et al.  Designing Reusable Classes , 2001 .

[76]  Diomidis Spinellis,et al.  Notable design patterns for domain-specific languages , 2001, J. Syst. Softw..

[77]  Mike Thomas Principles of Programming Languages Design, Evaluation, and Implementation (3rd ed.) by Bruce J. MacLennan, Oxford University Press, 1999, ISBN 0-19-511306-3. , 2002 .

[78]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[79]  Krzysztof Czarnecki,et al.  Generative Programming: Methods, Techniques, and Applications , 2002, ICSR.

[80]  Simon L. Peyton Jones,et al.  A user-centred approach to functions in Excel , 2003, ICFP.

[81]  Krzysztof Czarnecki,et al.  DSL Implementation in MetaOCaml, Template Haskell, and C++ , 2003, Domain-Specific Program Generation.

[82]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[83]  Clare-Marie Karat,et al.  An empirical study of natural language parsing of privacy policy rules using the SPARCLE policy workbench , 2006, SOUPS '06.

[84]  Walid Taha,et al.  The semantics of graphical languages , 2007, PEPM '07.

[85]  Walid Taha,et al.  Concoqtion: indexed types now! , 2007, PEPM '07.

[86]  Walid Taha,et al.  E-FRP with priorities , 2007, EMSOFT '07.

[87]  Eelco Visser,et al.  Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation , 2007 .

[88]  Jim Grundy,et al.  Synthesizable high level hardware descriptions: using statically typed two-level languages to guarantee verilog synthesizability , 2008, PEPM '08.

[89]  Ivar Hagendoorn,et al.  Emergent Patterns in Dance Improvisation and Choreography , 2008 .

[90]  Aruna Raja,et al.  Domain Specific Languages , 2010 .