Embedding domain specific languages in the attribute grammar formalism

This paper presents techniques for the design and implementation of domain specific languages. Our techniques are based on higher-order attribute grammars. Formal languages are specified in the classical attribute formalism and domain specific languages are embedded in the specification via higher-order attributes. We present a domain specific language for pretty-printing and we show how such language can be easily embedded in the specification of a powerful spreadsheet-like tool. From such specification an incremental implementation is automatically derived and the first results are presented.

[1]  Simon L. Peyton Jones,et al.  Aspect-Oriented Compilers , 1999, GCSE.

[2]  Joao Paulo Saraiva,et al.  Purely Functional Implementation of Attribute Grammars , 1999 .

[3]  João Saraiva Component-Based Programming for Higher-Order Attribute Grammars , 2002, GPCE.

[4]  S. D. Swierstra,et al.  Using attribute grammars to derive efficient functional programs , 1986 .

[5]  Thomas W. Reps,et al.  Incremental Context-Dependent Analysis for Language-Based Editors , 1983, TOPL.

[6]  Neil Bradley The XML Companion , 1998 .

[7]  João Saraiva,et al.  Functional Incremental Attribute Evaluation , 2000, CC.

[8]  S. Doaitse Swierstra,et al.  First-class Attribute Grammars , 2000, Informatica.

[9]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[10]  John Hughes,et al.  The Design of a Pretty-printing Library , 1995, Advanced Functional Programming.

[11]  Henk Sol,et al.  Proceedings of the 54th Hawaii International Conference on System Sciences , 1997, HICSS 2015.

[12]  Thomas Johnsson,et al.  Attribute grammars as a functional programming paradigm , 1987, FPCA.

[13]  Anthony M. Sloane,et al.  Eli: a complete, flexible compiler construction system , 1992, CACM.

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

[15]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[16]  Didier Parigot,et al.  Design, implementation and evaluation of the FNC-2 attribute grammar system , 1990, PLDI '90.

[17]  Jeroen D. Fokker,et al.  Functional Parsers , 1995, Advanced Functional Programming.

[18]  João Saraiva,et al.  Designing and Implementing Combinator Languages , 1998, Advanced Functional Programming.

[19]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[20]  Didier Parigot,et al.  Specification and Implementation of Grammar Couplings using Attribute Grammars , 1993, PLILP.

[21]  Uwe Kastens,et al.  VL-Eli: A Generator for Visual Languages - System Demonstration , 2002, Electron. Notes Theor. Comput. Sci..

[22]  S. Doaitse Swierstra,et al.  Attribute grammars in the functional style , 1998, Systems Implementation 2000.

[23]  PaakkiJukka Attribute grammar paradigmsa high-level methodology in language implementation , 1995 .

[24]  Robert Giegerich,et al.  Attribute coupled grammars , 1984, SIGPLAN '84.

[25]  João Saraiva,et al.  Lrc - A Generator for Incremental Language-Oriented Tools , 1998, International Conference on Compiler Construction.

[26]  William M. Waite,et al.  Modularity and reusability in attribute grammars , 1994, Acta Informatica.

[27]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[28]  Viljem Zumer,et al.  LISA: An Interactive Environment for Programming Language Development , 2002, CC.

[29]  Lori L. Pollock,et al.  On the optimality of change propagation for incremental evaluation of hierarchical attribute grammars , 1996, TOPL.

[30]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[31]  Maria João Varanda Pereira,et al.  Automatic Generation of Language-based Tools , 2002, Electron. Notes Theor. Comput. Sci..

[32]  Colin Runciman,et al.  Haskell and XML: generic combinators or type-based translation? , 1999, ICFP '99.