Rapidly prototyping implementation infrastructure of domain specific languages: a semantics-based approach

Domain Specific Languages (DSLs) are high level languages designed for solving problems in a particular domain, and have been suggested as means for developing reliable software systems. However, designing of a domain specific language is a difficult task. The design of a domain specific language will evolve as it is used more and more and experienced is gained by its designers. Being able to rapidly develop the implementation infrastructure (interpreter, compiler, debugger, profiler, etc.) of a domain specific language is thus of utmost importance so that as the language evolves, the implementation infrastructure can keep pace. In this paper we present a framework for automatically generating interpreters, compilers, debuggers, and profilers from semantic specification of a domain specific language. We illustrate our approach via the SCR language, a language used by the US defense department for developing control systems.

[1]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[2]  Wim Codenie,et al.  From custom applications to domain-specific frameworks , 1997, CACM.

[3]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[4]  Peter J. Stuckey,et al.  Introduction to Constraint Logic Programming , 1998 .

[5]  Victor L. Winter Program Transformation in HATS , 1999 .

[6]  Paul Hudak,et al.  Modular domain specific languages and tools , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[7]  Cornelia Pusch,et al.  Verification of Compiler Correctness for the WAM , 1996, TPHOLs.

[8]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[9]  Enrico Pontelli,et al.  Automatic Generation of Provably Correct Parallelizing Compilers , 1998, ICPP.

[10]  John McCarthy,et al.  Correctness of a compiler for arithmetic expressions , 1966 .

[11]  Flemming Nielson,et al.  Two-Level Semantics and Code Generation , 1988, Theor. Comput. Sci..

[12]  Susan Stepney Incremental development of a high integrity compiler: experience from an industrial development , 1998, Proceedings Third IEEE International High-Assurance Systems Engineering Symposium (Cat. No.98EX231).

[13]  Steven P. Miller Specifying the mode logic of a flight guidance system in CoRE and SCR , 1998, FMSP '98.

[14]  Enn Tyugu,et al.  Constraint Programming , 1994, NATO ASI Series.

[15]  Desh Ranjan,et al.  /spl Phi/LOG: a domain specific language for solving phylogenetic inference problems , 2002, Proceedings. IEEE Computer Society Bioinformatics Conference.

[16]  Constance L. Heitmeyer,et al.  SCR: a toolset for specifying and analyzing requirements , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[17]  Victor W. Marek,et al.  The Logic Programming Paradigm: A 25-Year Perspective , 2011 .

[18]  David A. Schmidt,et al.  Programming language semantics , 1996, CSUR.

[19]  Victor L. Winter,et al.  Bay area rapid transit district advance automated train control system case study description , 2001 .

[20]  Steve M. Easterbrook,et al.  Formal modeling of space shuttle software change requests using SCR , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[21]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[22]  Peter Lee Realistic compiler generation , 1989, Foundations of Computing Series.

[23]  David Lorge Parnas,et al.  Documentation of requirements for computer systems , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[24]  David Lorge Parnas,et al.  Software Requirements for the A-7E Aircraft. , 1992 .

[25]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[26]  Peter D. Mosses Compiler Generation Using Denotational Semantics , 1976, MFCS.

[27]  Deryck Forsyth Brown,et al.  Actress: An Action Semantics Directed Compiler Generator , 1992, CC.

[28]  Mitchell Wand,et al.  Compiler Correctness for Concurrent Languages , 1996, COORDINATION.

[29]  Neil D. Jones,et al.  An introduction to partial evaluation , 1996, CSUR.

[30]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[31]  Robert Paige,et al.  Viewing A Program Transformation System At Work , 1994, PLILP.

[32]  Qian Wang,et al.  Towards Provably Correct Code Generation via Horn Logical Continuation Semantics , 2005, PADL.

[33]  J. Hooker Constraint programming , 2003 .

[34]  John Hannan,et al.  Compiler verification in LF , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[35]  Verification of BART Controller: An Approach based on Horn Logic and Denotational Semantics , .

[36]  Myla Archer,et al.  Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications , 1998, IEEE Trans. Software Eng..

[37]  Dan Sahlin,et al.  An Automatic Partial Evaluator for Full Prolog , 2007 .

[38]  David Lorge Parnas,et al.  State determination in hard-embedded systems , 1989 .

[39]  Arie van Deursen,et al.  The Asf+Sdf Meta-Environment: a Component-Based Language Development Environment , 2001, LDTA@ETAPS.

[40]  Charles Consel,et al.  Architecture Software Using: A Methodology for Language Development , 1998, PLILP/ALP.

[41]  Mitchell Wand Semantics-directed machine architecture , 1982, POPL '82.

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

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

[44]  Andrew D. Gordon,et al.  Compilation and Equivalence of Imperative Objects , 1999, J. Funct. Program..

[45]  Thierry Despeyroux,et al.  Executable Specification of Static Semantics , 1984, Semantics of Data Types.

[46]  Nancy G. Leveson,et al.  Designing specification languages for process control systems: lessons learned and steps to the future , 1999, ESEC/FSE-7.