publications: - title: "TXL: a rapid prototyping system for programming language dialects" author: - name: "James R. Cordy" link: "http://research.cs.queensu.ca/~cordy/" - name: "Charles D. Halpern-Hamu" link: "https://researchr.org/alias/charles-d.-halpern-hamu" - name: "Eric Promislow" link: "https://researchr.org/alias/eric-promislow" year: "1988" doi: "http://dx.doi.org/10.1109/ICCL.1988.13075" links: doi: "http://dx.doi.org/10.1109/ICCL.1988.13075" successor: "https://researchr.org/publication/CordyHP91" tags: - "programming languages" - "meta programming" - "meta-model" - "TXL" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/CordyHP88" cites: 0 citedby: 1 pages: "280-285" booktitle: "1988 Internation Conference on Computer Languages, October 9-13, 1988, Miami, Florida, USA" publisher: "IEEE" kind: "inproceedings" key: "CordyHP88" - title: "Lambda in Motion: Controlling Robots with Haskell" author: - name: "John Peterson" link: "https://researchr.org/alias/john-peterson" - name: "Paul Hudak" link: "https://researchr.org/alias/paul-hudak" - name: "Conal Elliott" link: "http://conal.net/" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1551/15510091.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1551/15510091.htm" tags: - "Haskell" researchr: "https://researchr.org/publication/PetersonHE99" cites: 0 citedby: 1 pages: "91-105" booktitle: "Practical Aspects of Declarative Languages, First International Workshop, PADL 99, San Antonio, Texas, USA, January 18-19, 1999, Proceedings" editor: - name: "Gopal Gupta" link: "https://researchr.org/alias/gopal-gupta" volume: "1551" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65527-1" kind: "inproceedings" key: "PetersonHE99" - title: "The ASF+SDF Meta-environment: A Component-Based Language Development Environment" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "H. A. de Jong" link: "http://www.cwi.nl" - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Tobias Kuipers" link: "http://www.sig.eu" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Leon Moonen" link: "http://simula.no/~leonm/" - name: "Pieter A. Olivier" link: "http://www.cwi.nl" - name: "Jeroen Scheerder" link: "http://www.linkedin.com/in/jeroenscheerder" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" doi: "https://doi.org/10.1016/S1571-0661(04)80917-4" abstract: "The Asf+Sdf Meta-environment is an interactive development environment for the automatic generation of interactive systems for constructing language definitions and generating tools for them. Over the years, this system has been used in a variety of academic and commercial projects ranging from formal program manipulation to conversion of COBOL systems. Since the existing implementation of the Meta-environment started exhibiting more and more characteristics of a legacy system, we decided to build a completely new, component-based, version. We demonstrate this new system and stress its open architecture. " links: doi: "https://doi.org/10.1016/S1571-0661(04)80917-4" tags: - "programming languages" - "rule-based" - "meta programming" - "SDF" - "meta-model" - "architecture" - "model-driven development" - "source-to-source" - "DSL" - "metaprogramming" - "Meta-Environment" - "Cobol" - "ASF+SDF" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/BrandDHJ01" cites: 0 citedby: 3 pages: "365-370" booktitle: "Compiler Construction, 10th International Conference, CC 2001 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2001 Genova, Italy, April 2-6, 2001, Proceedings" editor: - name: "Reinhard Wilhelm" link: "https://researchr.org/alias/reinhard-wilhelm" volume: "2027" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41861-X" kind: "inproceedings" key: "BrandDHJ01" - title: "Declarative Intraprocedural Flow Analysis of Java Source Code" author: - name: "Emma Nilsson-Nyman" link: "https://researchr.org/alias/emma-nilsson-nyman" - name: "Görel Hedin" link: "https://researchr.org/alias/g%C3%A3%C2%B6rel-hedin" - name: "Eva Magnusson" link: "https://researchr.org/alias/eva-magnusson" - name: "Torbjörn Ekman" link: "https://researchr.org/alias/torbj%C3%A3%C2%B6rn-ekman" year: "2009" doi: "http://dx.doi.org/10.1016/j.entcs.2009.09.046" links: doi: "http://dx.doi.org/10.1016/j.entcs.2009.09.046" tags: - "Java" - "points-to analysis" - "analysis" - "data-flow" - "source-to-source" - "data-flow analysis" - "open-source" researchr: "https://researchr.org/publication/Nilsson-NymanHME09" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "238" number: "5" pages: "155-171" kind: "article" key: "Nilsson-NymanHME09" - title: "Programming pearls: little languages" author: - name: "Bentley, Jon" link: "https://researchr.org/alias/bentley%2C-jon" year: "1986" doi: "http://doi.acm.org/10.1145/6424.315691" links: doi: "http://doi.acm.org/10.1145/6424.315691" tags: - "programming languages" - "little language" - "programming" researchr: "https://researchr.org/publication/Bentley86" cites: 0 citedby: 1 journal: "Commun. ACM" volume: "29" kind: "article" key: "Bentley86" - title: "A Software Engineering Experiment in Software Component Generation" author: - name: "Richard B. Kieburtz" link: "https://researchr.org/alias/richard-b.-kieburtz" - name: "Laura McKinney" link: "https://researchr.org/alias/laura-mckinney" - name: "Jeffrey M. Bell" link: "https://researchr.org/alias/jeffrey-m.-bell" - name: "James Hook" link: "https://researchr.org/alias/james-hook" - name: "Alex Kotov" link: "https://researchr.org/alias/alex-kotov" - name: "Jeffrey Lewis" link: "https://researchr.org/alias/jeffrey-lewis" - name: "Dino Oliva" link: "https://researchr.org/alias/dino-oliva" - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" - name: "Ira Smith" link: "https://researchr.org/alias/ira-smith" - name: "Lisa Walton" link: "https://researchr.org/alias/lisa-walton" year: "1996" doi: "http://portal.acm.org/citation.cfm?id=227726.227842" abstract: "The paper presents results of a software engineering experiment in which a new technology for constructing program generators from domain-specific specification languages has been compared with a reuse technology that employs sets of reusable Ada program templates. Both technologies were applied to a common problem domain, constructing message translation and validation modules for military command, control, communications and information systems (C/sup 3/I). The experiment employed four subjects to conduct trials of use of the two technologies on a common set of test examples. The experiment was conducted with personnel supplied and supervised by an independent contractor. Test cases consisted of message specifications taken from Air Force C/sup 3/I systems. The main results are that greater productivity was achieved and fewer error were introduced when subjects used the program generator than when they used Ada templates to implement software modules from sets of specifications. The differences in the average performance of the subjects are statistically significant at confidence levels exceeding 99 percent." links: doi: "http://portal.acm.org/citation.cfm?id=227726.227842" tags: - "control systems" - "programming languages" - "object-oriented programming" - "reusable components" - "translation" - "software components" - "language engineering" - "software language engineering" - "software component" - "testing" - "reuse" - "software engineering" - "C++" - "subject-oriented programming" - "feature-oriented programming" - "domain-specific language" researchr: "https://researchr.org/publication/KieburtzMBHKLOSSW96" cites: 0 citedby: 1 pages: "542-552" booktitle: "ICSE" kind: "inproceedings" key: "KieburtzMBHKLOSSW96" - title: "Iteration Abstraction in Sather" author: - name: "Stephan Murer" link: "https://researchr.org/alias/stephan-murer" - name: "Stephen M. Omohundro" link: "https://researchr.org/alias/stephen-m.-omohundro" - name: "David Stoutamire" link: "https://researchr.org/alias/david-stoutamire" - name: "Clemens A. Szyperski" link: "https://researchr.org/alias/clemens-a.-szyperski" year: "1996" doi: "http://doi.acm.org/10.1145/225540.225541" links: doi: "http://doi.acm.org/10.1145/225540.225541" tags: - "abstraction" researchr: "https://researchr.org/publication/MurerOSS96" cites: 0 citedby: 1 journal: "ACM Transactions on Programming Languages and Systems" volume: "18" number: "1" pages: "1-15" kind: "article" key: "MurerOSS96" - title: "Grammar Adaptation" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2021/20210550.htm" abstract: "We employ transformations for the adaptation of grammars. Grammars need to be adapted in grammar development, grammar maintenance, grammar reengineering, and grammar recovery. Starting from a few fundamental transformation primitives and combinators, we derive an operator suite for grammar adaptation. Three groups of operators are identified, namely operators for refactoring, construction and destruction. While refactoring is semantics-preserving in the narrow sense, transformations for construction and destruction require the consideration of relaxed notions of semantics preservation based on other grammar relations than equality of generated languages. The consideration of semantics and accompanying preservation properties is slightly complicated by the fact that we cannot insist on reduced grammars." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2021/20210550.htm" tags: - "semantics" - "rule-based" - "refactoring" - "transformation language" - "maintenance" - "rule-based refactoring" - "transformation" - "grammar" researchr: "https://researchr.org/publication/Lammel01%3A0" cites: 0 citedby: 1 pages: "550-570" booktitle: "FME 2001: Formal Methods for Increasing Software Productivity, International Symposium of Formal Methods Europe, Berlin, Germany, March 12-16, 2001, Proceedings" editor: - name: "José Nuno Oliveira" link: "https://researchr.org/alias/jos%C3%A9-nuno-oliveira" - name: "Pamela Zave" link: "https://researchr.org/alias/pamela-zave" volume: "2021" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41791-5" kind: "inproceedings" key: "Lammel01:0" - title: "Disambiguation Filters for Scannerless Generalized LR Parsers" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Jeroen Scheerder" link: "http://www.linkedin.com/in/jeroenscheerder" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2002" doi: "https://doi.org/10.1007/3-540-45937-5_12" abstract: "In this paper we present the fusion of generalized LR parsing and scannerless parsing. This combination supports syntax definitions in which all aspects (lexical and context-free) of the syntax of a language are defined explicitly in one formalism. Furthermore, there are no restrictions on the class of grammars, thus allowing a natural syntax tree structure. Ambiguities that arise through the use of unrestricted grammars are handled by explicit disambiguation constructs, instead of implicit defaults that are taken by traditional scanner and parser generators. Hence, a syntax definition becomes a full declarative description of a language. Scannerless generalized LR parsing is a viable technique that has been applied in various industrial and academic projects. " links: doi: "https://doi.org/10.1007/3-540-45937-5_12" tags: - "GLR parsing" - "syntax definition" - "SDF" - "lexical syntax" - "scannerless" - "disambiguation" - "GLR" - "context-aware" - "parsing" - "scannerless parsing" - "ASF+SDF" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/BrandSVV02" cites: 0 citedby: 4 pages: "143-158" booktitle: "Compiler Construction, 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, 2002, Proceedings" editor: - name: "R. Nigel Horspool" link: "https://researchr.org/alias/r.-nigel-horspool" volume: "2304" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43369-4" kind: "inproceedings" key: "BrandSVV02" - title: "Refactoring -- Improving Coupling and Cohesion of Existing Code" author: - name: "Bart Du Bois" link: "https://researchr.org/alias/bart-du-bois" - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Jan Verelst" link: "https://researchr.org/alias/jan-verelst" year: "2004" doi: "http://doi.ieeecomputersociety.org/10.1109/WCRE.2004.33" links: doi: "http://doi.ieeecomputersociety.org/10.1109/WCRE.2004.33" tags: - "refactoring" researchr: "https://researchr.org/publication/BoisDV04" cites: 0 citedby: 0 pages: "144-151" booktitle: "11th Working Conference on Reverse Engineering (WCRE 2004), 8-12 November 2004, Delft, The Netherlands" publisher: "IEEE Computer Society" isbn: "0-7695-2243-2" kind: "inproceedings" key: "BoisDV04" - title: "Deterministic Parsing of Ambiguous Grammars" author: - name: "Alfred V. Aho" link: "http://www1.cs.columbia.edu/~aho/" - name: "Stephen C. Johnson" link: "https://researchr.org/alias/stephen-c.-johnson" - name: "Jeffrey D. Ullman" link: "https://researchr.org/alias/jeffrey-d.-ullman" year: "1975" doi: "http://doi.acm.org/10.1145/360933.360969" abstract: "Methods of describing the syntax of programming languages in ways that are more flexible and natural than conventional BNF descriptions are considered. These methods involve the use of ambiguous context-free grammars together with rules to resolve syntactic ambiguities. It is shown how efficient LR and LL parsers can be constructed directly from certain classes of these specifications. " links: doi: "http://doi.acm.org/10.1145/360933.360969" tags: - "programming languages" - "rule-based" - "rules" - "C++" - "programming" - "context-aware" - "parsing" - "grammar" researchr: "https://researchr.org/publication/AhoJU75" cites: 0 citedby: 1 journal: "Communications of the ACM" volume: "18" number: "8" pages: "441-452" kind: "article" key: "AhoJU75" - title: "Polymorphic embedding of DSLs" author: - name: "Christian Hofer" link: "http://www.daimi.au.dk/~chmh/" - name: "Klaus Ostermann" link: "http://www.informatik.uni-marburg.de/~kos/" - name: "Tillmann Rendel" link: "https://researchr.org/alias/tillmann-rendel" - name: "Adriaan Moors" link: "http://www.google.com" year: "2008" doi: "http://doi.acm.org/10.1145/1449913.1449935" abstract: "The influential pure embedding methodology of embedding domain-specific languages (DSLs) as libraries into a general-purpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domain-specific analyses. We propose polymorphic embedding of DSLs, where many different interpretations of a DSL can be provided as reusable components, and show how polymorphic embedding can be realized in the programming language Scala. With polymorphic embedding, the static type-safety, modularity, composability and rapid prototyping of pure embedding are reconciled with the flexibility attainable by external toolchains." links: doi: "http://doi.acm.org/10.1145/1449913.1449935" tags: - "programming languages" - "optimization" - "semantics" - "reusable components" - "Scala" - "reuse" - "DSL" - "programming" - "program optimization" - "domain-specific language" researchr: "https://researchr.org/publication/HoferORM08" cites: 31 citedby: 0 pages: "137-148" booktitle: "Generative Programming and Component Engineering, 7th International Conference, GPCE 2008, Nashville, TN, USA, October 19-23, 2008, Proceedings" editor: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Jeremy G. Siek" link: "http://homes.soic.indiana.edu/jsiek/" publisher: "ACM" isbn: "978-1-60558-267-2" kind: "inproceedings" key: "HoferORM08" - title: "abc: An Extensible AspectJ Compiler" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Jennifer Lhoták" link: "https://researchr.org/alias/jennifer-lhot%C3%A1k" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2006" doi: "http://dx.doi.org/10.1007/11687061_9" abstract: " Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new features for AspectJ have been proposed that require extensions in many dimensions: syntax, type checking and code generation, as well as data flow and control flow analyses. The AspectBench Compiler (abc) is an implementation of such a workbench. The base version of abc implements the full AspectJ language. Its front end is built using the Polyglot framework, as a modular extension of the Java language. The use of Polyglot gives flexibility of syntax and type checking. The back end is built using the Soot framework, to give modular code generation and analyses. In this paper, we outline the design of abc, focusing mostly on how the design supports extensibility. We then provide a general overview of how to use abc to implement an extension. We illustrate the extension mechanisms of abc through a number of small, but nontrivial, examples. We then proceed to contrast the design goals of abc with those of the original AspectJ compiler, and how these different goals have led to different design decisions. Finally, we review a few examples of projects by others that extend abc in interesting ways. " links: doi: "http://dx.doi.org/10.1007/11687061_9" tags: - "programming languages" - "workbench" - "AspectJ" - "object-oriented programming" - "rule-based" - "Java" - "data-flow language" - "design research" - "language design" - "data-flow programming" - "data-flow" - "code generation" - "type checking" - "reviewing" - "aspect oriented programming" - "compiler" - "programming" - "subject-oriented programming" - "language workbench" - "design" - "extensible language" - "feature-oriented programming" researchr: "https://researchr.org/publication/AvgustinovCHKLLMSST06" cites: 0 citedby: 1 journal: "Transactions on Aspect-Oriented Software Development" pages: "293-334" kind: "article" key: "AvgustinovCHKLLMSST06" - title: "Haskell Server Pages - Functional Programming and the Battle for the Middle Tier" author: - name: "Erik Meijer" link: "https://researchr.org/alias/erik-meijer" - name: "Danny van Velzen" link: "https://researchr.org/alias/danny-van-velzen" year: "2000" doi: "http://www.elsevier.com/gej-ng/31/29/23/76/33/show/Products/notes/index.htt#004" links: doi: "http://www.elsevier.com/gej-ng/31/29/23/76/33/show/Products/notes/index.htt#004" tags: - "functional programming" - "Haskell" - "programming" researchr: "https://researchr.org/publication/MeijerV00" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "41" number: "1" pages: "74" kind: "article" key: "MeijerV00" - title: "Traits: A Mechanism for fine-grained Reuse" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Nathanael Schärli" link: "http://www.iam.unibe.ch/~schaerli/" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Andrew Black" link: "https://researchr.org/alias/andrew-black" year: "2006" month: "mar" doi: "10.1145/1119479.1119483" abstract: "Inheritance is well-known and accepted as a mechanism for reuse in ob ject-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse. To overcome these problems we propose traits, pure units of reuse consisting only of methods. We develop a formal model of traits that establishes how traits can be composed, either to form other traits, or to form classes. We also outline an experimental validation in which we apply traits to refactor a non-trivial application into composable units." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Duca06bTOPLASTraits.pdf" tags: - "rule-based" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "reuse" - "Meta-Environment" researchr: "https://researchr.org/publication/Duca06b" cites: 0 citedby: 1 journal: "ACM Transactions on Programming Languages and Systems (TOPLAS)" volume: "28" number: "2" kind: "article" key: "Duca06b" - title: "Syntax error handling in scannerless generalized LR parsers" author: - name: "R. Valkering" link: "https://researchr.org/alias/r.-valkering" year: "2007" month: "August" tags: - "parsing" - "scannerless parsing" researchr: "https://researchr.org/publication/Valkering2007" cites: 0 citedby: 1 school: "Programming Research Group, University of Amsterdam" address: "Amsterdam, The Netherlands" kind: "mastersthesis" key: "Valkering2007" - title: "Assimilating MetaBorg: : embedding language tools in languages" author: - name: "Jonathan Riehl" link: "https://researchr.org/alias/jonathan-riehl" year: "2006" doi: "http://doi.acm.org/10.1145/1173706.1173710" links: doi: "http://doi.acm.org/10.1145/1173706.1173710" researchr: "https://researchr.org/publication/Riehl06%3A0" cites: 0 citedby: 0 pages: "21-28" booktitle: "Generative Programming and Component Engineering, 5th International Conference, GPCE 2006, Portland, Oregon, USA, October 22-26, 2006, Proceedings" editor: - name: "Stan Jarzabek" link: "https://researchr.org/alias/stan-jarzabek" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" - name: "Todd L. Veldhuizen" link: "https://researchr.org/alias/todd-l.-veldhuizen" publisher: "ACM" isbn: "1-59593-237-2" kind: "inproceedings" key: "Riehl06:0" - title: "Intentional software" author: - name: "Charles Simonyi" link: "https://researchr.org/alias/charles-simonyi" - name: "Magnus Christerson" link: "https://researchr.org/alias/magnus-christerson" - name: "Shane Clifford" link: "https://researchr.org/alias/shane-clifford" year: "2006" doi: "http://doi.acm.org/10.1145/1167473.1167511" abstract: "Wysiwyg editors simplified document creation by separating the document contents from the looks and by automating the re-application of the looks to changing contents. In the same way Intentional Software simplifies software creation by separating the software contents in terms of their various domains from the implementation of the software and by enabling automatic re-generation of the software as the contents change. This way, domain experts can work in parallel with programmers in their respective areas of expertise; and the repeated intermingling can be automated. Intentional Software is supported by a Domain Workbench tool where multiple domains can be defined, created, edited, transformed and integrated during software creation. Key features include a uniform representation of multiple interrelated domains, the ability to project the domains in multiple editable notations, and simple access for a program generator." links: doi: "http://doi.acm.org/10.1145/1167473.1167511" tags: - "generative programming" - "workbench" - "parallel programming" - "language workbench" - "domain-specific language" researchr: "https://researchr.org/publication/SimonyiCC06" cites: 0 citedby: 1 pages: "451-464" booktitle: "Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "http://portal.acm.org/author_page.cfm?id=81100131551&coll=GUIDE&dl=GUIDE&trk=0&CFID=51133021&CFTOKEN=87963901" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-348-4" kind: "inproceedings" key: "SimonyiCC06" - title: "Unit Testing for Domain-Specific Languages" author: - name: "Hui Wu" link: "https://researchr.org/alias/hui-wu" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-03034-5_7" abstract: "Domain-specific languages (DSLs) offer several advantages by providing idioms that are similar to the abstractions found in a specific problem domain. However, a challenge is that tool support for DSLs is lacking when compared to the capabilities offered in general-purpose languages (GPLs), such as Java and C++. For example, support for unit testing a DSL program is absent and debuggers for DSLs are rare. This limits the ability of a developer to discover the existence of software errors and to locate them in a DSL program. Currently, software developers using a DSL are generally forced to test and debug their DSL programs using available GPL tools, rather than tools that are informed by the domain abstractions at the DSL level. This reduces the utility of DSL adoption and minimizes the benefits of working with higher abstractions, which can bring into question the suitability of using DSLs in the development process. This paper introduces our initial investigation into a unit testing framework that can be customized for specific DSLs through a reusable mapping of GPL testing tool functionality. We provide examples from two different DSL categories that serve as case studies demonstrating the possibilities of a unit testing engine for DSLs. " links: doi: "http://dx.doi.org/10.1007/978-3-642-03034-5_7" tags: - "programming languages" - "Java" - "case study" - "functional programming" - "testing" - "reuse" - "C++" - "debugging" - "DSL" - "abstraction" - "domain-specific language" researchr: "https://researchr.org/publication/WuGM09" cites: 0 citedby: 0 pages: "125-147" booktitle: "Domain-Specific Languages, IFIP TC 2 Working Conference, DSL 2009, Oxford, UK, July 15-17, 2009, Proceedings" editor: - name: "Walid Mohamed Taha" link: "https://researchr.org/alias/walid-mohamed-taha" volume: "5658" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-03033-8" kind: "inproceedings" key: "WuGM09" - title: "Static Checking of Dynamically Generated Queries in Database Applications" author: - name: "Carl Gould" link: "https://researchr.org/alias/carl-gould" - name: "Zhendong Su" link: "https://researchr.org/alias/zhendong-su" - name: "Premkumar T. Devanbu" link: "https://researchr.org/alias/premkumar-t.-devanbu" year: "2004" doi: "http://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630645abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630645abs.htm" tags: - "database" researchr: "https://researchr.org/publication/GouldSD04" cites: 0 citedby: 1 pages: "645-654" booktitle: "26th International Conference on Software Engineering (ICSE 2004), 23-28 May 2004, Edinburgh, United Kingdom" publisher: "IEEE Computer Society" isbn: "0-7695-2163-0" kind: "inproceedings" key: "GouldSD04" - title: "Implementing Multi-stage Languages Using ASTs, Gensym, and Reflection" author: - name: "Cristiano Calcagno" link: "https://researchr.org/alias/cristiano-calcagno" - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" - name: "Liwen Huang" link: "https://researchr.org/alias/liwen-huang" - name: "Xavier Leroy" link: "http://pauillac.inria.fr/~xleroy/" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2830&spage=57" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2830&spage=57" tags: - "reflection" researchr: "https://researchr.org/publication/CalcagnoTHL03" cites: 0 citedby: 1 pages: "57-76" booktitle: "Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings" editor: - name: "Frank Pfenning" link: "http://www.cs.cmu.edu/~fp/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" volume: "2830" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-20102-5" kind: "inproceedings" key: "CalcagnoTHL03" - title: "PIL: A Platform Independent Language for Retargetable DSLs" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_17" abstract: "Intermediate languages are used in compiler construction to simplify retargeting compilers to multiple machine architectures. In the implementation of domain-specific languages (DSLs), compilers typically generate high-level source code, rather than low-level machine instructions. DSL compilers target a software platform, i.e. a programming language with a set of libraries, deployable on one or more operating systems. DSLs enable targeting multiple software platforms if its abstractions are platform independent. While transformations from DSL to each targeted platform are often conceptually very similar, there is little reuse between transformations due to syntactic and API differences of the target platforms, making supporting multiple platforms expensive. In this paper, we discuss the design and implementation of PIL, a Platform Independent Language, an intermediate language providing a layer of abstraction between DSL and target platform code, abstracting from syntactic and API differences between platforms, thereby removing the need for platform-specific transformations. We discuss the use of PIL in an implemementation of WebDSL, a DSL for building web applications." links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_17" tags: - "DSL" researchr: "https://researchr.org/publication/HemelV09" cites: 0 citedby: 1 pages: "224-243" booktitle: "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" volume: "5969" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-12106-7" kind: "inproceedings" key: "HemelV09" - title: "BDL: A Specialized Language for Per-Object Reactive Control" author: - name: "Frédéric Bertrand" link: "https://researchr.org/alias/fr%C3%A9d%C3%A9ric-bertrand" - name: "Michel Augeraud" link: "https://researchr.org/alias/michel-augeraud" year: "1999" doi: "http://computer.org/tse/ts1999/e0347abs.htm" links: doi: "http://computer.org/tse/ts1999/e0347abs.htm" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/BertrandA99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "347-362" kind: "article" key: "BertrandA99" - title: "A little language for surveys: constructing an internal DSL in Ruby" author: - name: "H. Cunningham" link: "http://www.cs.olemiss.edu/~hcc/" year: "2008" doi: "http://doi.acm.org/10.1145/1593105.1593181" abstract: "Using a problem domain motivated by Bentley's \"Little Languages\" column [1], this paper explores the use of the Ruby programming language's flexible syntax, dynamic nature, and reflexive metaprogramming facilities to implement an internal domain-specific language (DSL) for surveys. Jon Bentley, Programming pearls: little languages, Communications of the ACM, v.29 n.8, p.711-721, Aug. 1986 [doi>10.1145/6424.315691] " links: doi: "http://doi.acm.org/10.1145/1593105.1593181" tags: - "programming languages" - "little language" - "survey" - "DSL" - "programming" - "Ruby" - "domain-specific language" researchr: "https://researchr.org/publication/Cunningham08" cites: 17 citedby: 0 booktitle: "ACM-SE 46: Proceedings of the 46th Annual Southeast Regional Conference on XX" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-60558-105-7" kind: "inproceedings" key: "Cunningham08" - title: "Securing web application code by static analysis and runtime protection" author: - name: "Yao-Wen Huang" link: "https://researchr.org/alias/yao-wen-huang" - name: "Fang Yu" link: "https://researchr.org/alias/fang-yu" - name: "Christian Hang" link: "https://researchr.org/alias/christian-hang" - name: "Chung-Hung Tsai" link: "https://researchr.org/alias/chung-hung-tsai" - name: "Der-Tsai Lee" link: "https://researchr.org/alias/der-tsai-lee" - name: "Sy-Yen Kuo" link: "https://researchr.org/alias/sy-yen-kuo" year: "2004" doi: "http://doi.acm.org/10.1145/988672.988679" links: doi: "http://doi.acm.org/10.1145/988672.988679" tags: - "analysis" - "static analysis" - "web applications" researchr: "https://researchr.org/publication/HuangYHTLK04%3A0" cites: 0 citedby: 1 pages: "40-52" booktitle: "Proceedings of the 13th international conference on World Wide Web, WWW 2004, New York, NY, USA, May 17-20, 2004" editor: - name: "Stuart I. Feldman" link: "https://researchr.org/alias/stuart-i.-feldman" - name: "Mike Uretsky" link: "https://researchr.org/alias/mike-uretsky" - name: "Marc Najork" link: "https://researchr.org/alias/marc-najork" - name: "Craig E. Wills" link: "https://researchr.org/alias/craig-e.-wills" publisher: "ACM" isbn: "1-58113-844-X" kind: "inproceedings" key: "HuangYHTLK04:0" - title: "An Overview of AspectJ" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Erik Hilsdale" link: "https://researchr.org/alias/erik-hilsdale" - name: "Jim Hugunin" link: "https://researchr.org/alias/jim-hugunin" - name: "Mik Kersten" link: "https://researchr.org/alias/mik-kersten" - name: "Jeffrey Palm" link: "https://researchr.org/alias/jeffrey-palm" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2072/20720327.htm" abstract: "AspectJ™ is a simple and practical aspect-oriented extension to Java.. With just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns. In AspectJ’s dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are special method-like constructs that can be attached to pointcuts; and aspects are modular units of crosscutting implementation, comprising pointcuts, advice, and ordinary Java member declarations. AspectJ code is compiled into standard Java bytecode. Simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes. Several examples show that AspectJ is powerful, and that programs written using it are easy to understand." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2072/20720327.htm" tags: - "AspectJ" - "object-oriented programming" - "Java" - "meta programming" - "meta-model" - "AOP" - "model-driven development" - "object-role modeling" - "aspect oriented programming" - "compiler" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" researchr: "https://researchr.org/publication/KiczalesHHKPG01" cites: 0 citedby: 1 pages: "327-353" booktitle: "ECOOP 2001 - Object-Oriented Programming, 15th European Conference, Budapest, Hungary, June 18-22, 2001, Proceedings" editor: - name: "Jørgen Lindskov Knudsen" link: "https://researchr.org/alias/j%C3%B8rgen-lindskov-knudsen" volume: "2072" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-42206-4" kind: "inproceedings" key: "KiczalesHHKPG01" - title: "Modularity and Reusability in Attribute Grammars" author: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "William M. Waite" link: "https://researchr.org/alias/william-m.-waite" year: "1994" doi: "http://portal.acm.org/citation.cfm?id=191491" links: doi: "http://portal.acm.org/citation.cfm?id=191491" tags: - "attribute grammars" - "reuse" - "grammar" researchr: "https://researchr.org/publication/KastensW94" cites: 0 citedby: 1 journal: "Acta Informatica" volume: "31" number: "7" pages: "601-627" kind: "article" key: "KastensW94" - title: "Efficient annotated terms" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "H. A. de Jong" link: "https://researchr.org/alias/h.-a.-de-jong" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Pieter A. Olivier" link: "https://researchr.org/alias/pieter-a.-olivier" year: "2000" doi: "https://doi.org/10.1002/(SICI)1097-024X(200003)30:3\\%3C259::AID-SPE298\\%3E3.0.CO;2-Y" abstract: "How do distributed applications exchange (tree-like) data structures? To this end, we introduce the abstract data type of Annotated Terms (ATerms) and discuss their design, implementation and application. A comprehensive procedural interface enables creation and manipulation of ATerms in C. A Java version is also supported. The ATerm implementation is based on maximal subterm sharing and automatic garbage collection. A binary exchange format for the concise representation of ATerms (sharing preserved) allows the fast exchange of ATerms between applications. In a typical application---parse trees which contain quite some redundant information---less than 2 bytes are needed to represent a node in memory, and less than 2 bits are needed to represent it in binary format. It is shown that the implementation of ATerms scales up to the manipulation of ATerms in the giga-byte range." links: doi: "https://doi.org/10.1002/(SICI)1097-024X(200003)30:3\\%3C259::AID-SPE298\\%3E3.0.CO;2-Y" tags: - "rule-based" - "Java" - "parsing" researchr: "https://researchr.org/publication/BrandJKO00" cites: 0 citedby: 1 journal: "Software: Practice and Experience" volume: "30" number: "3" pages: "259-291" kind: "article" key: "BrandJKO00" - title: "DiSTiL: A Transformation Library for Data Structures" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/smaragdakis.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/smaragdakis.html" tags: - "data-flow" - "DSL" - "transformation" researchr: "https://researchr.org/publication/SmaragdakisB97" cites: 0 citedby: 1 booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "SmaragdakisB97" - title: "A Pedagogical Framework for Domain-Specific Languages" author: - name: "Martin Fowler" link: "http://martinfowler.com/" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2009.85" links: doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2009.85" tags: - "domain-specific language" researchr: "https://researchr.org/publication/Fowler09-0" cites: 0 citedby: 1 journal: "IEEE Software" volume: "26" number: "4" pages: "13-14" kind: "article" key: "Fowler09-0" - title: "Executable Grammars in Newspeak" author: - name: "Gilad Bracha" link: "https://researchr.org/alias/gilad-bracha" year: "2007" doi: "http://dx.doi.org/10.1016/j.entcs.2007.10.004" links: doi: "http://dx.doi.org/10.1016/j.entcs.2007.10.004" tags: - "grammar" researchr: "https://researchr.org/publication/Bracha07" cites: 0 citedby: 2 journal: "Electronic Notes in Theoretical Computer Science" volume: "193" pages: "3-18" kind: "article" key: "Bracha07" - title: "TXL: A Rapid Prototyping System for Programming Language Dialects" author: - name: "James R. Cordy" link: "http://research.cs.queensu.ca/~cordy/" - name: "Charles D. Halpern-Hamu" link: "https://researchr.org/alias/charles-d.-halpern-hamu" - name: "Eric Promislow" link: "https://researchr.org/alias/eric-promislow" year: "1991" doi: "https://doi.org/10.1109/ICCL.1988.13075" links: doi: "https://doi.org/10.1109/ICCL.1988.13075" tags: - "programming languages" - "TXL" - "programming" researchr: "https://researchr.org/publication/CordyHP91" cites: 0 citedby: 1 journal: "Computer Languages, Systems \\& Structures" volume: "16" number: "1" pages: "97-107" kind: "article" key: "CordyHP91" - title: "Composing Programming Languages by Combining Action-Semantics Modules" author: - name: "Kyung-Goo Doh" link: "https://researchr.org/alias/kyung-goo-doh" - name: "Peter D. Mosses" link: "https://pdmosses.github.io" year: "2001" doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#008" links: doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#008" tags: - "programming languages" - "semantics" - " action semantics" - "programming" researchr: "https://researchr.org/publication/DohM01" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "44" number: "2" pages: "87-109" kind: "article" key: "DohM01" - title: "Little Languages for Music" author: - name: "Peter S. Langston" link: "https://researchr.org/alias/peter-s.-langston" year: "1990" tags: - "little language" researchr: "https://researchr.org/publication/Langston90-1" cites: 0 citedby: 0 journal: "Computing Systems" volume: "3" number: "2" pages: "193-288" kind: "article" key: "Langston90-1" - title: "MetaLexer: a modular lexical specification language" author: - name: "Andrew Casey" link: "https://researchr.org/alias/andrew-casey" - name: "Laurie J. Hendren" link: "https://researchr.org/alias/laurie-j.-hendren" year: "2011" doi: "http://doi.acm.org/10.1145/1960275.1960279" links: doi: "http://doi.acm.org/10.1145/1960275.1960279" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/aosd/CaseyH11" researchr: "https://researchr.org/publication/CaseyH11" cites: 0 citedby: 0 pages: "7-18" booktitle: "Proceedings of the 10th International Conference on Aspect-Oriented Software Development, AOSD 2011, Porto de Galinhas, Brazil, March 21-25, 2011" editor: - name: "Paulo Borba" link: "https://researchr.org/alias/paulo-borba" - name: "Shigeru Chiba" link: "https://researchr.org/alias/shigeru-chiba" publisher: "ACM" isbn: "978-1-4503-0605-8" kind: "inproceedings" key: "CaseyH11" - title: "Open Modules: Modular Reasoning About Advice" author: - name: "Jonathan Aldrich" link: "https://researchr.org/alias/jonathan-aldrich" year: "2005" doi: "http://dx.doi.org/10.1007/11531142_7" links: doi: "http://dx.doi.org/10.1007/11531142_7" tags: - "source-to-source" - "open-source" researchr: "https://researchr.org/publication/Aldrich05" cites: 0 citedby: 1 pages: "144-168" booktitle: "ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings" editor: - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" volume: "3586" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-27992-X" kind: "inproceedings" key: "Aldrich05" - title: "Language composition untangled" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Paolo G. Giarrusso" link: "https://www.informatik.uni-marburg.de/~pgiarrusso/" - name: "Tillmann Rendel" link: "https://researchr.org/alias/tillmann-rendel" year: "2012" doi: "http://doi.acm.org/10.1145/2427048.2427055" links: doi: "http://doi.acm.org/10.1145/2427048.2427055" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ldta/ErdwegGR12" researchr: "https://researchr.org/publication/ErdwegGR12" cites: 0 citedby: 0 pages: "7" booktitle: "International Workshop on Language Descriptions, Tools, and Applications, LDTA '12, Tallinn, Estonia, March 31 - April 1, 2012" editor: - name: "Anthony Sloane" link: "https://researchr.org/alias/anthony-sloane" - name: "Suzana Andova" link: "https://researchr.org/alias/suzana-andova" publisher: "ACM" isbn: "978-1-4503-1536-4" kind: "inproceedings" key: "ErdwegGR12" - title: "Delegating Compiler Objects: Modularity and Reusability in Language Engineering" author: - name: "Jan Bosch" link: "https://researchr.org/alias/jan-bosch" year: "1997" tags: - "meta-model" - "language engineering" - "reuse" - "model-driven engineering" - "compiler" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Bosch97%3A1" cites: 0 citedby: 0 journal: "Nord. J. Comput." volume: "4" number: "1" pages: "66-92" kind: "article" key: "Bosch97:1" - title: "WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Ruben Verhaaf" link: "http://www.linkedin.com/pub/ruben-verhaaf/3/a73/2ab" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_8" abstract: "Workflow languages are designed for the high-level description of processes and are typically not suitable for the generation of complete applications. In this paper, we present WebWorkFlow, an object-oriented workflow modeling language for the high-level description of workflows in web applications. Workflow descriptions define procedures operating on domain objects. Procedures are composed using sequential and concurrent process combinators. WebWorkFlow is an embedded language, extending WebDSL, a domain-specific language for web application development, with workflow abstractions. The extension is implemented by means of model-to-model transformations. Rather than providing an exclusive workflow language, WebWorkFlow supports interaction with the underlying WebDSL language. WebWorkFlow supports most of the basic workflow control patterns. " links: doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_8" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-029.pdf" tags: - "workflow patterns" - "model-to-model transformation" - "interaction design" - "WebDSL" - "transformation engineering" - "completeness" - "pattern language" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "language modeling" - "web engineering" - "language design" - "model-driven development" - "source-to-source" - "model-driven engineering" - "object-role modeling" - "model transformation" - "web applications" - "DSL" - "abstraction" - "Meta-Environment" - "workflow" - "process modeling" - "WebWorkFlow" - "meta-objects" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelVV08" cites: 0 citedby: 6 pages: "113-127" booktitle: "Model Driven Engineering Languages and Systems, 11th International Conference, MoDELS 2008, Toulouse, France, September 28 - October 3, 2008. Proceedings" editor: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: "Ileana Ober" link: "https://researchr.org/alias/ileana-ober" - name: "Jean-Michel Bruel" link: "https://researchr.org/alias/jean-michel-bruel" - name: "Axel Uhl" link: "https://researchr.org/alias/axel-uhl" - name: "Markus Völter" link: "http://www.voelter.de/" volume: "5301" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-87874-2" kind: "inproceedings" key: "HemelVV08" - title: "Invasive Software Composition" author: - name: "A\\ssmann, U." link: "https://researchr.org/alias/a%5Ebssmann%2C-u." year: "2003" tags: - "composition" researchr: "https://researchr.org/publication/778164" cites: 0 citedby: 0 address: "Secaucus, NJ, USA" publisher: "Springer-Verlag New York, Inc." isbn: "3540443851" kind: "book" key: "778164" - title: "Strategic programming meets adaptive programming" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2003" doi: "http://doi.acm.org/10.1145/643603.643621" abstract: "Strategic programming is a generic programming idiom for processing compound data such as terms or object structures. At the heart of the approach is the separation of two concerns: basic dataprocessing computations vs. traversal schemes. Actual traversals are composed by passing the former as arguments to the latter. Traversal schemes can be defined by the strategic programmer using a combinator style that relies on primitives for layered traversal.In this paper, we take a look at strategic programming from an aspect-oriented programming perspective. Throughout the paper, we compare strategic programming with adaptive programming, which is a well-established aspectual approach to the traversal of object structures. We start from the observation that aspect-oriented programming terms, e.g., crosscutting, join point, and advice can be instantiated for aspectual traversal approaches. " links: doi: "http://doi.acm.org/10.1145/643603.643621" tags: - "object-oriented programming" - "meta programming" - "generic programming" - "separation of concerns" - "traversal" - "data-flow programming" - "data-flow" - "strategies" - "graph-rewriting" - "adaptive programming" - "strategic programming" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "systematic-approach" - "rewriting strategies" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/LammelVV03" cites: 0 citedby: 1 pages: "168-177" booktitle: "AOSD" kind: "inproceedings" key: "LammelVV03" - title: "OMeta: an object-oriented language for pattern matching" author: - name: "Alessandro Warth" link: "https://researchr.org/alias/alessandro-warth" - name: "Ian Piumarta" link: "https://researchr.org/alias/ian-piumarta" year: "2007" doi: "http://doi.acm.org/10.1145/1297081.1297086" links: doi: "http://doi.acm.org/10.1145/1297081.1297086" tags: - "programming languages" - "OMetaCaml" - "object-oriented programming" - "meta-programming system" - "meta programming" - "pattern language" - "pattern matching" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/WarthP07" cites: 0 citedby: 1 pages: "11-19" booktitle: "Proceedings of the 2007 Symposium on Dynamic Languages, DLS 2007, October 22, 2007, Montreal, Quebec, Canada" editor: - name: "Pascal Costanza" link: "http://p-cos.net/" - name: "Robert Hirschfeld" link: "http://www.hpi.uni-potsdam.de/personen/professoren/hirschfeld.html" publisher: "ACM" isbn: "978-1-59593-868-8" kind: "inproceedings" key: "WarthP07" - title: "Generating Editors for Embedded Languages. Integrating SGLR into IMP" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" month: "April" abstract: "Integrated Development Environments (IDEs) increase productivity by providing a rich user interface and rapid feedback for a specific language. Creating an editor for a specific language is not a trivial undertaking, and is a cumbersome task even when working with an extensible framework such as Eclipse. A new IBM-guided effort, the IMP framework, relieves the IDE developer from a significant portion of the required work by providing various abstractions for this. For embedded languages, such as embedded regular expressions, SQL queries, or code generation templates, its LALR parser generator falls short, however. Scannerless parsing with SGLR enables concise, modular definition of such languages. In this paper, we present an integration of SGLR into IMP, demonstrating that a scannerless parser can be successfully integrated into an IDE. Given an SDF syntax definition, the sdf2imp tool automatically generates an editor plugin based on the IMP API, complete with syntax checking, syntax highlighting, outline view, and code folding. Using declarative domain-specific languages, these services can be customized, and using the IMP metatooling framework it can be extended with other features. " links: successor: "https://researchr.org/publication/KatsVisser2010" "spoofax homepage": "http://strategoxt.org/Spoofax" "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-006.pdf" tags: - "rule-based" - "Eclipse" - "syntax definition" - "completeness" - "SDF" - "SQL" - "C++" - "code generation" - "abstraction" - "Spoofax" - "Meta-Environment" - "parsing" - "scannerless parsing" - "extensible language" - "ASF+SDF" - "SGLR" - "query language" - "domain-specific language" researchr: "https://researchr.org/publication/KatsKV08" cites: 0 citedby: 1 booktitle: "Proceedings of the Eight Workshop on Language Descriptions, Tools, and Applications" editor: - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" volume: "238" number: "5" series: "Electronic Notes in Theoretical Computer Science " publisher: "Elsevier" kind: "inproceedings" key: "KatsKV08" - title: "An annotation language for optimizing software libraries" author: - name: "Samuel Z. Guyer" link: "https://researchr.org/alias/samuel-z.-guyer" - name: "Calvin Lin" link: "https://researchr.org/alias/calvin-lin" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331970" links: doi: "http://doi.acm.org/10.1145/331960.331970" tags: - "optimization" - "DSL" researchr: "https://researchr.org/publication/GuyerL99" cites: 0 citedby: 1 pages: "39-52" booktitle: "DSL" kind: "inproceedings" key: "GuyerL99" - title: "Providing rapid feedback in generated modular language environments: adding error recovery to scannerless generalized-LR parsing" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" - name: "Emma Nilsson-Nyman" link: "http://www.cs.lth.se/home/Emma.Nilsson_Nyman/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://doi.acm.org/10.1145/1640089.1640122" abstract: "Integrated development environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language. A heavy burden lies on developers of new languages to provide adequate IDE support. Code generation techniques provide a viable, efficient approach to semi-automatically produce IDE plugins. Key components for the realization of plugins are the language's grammar and parser. For embedded languages and language extensions, constituent IDE plugin modules and their grammars can be combined. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can parse language embeddings and extensions composed from separate grammar modules. To apply this algorithm in an interactive environment, this paper introduces a novel error recovery mechanism, which allows it to be used with files with syntax errors -- common in interactive editing. Error recovery is vital for providing rapid feedback in case of syntax errors, as most IDE services depend on the parser -- from syntax highlighting to semantic analysis and cross-referencing. We base our approach on the principles of island grammars, and derive permissive grammars with error recovery productions from normal SDF grammars. To cope with the added complexity of these grammars, we adapt the parser to support backtracking. We evaluate the recovery quality and performance of our approach using a set of composed languages, based on Java and Stratego. " links: doi: "http://doi.acm.org/10.1145/1640089.1640122" successor: "https://researchr.org/publication/JongeKVS12" "technical report (pdf)": "http://www.lclnet.nl/publications/error-recovery.pdf" tags: - "parsing algorithm" - "semantics" - "rule-based" - "Java" - "SDF" - "composition" - "analysis" - "principles" - "C++" - "code generation" - "context-aware" - "Meta-Environment" - "parsing" - "scannerless parsing" - "systematic-approach" - "island grammars" - "ASF+SDF" - "grammar" - "Stratego" researchr: "https://researchr.org/publication/KatsJNV09" cites: 0 citedby: 1 pages: "445-464" booktitle: "Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA" editor: - name: "Shail Arora" link: "https://researchr.org/alias/shail-arora" - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" publisher: "ACM" isbn: "978-1-60558-766-0" kind: "inproceedings" key: "KatsJNV09" - title: "Quasiquotation in Lisp" author: - name: "Alan Bawden" link: "https://researchr.org/alias/alan-bawden" year: "1999" researchr: "https://researchr.org/publication/Bawden99" cites: 0 citedby: 1 pages: "4-12" booktitle: "PEPM" kind: "inproceedings" key: "Bawden99" - title: "Jargons for domain engineering" author: - name: "Lloyd H. Nakatani" link: "https://researchr.org/alias/lloyd-h.-nakatani" - name: "Mark A. Ardis" link: "https://researchr.org/alias/mark-a.-ardis" - name: "Robert G. Olsen" link: "https://researchr.org/alias/robert-g.-olsen" - name: "Paul M. Pontrelli" link: "https://researchr.org/alias/paul-m.-pontrelli" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331966" links: doi: "http://doi.acm.org/10.1145/331960.331966" tags: - "DSL" researchr: "https://researchr.org/publication/NakataniAOP99" cites: 0 citedby: 1 pages: "15-24" booktitle: "DSL" kind: "inproceedings" key: "NakataniAOP99" - title: "Modular Syntax Demands Verification" author: - name: "Sylvain Schmitz" link: "https://researchr.org/alias/sylvain-schmitz" year: "2006" month: "oct" links: "url": "http://www.lsv.ens-cachan.fr/Publis/PAPERS/PDF/schmitz-RR0632.pdf" researchr: "https://researchr.org/publication/Schmitz06-0" cites: 0 citedby: 0 institution: "Laboratoire {I3S}, Universit{\\'e} de Nice-Sophia Antipolis, France" number: "I3S/RR-2006-32-FR" kind: "techreport" key: "Schmitz06-0" - title: "Object Role Modelling and XML-Schema" author: - name: "Linda Bird" link: "https://researchr.org/alias/linda-bird" - name: "Andrew Goodchild" link: "https://researchr.org/alias/andrew-goodchild" - name: "Terry A. Halpin" link: "http://www.orm.net/halpin.html" year: "2000" doi: "http://link.springer.de/link/service/series/0558/bibs/1920/19200309.htm" abstract: "XML is increasingly becoming the preferred method of encoding structured data for exchange over the Internet. XML-Schema, which is an emerging text-based schema definition language, promises to become the most popular method for describing these XML-documents. While text-based languages, such as XML-Schema, offer great advantages for data interchange on the Internet, graphical modelling languages are widely accepted as a more visually effective means of specifying and communicating data requirements for a human audience. With this in mind, this paper investigates the use of Object Role Modelling (ORM), a graphical, conceptual modelling technique, as a means for designing XML-Schemas. The primary benefit of using ORM is that it is much easier to get the model ‘correct’ by designing it in ORM first, rather than in XML. To facilitate this process we describe an algorithm that enables an XML-Schema file to be automatically generated from an ORM conceptual data model. Our approach aims to reduce data redundancy and increase the connectivity of the resulting XML instances. " links: doi: "http://link.springer.de/link/service/series/0558/bibs/1920/19200309.htm" tags: - "rule-based" - "data-flow language" - "redundancy" - "meta-model" - "XML" - "modeling language" - "XML Schema" - "modeling" - "language modeling" - "data-flow" - "object-role modeling" - "Meta-Environment" - "process modeling" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/BirdGH00" cites: 0 citedby: 0 pages: "309-322" booktitle: "Conceptual Modeling - ER 2000, 19th International Conference on Conceptual Modeling, Salt Lake City, Utah, USA, October 9-12, 2000, Proceedings" editor: - name: "Alberto H. F. Laender" link: "https://researchr.org/alias/alberto-h.-f.-laender" - name: "Stephen W. Liddle" link: "https://researchr.org/alias/stephen-w.-liddle" - name: "Veda C. Storey" link: "https://researchr.org/alias/veda-c.-storey" volume: "1920" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41072-4" kind: "inproceedings" key: "BirdGH00" - title: "Notable design patterns for domain-specific languages" author: - name: "Diomidis Spinellis" link: "http://www.dmst.aueb.gr/dds" year: "2001" doi: "http://dx.doi.org/10.1016/S0164-1212(00)00089-3" links: doi: "http://dx.doi.org/10.1016/S0164-1212(00)00089-3" tags: - "DSL engineering" - "pattern language" - "dsl examples" - "language engineering" - "language design" - "DSL" - "design" - "domain-specific language" researchr: "https://researchr.org/publication/Spinellis01%3A0" cites: 0 citedby: 1 journal: "Journal of Systems and Software" volume: "56" number: "1" pages: "91-99" kind: "article" key: "Spinellis01:0" - title: "Grammar Engineering Support for Precedence Rule Recovery and Compatibility Checking" author: - name: "Eric Bouwers" link: "http://www.st.ewi.tudelft.nl/~bouwers/main/" - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.046" abstract: "A wide range of parser generators are used to generate parsers for programming languages. The grammar formalisms that come with parser generators provide different approaches for defining operator precedence. Some generators (e.g. YACC) support precedence declarations, others require the grammar to be unambiguous, thus encoding the precedence rules. Even if the grammar formalism provides precedence rules, a particular grammar might not use it. The result is grammar variants implementing the same language. For the C language, the GNU Compiler uses YACC with precedence rules, the C-Transformers uses SDF without priorities, while the SDF library does use priorities. For PHP, Zend uses YACC with precedence rules, whereas PHP-front uses SDF with priority and associativity declarations. The variance between grammars raises the question if the precedence rules of one grammar are compatible with those of another. This is usually not obvious, since some languages have complex precedence rules. Also, for some parser generators the semantics of precedence rules is defined operationally, which makes it hard to reason about their effect on the defined language. We present a method and tool for comparing the precedence rules of different grammars and parser generators. Although it is undecidable whether two grammars define the same language, this tool provides support for comparing and recovering precedence rules, which is especially useful for reliable migration of a grammar from one grammar formalism to another. We evaluate our method by the application to non-trivial mainstream programming languages, such as PHP and C." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.046" tags: - "programming languages" - "semantics" - "rule-based" - "syntax definition" - "YACC" - "precedence rule" - "SDF" - "Stratego/XT" - "language engineering" - "grammar engineering" - "PHP" - "rules" - "C++" - "migration" - "compiler" - "programming" - "operational semantics" - "priority" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "grammar" - "Stratego" researchr: "https://researchr.org/publication/BouwersBV08" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "203" number: "2" pages: "85-101" kind: "article" key: "BouwersBV08" - title: "DSL implementation using staging and monads" author: - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Emir Pasalic" link: "https://researchr.org/alias/emir-pasalic" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331975" links: doi: "http://doi.acm.org/10.1145/331960.331975" tags: - "DSL" researchr: "https://researchr.org/publication/SheardBP99" cites: 0 citedby: 1 pages: "81-94" booktitle: "DSL" kind: "inproceedings" key: "SheardBP99" - title: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" year: "1997" tags: - "DSL" - "domain-specific language" researchr: "https://researchr.org/publication/dsl%3A1997" cites: 0 citedby: 0 booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" conference: "DSL" publisher: "USENIX" kind: "proceedings" key: "dsl:1997" - title: "WebDSL: A Case Study in Domain-Specific Language Engineering" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_7" abstract: " The goal of domain-specific languages (DSLs) is to increase the productivity of software engineers by abstracting from low-level boil- erplate code. Introduction of DSLs in the software development process requires a smooth workflow for the production of DSLs themselves. This requires technology for designing and implementing DSLs, but also a methodology for using that technology. That is, a collection of guidelines, design patterns, and reusable DSL components that show developers how to tackle common language design and implementation issues. This paper presents a case study in domain-specific language engineering. It reports on a pro ject in which the author designed and built WebDSL, a DSL for web applications with a rich data model, using several DSLs for DSL engineering: SDF for syntax definition and Stratego/XT for code gener- ation. The paper follows the stages in the development of the DSL. The contributions of the paper are three-fold. (1) A tutorial in the application of the specific SDF and Stratego/XT technology for building DSLs. (2) A description of an incremental DSL development process. (3) A domain- specific language for web-applications with rich data models. The paper concludes with a survey of related approaches. " links: doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_7" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-023.pdf" "webdsl": "http://webdsl.org" "stratego/xt": "http://strategoxt.org" tags: - "WebDSL" - "reusable components" - "DSL engineering" - "web application development" - "data-flow language" - "pattern language" - "case study" - "software components" - "SDF" - "meta-model" - "abstract syntax" - "modeling language" - "Stratego/XT" - "language engineering" - "software language engineering" - "language modeling" - "software component" - "web engineering" - "language design" - "reuse" - "model-driven development" - "data-flow" - "survey" - "software engineering" - "model-driven engineering" - "web applications" - "DSL" - "Meta-Environment" - "incremental" - "design" - "process modeling" - "systematic-approach" - "ASF+SDF" - "language" - "Stratego" - "domain-specific language" researchr: "https://researchr.org/publication/Visser07" cites: 0 citedby: 9 pages: "291-373" booktitle: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "5235" series: "Lecture Notes in Computer Science" address: "Braga, Portugal" publisher: "Springer" isbn: "978-3-540-88642-6" kind: "inproceedings" key: "Visser07" - title: "ASTLOG: A Language for Examining Abstract Syntax Trees" author: - name: "Roger F. Crew" link: "https://researchr.org/alias/roger-f.-crew" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/crew.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/crew.html" tags: - "abstract syntax" - "DSL" researchr: "https://researchr.org/publication/Crew97" cites: 0 citedby: 1 booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "Crew97" - title: "What Can We Do about the Unnecessary Diversity of Notation for Syntactic Definitions?" author: - name: "Niklaus Wirth" link: "https://researchr.org/alias/niklaus-wirth" year: "1977" doi: "http://doi.acm.org/10.1145/359863.359883" abstract: "The population of programming languages is steadily growing, and there is no end of this growth in sight. Many language definitions appear in journals, many are found in technical reports, and perhaps an even greater number remains confined to proprietory circles. After frequent exposure to these definitions, one cannot fail to notice the lack of “common denominators.” The only widely accepted fact is that the language structure is defined by a syntax. But even notation for syntactic description eludes any commonly agreed standard form, although the underlying ancestor is invariably the Backus-Naur Form of the Algol 60 report. As variations are often only slight, they become annoying for their very lack of an apparent motivation." links: doi: "http://doi.acm.org/10.1145/359863.359883" tags: - "programming languages" - "syntax definition" - "programming" researchr: "https://researchr.org/publication/Wirth77a%3A0" cites: 0 citedby: 1 journal: "Communications of the ACM" volume: "20" number: "11" pages: "822-823" kind: "article" key: "Wirth77a:0" - title: "Generating LR syntax error messages from examples" author: - name: "Clinton L. Jeffery" link: "https://researchr.org/alias/clinton-l.-jeffery" year: "2003" doi: "http://doi.acm.org/10.1145/937563.937566" links: doi: "http://doi.acm.org/10.1145/937563.937566" researchr: "https://researchr.org/publication/Jeffery03" cites: 0 citedby: 1 journal: "ACM Transactions on Programming Languages and Systems" volume: "25" number: "5" pages: "631-640" kind: "article" key: "Jeffery03" - title: "Composing Tree Attributions" author: - name: "John Boyland" link: "https://researchr.org/alias/john-boyland" - name: "Susan L. Graham" link: "https://researchr.org/alias/susan-l.-graham" year: "1994" researchr: "https://researchr.org/publication/BoylandG94" cites: 0 citedby: 1 pages: "375-388" booktitle: "Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages" kind: "inproceedings" key: "BoylandG94" - title: "Teapot: A Domain-Specific Language for Writing Cache Coherence Protocols" author: - name: "Satish Chandra" link: "https://researchr.org/alias/satish-chandra" - name: "Brad Richards" link: "https://researchr.org/alias/brad-richards" - name: "James R. Larus" link: "https://researchr.org/alias/james-r.-larus" year: "1999" doi: "http://computer.org/tse/ts1999/e0317abs.htm" links: doi: "http://computer.org/tse/ts1999/e0317abs.htm" tags: - "caching" - "protocol" - "writing" - "domain-specific language" researchr: "https://researchr.org/publication/ChandraRL99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "317-333" kind: "article" key: "ChandraRL99" - title: "Faceted Knowledge Representation" author: - name: "Uta Priss" link: "http://www.upriss.org.uk/top/research.html" year: "2000" doi: "http://www.ep.liu.se/ej/etai/2000/002/" links: doi: "http://www.ep.liu.se/ej/etai/2000/002/" tags: - "knowlege representation" - "faceted knowledge representation" - "facets" researchr: "https://researchr.org/publication/Priss00" cites: 0 citedby: 0 journal: "Electron. Trans. Artif. Intell." volume: "4" number: "C" pages: "21-33" kind: "article" key: "Priss00" - title: "A practical method for constructing efficient LALR(K) parsers with automatic error recovery" author: - name: "Philippe Charles" link: "https://researchr.org/alias/philippe-charles" year: "1991" tags: - "parsing" researchr: "https://researchr.org/publication/charles91lpg" cites: 0 citedby: 1 school: "New York University" kind: "phdthesis" key: "charles91lpg" - title: "Generation Gap" author: - name: "J. Vlissidis" link: "https://researchr.org/alias/j.-vlissidis" year: "1996" researchr: "https://researchr.org/publication/Vlissidis1996" cites: 0 citedby: 0 howpublished: "C++ Report" kind: "misc" key: "Vlissidis1996" - title: "Grammar-driven generation of domain-specific language debuggers" author: - name: "Hui Wu" link: "https://researchr.org/alias/hui-wu" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" year: "2008" doi: "http://dx.doi.org/10.1002/spe.863" links: doi: "http://dx.doi.org/10.1002/spe.863" tags: - "debugging" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/WuGM08" cites: 0 citedby: 1 journal: "Software: Practice and Experience" volume: "38" number: "10" pages: "1073-1103" kind: "article" key: "WuGM08" - title: "MetaML and multi-stage programming with explicit annotations" author: - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" year: "2000" doi: "http://dx.doi.org/10.1016/S0304-3975(00)00053-0" abstract: "Abstract We introduce MetaML, a practically motivated, statically typed multi-stage programming language. MetaML is a “real” language. We have built an implementation and used it to solve multi-stage problems. MetaML allows the programmer to construct, combine, and execute code fragments in a type-safe manner. Code fragments can contain free variables, but they obey the static-scoping principle. MetaML performs type-checking for all stages once and for all before the execution of the first stage. Certain anomalies with our first MetaML implementation led us to formalize an illustrative subset of the MetaML implementation. We present both a big-step semantics and type system for this subset, and prove the type system's soundness with respect to a big-step semantics. From a software engineering point of view, this means that generators written in the MetaML subset never generate unsafe programs. A type system and semantics for full MetaML is still ongoing work. We argue that multi-stage languages are useful as programming languages in their own right, that they supply a sound basis for high-level program generation technology, and that they should support features that make it possible for programmers to write staged computations without significantly changing their normal programming style. To illustrate this we provide a simple three-stage example elaborating a number of practical issues. The design of MetaML was based on two main principles that we identified as fundamental for high-level program generation, namely, cross-stage persistence and cross-stage safety. We present these principles, explain the technical problems they give rise to, and how we address with these problems in our implementation." links: doi: "http://dx.doi.org/10.1016/S0304-3975(00)00053-0" tags: - "programming languages" - "semantics" - "rule-based" - "type soundness" - "language engineering" - "software language engineering" - "language design" - "principles" - "type system" - "software engineering" - "code generation" - "type checking" - "programming" - "staged computation" - "design" researchr: "https://researchr.org/publication/TahaS00" cites: 0 citedby: 1 journal: "Theoretical Computer Science" volume: "248" number: "1-2" pages: "211-242" kind: "article" key: "TahaS00" - title: "The Zephyr Abstract Syntax Description Language" author: - name: "Daniel C. Wang" link: "https://researchr.org/alias/daniel-c.-wang" - name: "Andrew W. Appel" link: "http://www.cs.princeton.edu/~appel/" - name: "Jeffrey L. Korn" link: "https://researchr.org/alias/jeffrey-l.-korn" - name: "Christopher S. Serra" link: "https://researchr.org/alias/christopher-s.-serra" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/wang.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/wang.html" tags: - "abstract syntax" - "C++" - "DSL" researchr: "https://researchr.org/publication/WangAKS97" cites: 0 citedby: 1 pages: "213-228" booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "WangAKS97" - title: "An Embedded Modeling Language Approach to Interactive 3D and Multimedia Animation" author: - name: "Conal Elliott" link: "http://conal.net/" year: "1999" doi: "http://computer.org/tse/ts1999/e0291abs.htm" links: doi: "http://computer.org/tse/ts1999/e0291abs.htm" tags: - "modeling language" - "modeling" - "language modeling" - "multimedia" - "systematic-approach" researchr: "https://researchr.org/publication/Elliott99%3A0" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "291-308" kind: "article" key: "Elliott99:0" - title: "Typed generic traversal with term rewriting strategies" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" year: "2003" doi: "http://dx.doi.org/10.1016/S1567-8326(02)00028-0" links: doi: "http://dx.doi.org/10.1016/S1567-8326(02)00028-0" tags: - "traversal" - "term rewriting" - "graph-rewriting" - "rewriting" - "rewriting strategies" researchr: "https://researchr.org/publication/Lammel03" cites: 0 citedby: 1 journal: "Journal of Logic and Algebraic Programming" volume: "54" number: "1-2" pages: "1-64" kind: "article" key: "Lammel03" - title: "Language factories" author: - name: "Tony Clark" link: "https://researchr.org/alias/tony-clark" - name: "Laurence Tratt" link: "http://tratt.net/laurie/" year: "2009" doi: "http://doi.acm.org/10.1145/1639950.1640062" abstract: "Programming languages are the primary mechanism by which software is created, yet most of us have access to only a few, fixed, programming languages. Any problem we wish to express must be framed in terms of the concepts the programming language provides for us, be they suitable for the problem or not. Domain Specific Languages (DSLs) suggest an appealing escape route from this fate, but since there is no real technology or theory underpinning them, new DSLs are rare. In this paper we present the Language Factories vision, which aims to bring together the theory and practice necessary to realise DSLs in a systematic way. In so doing, we hope to lower the barrier for language creation significantly, ultimately allowing software creators to use the languages most suited to them and their needs" links: doi: "http://doi.acm.org/10.1145/1639950.1640062" tags: - "programming languages" - "DSL" - "programming" - "routing" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/ClarkT09" cites: 0 citedby: 0 pages: "949-955" booktitle: "Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA" editor: - name: "Shail Arora" link: "https://researchr.org/alias/shail-arora" - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" publisher: "ACM" isbn: "978-1-60558-768-4" kind: "inproceedings" key: "ClarkT09" - title: "Attribute Grammar-Based Language Extensions for Java" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "Lijesh Krishnan" link: "https://researchr.org/alias/lijesh-krishnan" - name: "Derek Bodin" link: "https://researchr.org/alias/derek-bodin" - name: "August Schwerdfeger" link: "https://researchr.org/alias/august-schwerdfeger" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-73589-2_27" links: doi: "http://dx.doi.org/10.1007/978-3-540-73589-2_27" tags: - "rule-based" - "Java" - "attribute grammars" - "ableJ" - "grammar" researchr: "https://researchr.org/publication/WykKBS07" cites: 0 citedby: 5 pages: "575-599" booktitle: "ECOOP 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30 - August 3, 2007, Proceedings" editor: - name: "Erik Ernst" link: "http://person.au.dk/eernst@cs" volume: "4609" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-73588-5" kind: "inproceedings" key: "WykKBS07" - title: "Reference Attributed Grammars" author: - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2000" abstract: "An extension to canonical attribute grammars is introduced, permitting attributes to be references to arbitrary nodes in the syntax tree, and attributes to be accessed via the reference attributes. Important practical problems such as name and type analysis for object-oriented languages can be expressed concisely in these grammars, and an optimal evaluation algorithm is available. The proposed formalism and algorithm have been implemented in an interactive language development tool." tags: - "attribute grammars" - "reference attribute grammars" - "grammar" researchr: "https://researchr.org/publication/Hedin00" cites: 0 citedby: 1 journal: "Informatica (Slovenia)" volume: "24" number: "3" pages: "301-317" kind: "article" key: "Hedin00" - title: "JDBC Checker: A Static Analysis Tool for SQL/JDBC Applications" author: - name: "Carl Gould" link: "https://researchr.org/alias/carl-gould" - name: "Zhendong Su" link: "https://researchr.org/alias/zhendong-su" - name: "Premkumar T. Devanbu" link: "https://researchr.org/alias/premkumar-t.-devanbu" year: "2004" doi: "http://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630697.pdf" links: doi: "http://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630697.pdf" tags: - "SQL" - "analysis" - "static analysis" researchr: "https://researchr.org/publication/GouldSD04a" cites: 0 citedby: 1 pages: "697-698" booktitle: "26th International Conference on Software Engineering (ICSE 2004), 23-28 May 2004, Edinburgh, United Kingdom" publisher: "IEEE Computer Society" isbn: "0-7695-2163-0" kind: "inproceedings" key: "GouldSD04a" - title: "Managing Domain-Specific, Product-Line Development" author: - name: "Randall R. Macala" link: "https://researchr.org/alias/randall-r.-macala" - name: "Lynn D. Stuckey Jr." link: "https://researchr.org/alias/lynn-d.-stuckey-jr." - name: "David C. Gross" link: "https://researchr.org/alias/david-c.-gross" year: "1996" doi: "http://www.computer.org:80/software/so1996/s3057abs.htm" links: doi: "http://www.computer.org:80/software/so1996/s3057abs.htm" tags: - "C++" - "product line" researchr: "https://researchr.org/publication/MacalaSG96" cites: 0 citedby: 1 journal: "IEEE Software" volume: "13" number: "3" pages: "57-67" kind: "article" key: "MacalaSG96" - title: "AMNESIA: analysis and monitoring for NEutralizing SQL-injection attacks" author: - name: "William G. J. Halfond" link: "https://researchr.org/alias/william-g.-j.-halfond" - name: "Alessandro Orso" link: "https://researchr.org/alias/alessandro-orso" year: "2005" doi: "http://doi.acm.org/10.1145/1101908.1101935" links: doi: "http://doi.acm.org/10.1145/1101908.1101935" tags: - "injection attack" - "SQL" - "analysis" researchr: "https://researchr.org/publication/HalfondO05" cites: 0 citedby: 2 pages: "174-183" booktitle: "20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), November 7-11, 2005, Long Beach, CA, USA" editor: - name: "David F. Redmiles" link: "https://researchr.org/alias/david-f.-redmiles" - name: "Thomas Ellman" link: "https://researchr.org/alias/thomas-ellman" - name: "Andrea Zisman" link: "https://researchr.org/alias/andrea-zisman" publisher: "ACM" kind: "inproceedings" key: "HalfondO05" - title: "Learning in the Limit in a Growing Language" author: - name: "Ranan B. Banerji" link: "https://researchr.org/alias/ranan-b.-banerji" year: "1987" researchr: "https://researchr.org/publication/Banerji87%3A0" cites: 0 citedby: 0 pages: "299-308" booktitle: "ISMIS" kind: "inproceedings" key: "Banerji87:0" - title: "A Systematic Approach to Derive the Scope of Software Product Lines" author: - name: "Jean-Marc DeBaud" link: "https://researchr.org/alias/jean-marc-debaud" - name: "Klaus Schmid" link: "http://www.uni-hildesheim.de/de/schmid.htm" year: "1999" doi: "http://portal.acm.org/citation.cfm?id=302405.302409" links: doi: "http://portal.acm.org/citation.cfm?id=302405.302409" tags: - "software product lines" - "systematic-approach" researchr: "https://researchr.org/publication/DeBaudS99" cites: 0 citedby: 1 pages: "34-43" booktitle: "ICSE" kind: "inproceedings" key: "DeBaudS99" - title: "A Coroutine Approach to Parsing" author: - name: "Hanan Samet" link: "http://www.cs.umd.edu/~hjs/" year: "1980" doi: "http://doi.acm.org/10.1145/357103.357106" abstract: "A method is presented for parsing syntactic constructs that are permitted to appear independently anywhere in a program. Some examples include comments, macros, and constructs for conditional compilation. Each such construct is defined by its own grammar and parsed by a separate coroutine. The coroutine model of parsing allows the program text to be parsed in one pass despite the syntactic inconsistencies among the program text and the additional constructs. The usefulness of the model is demonstrated by showing how a production language parsing method is extended to handle multiple syntax specifications. The implementation of conditional compilation by carrying along two parses in a coroutine manner is also given. The utility of the model is further demonstrated by showing its adaptation to a recursive descent parser. " links: doi: "http://doi.acm.org/10.1145/357103.357106" tags: - "programming languages" - "meta programming" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "macros" - "Meta-Environment" - "parsing" - "systematic-approach" - "grammar" researchr: "https://researchr.org/publication/Samet-TOPLAS-1980" cites: 16 citedby: 0 journal: "ACM Transactions on Programming Languages and Systems" volume: "2" number: "3" pages: "290-306" kind: "article" key: "Samet-TOPLAS-1980" - title: "Domain specific language implementation via compile-time meta-programming" author: - name: "Laurence Tratt" link: "http://tratt.net/laurie/" year: "2008" doi: "http://doi.acm.org/10.1145/1391956.1391958" abstract: "Domain specific languages (DSLs) are mini-languages that are increasingly seen as being a valuable tool for software developers and non-developers alike. DSLs must currently be created in an ad-hoc fashion, often leading to high development costs and implementations of variable quality. In this article, I show how expressive DSLs can be hygienically embedded in the Converge programming language using its compile-time meta-programming facility, the concept of DSL blocks, and specialised error reporting techniques. By making use of pre-existing facilities, and following a simple methodology, DSL implementation costs can be significantly reduced whilst leading to higher quality DSL implementations." links: doi: "http://doi.acm.org/10.1145/1391956.1391958" tags: - "programming languages" - "meta programming" - "meta-model" - "embedded software" - "model-driven development" - "compiler" - "DSL" - "programming" - "Meta-Environment" - "extensible language" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Tratt08-TOPLAS" cites: 0 citedby: 1 journal: "ACM Transactions on Programming Languages and Systems" volume: "30" number: "6" kind: "article" key: "Tratt08-TOPLAS" - title: "Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation" author: - name: "Scott Thibault" link: "https://researchr.org/alias/scott-thibault" - name: "Renaud Marlet" link: "https://researchr.org/alias/renaud-marlet" - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" year: "1999" doi: "http://computer.org/tse/ts1999/e0363abs.htm" links: doi: "http://computer.org/tse/ts1999/e0363abs.htm" tags: - "language design" - "design" - "domain-specific language" researchr: "https://researchr.org/publication/ThibaultMC99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "363-377" kind: "article" key: "ThibaultMC99" - title: "A Transformation-Based Optimiser for Haskell" author: - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" - name: "André L. M. Santos" link: "http://www.cin.ufpe.br/~alms/" year: "1998" doi: "http://dx.doi.org/10.1016/S0167-6423(97)00029-4" abstract: "Many compilers do some of their work by means of correctness-preserving, and hopefully performance-improving, program transformations. The Glasgow Haskell Compiler (GHC) takes this idea of “compilation by transformation” as its war-cry, trying to express as much as possible of the compilation process in the form of program transformations. This paper reports on our practical experience of the transformational approach to compilation, in the context of a substantial compiler." links: doi: "http://dx.doi.org/10.1016/S0167-6423(97)00029-4" tags: - "rule-based" - "Haskell" - "compiler" - "context-aware" - "compilation" - "systematic-approach" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/JonesSantos1998" cites: 53 citedby: 1 journal: "Science of Computer Programming" volume: "32" number: "1-3" pages: "3-47" kind: "article" key: "JonesSantos1998" - title: "The Reuse of Grammars with Embedded Semantic Actions" author: - name: "Terence John Parr" link: "http://www.cs.usfca.edu/~parrt/" year: "2008" doi: "http://dx.doi.org/10.1109/ICPC.2008.36" links: doi: "http://dx.doi.org/10.1109/ICPC.2008.36" tags: - "syntax definition" - "reuse" - "ANTLR" - "grammar" researchr: "https://researchr.org/publication/Parr08" cites: 0 citedby: 0 pages: "5-10" booktitle: "The 16th IEEE International Conference on Program Comprehension, ICPC 2008, Amsterdam, The Netherlands, June 10-13, 2008" editor: - name: "René L. Krikhaar" link: "https://researchr.org/alias/ren%C3%A9-l.-krikhaar" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" publisher: "IEEE Computer Society" kind: "inproceedings" key: "Parr08" - title: "Interruptible iterators" author: - name: "Jed Liu" link: "https://researchr.org/alias/jed-liu" - name: "Aaron Kimball" link: "https://researchr.org/alias/aaron-kimball" - name: "Andrew C. Myers" link: "https://researchr.org/alias/andrew-c.-myers" year: "2006" doi: "http://doi.acm.org/10.1145/1111037.1111063" links: doi: "http://doi.acm.org/10.1145/1111037.1111063" tags: - "C++" researchr: "https://researchr.org/publication/LiuKM06" cites: 0 citedby: 0 pages: "283-294" booktitle: "Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006, Charleston, South Carolina, USA, January 11-13, 2006" editor: - name: "J. Gregory Morrisett" link: "https://researchr.org/alias/j.-gregory-morrisett" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" publisher: "ACM" isbn: "1-59593-027-2" kind: "inproceedings" key: "LiuKM06" - title: "Composing Domain-Specific Languages for Wide-Scope Software Engineering Applications" author: - name: "Jacky Estublier" link: "https://researchr.org/alias/jacky-estublier" - name: "Germán Vega" link: "https://researchr.org/alias/germ%C3%A1n-vega" - name: "Anca Daniela Ionita" link: "https://researchr.org/alias/anca-daniela-ionita" year: "2005" doi: "http://dx.doi.org/10.1007/11557432_6" links: doi: "http://dx.doi.org/10.1007/11557432_6" tags: - "language engineering" - "software language engineering" - "UML" - "software engineering" - "domain-specific language" researchr: "https://researchr.org/publication/EstublierVI05" cites: 0 citedby: 0 pages: "69-83" booktitle: "Model Driven Engineering Languages and Systems, 8th International Conference, MoDELS 2005, Montego Bay, Jamaica, October 2-7, 2005, Proceedings" editor: - name: "Lionel C. Briand" link: "https://researchr.org/alias/lionel-c.-briand" - name: "Clay Williams" link: "https://researchr.org/alias/clay-williams" volume: "3713" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-29010-9" kind: "inproceedings" key: "EstublierVI05" - title: "Generating AspectJ Programs with Meta-AspectJ" author: - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3286&spage=1" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3286&spage=1" tags: - "AspectJ" - "meta programming" - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/ZookHS04" cites: 0 citedby: 3 pages: "1-18" booktitle: "Generative Programming and Component Engineering: Third International Conference, GPCE 2004, Vancouver, Canada, October 24-28, 2004. Proceedings" editor: - name: "Gabor Karsai" link: "http://w3.isis.vanderbilt.edu/gabor/" - name: "Eelco Visser" link: "http://eelcovisser.org" volume: "3286" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-23580-9" kind: "inproceedings" key: "ZookHS04" - title: "Component Software - Beyond Object-Oriented Programming" author: - name: "Szyperski" link: "https://researchr.org/alias/szyperski" - name: "Clemens Szyperski" link: "https://researchr.org/alias/clemens-szyperski" year: "1998" tags: - "object-oriented programming" - "meta programming" - "software components" - "software component" - "programming" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/SzyperskiSzyperski1998" cites: 0 citedby: 0 number: "ISBN 0-201-17888-5 " publisher: "Addison-Wesley" kind: "book" key: "SzyperskiSzyperski1998" - title: "A Meta-Environment for Generating Programming Environments" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1993" doi: "http://doi.acm.org/10.1145/151257.151260" abstract: "Over the last decade, considerable progress has been made in solving the problems of automatic generation of programming/development environments, given a formal definition of some programming or specification language. In most cases, research has focused on the functionality and efficiency of the generated environments, and, of course, these aspects will ultimately determine the acceptance of environment generators. However, only marginal attention has been paid to the development process of formal language definitions itself. Assuming that the quality of automatically generated environments will be satisfactory within a few years, the development costs of formal language definitions will then become the next limiting factor determining ultimate success and acceptance of environment generators. In this paper we describe the design and implementation of a meta-environment (a development environment for formal language definitions) based on the formalism ASF + SDF. This meta-environment is currently being implemented as part of the Centaur system and is, at least partly, obtained by applying environment generation techniques to the language definition formalism itself. A central problem is providing fully interactive editing of modular language definitions such that modifications made to the language definition during editing can be translated immediately to modifications in the programming environment generated from the original language definition. Therefore, some of the issues addressed are the treatment of formalisms with user-definable syntax and incremental program generation techniques. " links: doi: "http://doi.acm.org/10.1145/151257.151260" tags: - "programming languages" - "rule-based" - "translation" - "syntax definition" - "meta programming" - "SDF" - "meta-model" - "functional programming" - "design research" - "language design" - "model-driven development" - "programming" - "Meta-Environment" - "incremental" - "design" - "ASF+SDF" - "meta-objects" researchr: "https://researchr.org/publication/Klint93" cites: 33 citedby: 40 journal: "ACM Transactions on Software Engineering Methodology" volume: "2" number: "2" pages: "176-201" kind: "article" key: "Klint93" - title: "A nanopass infrastructure for compiler education" author: - name: "Dipanwita Sarkar" link: "https://researchr.org/alias/dipanwita-sarkar" - name: "Oscar Waddell" link: "https://researchr.org/alias/oscar-waddell" - name: "R. Kent Dybvig" link: "https://researchr.org/alias/r.-kent-dybvig" year: "2004" doi: "http://doi.acm.org/10.1145/1016850.1016878" links: doi: "http://doi.acm.org/10.1145/1016850.1016878" tags: - "compiler" researchr: "https://researchr.org/publication/SarkarWD04" cites: 0 citedby: 1 pages: "201-212" booktitle: "Proceedings of the Ninth ACM SIGPLAN International Conference on Functional Programming, ICFP 2004, Snow Bird, UT, USA, September 19-21, 2004" editor: - name: "Chris Okasaki" link: "https://researchr.org/alias/chris-okasaki" - name: "Kathleen Fisher" link: "http://www.research.att.com/people/Fisher_Kathleen_S" publisher: "ACM" isbn: "1-58113-905-5" kind: "inproceedings" key: "SarkarWD04" - title: "A preliminary study on various implementation approaches of domain-specific language" author: - name: "Toma{\\v{z}} Kosar" link: "https://researchr.org/alias/toma%7B%5Ebv%7Bz%7D%7D-kosar" - name: "Pablo E. Mart{\\'{\\i}}nez L{\\'o}pez" link: "https://researchr.org/alias/pablo-e.-mart%7B%5Eb%27%7B%5Ebi%7D%7Dnez-l%7B%5Eb%27o%7Dpez" - name: "Pablo A. Barrientos" link: "https://researchr.org/alias/pablo-a.-barrientos" - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" year: "2008" tags: - "DSL engineering" - "DSL implementation approach" - "dsl examples" - "language engineering" - "DSL" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/Kosar2008" cites: 0 citedby: 0 journal: "Information and Software Technology" volume: "50" number: "5" kind: "article" key: "Kosar2008" - title: "MontiCore: a framework for the development of textual domain specific languages" author: - name: "Hans Gr{\\\"o}nniger" link: "https://researchr.org/alias/hans-gr%7B%5Eb%22o%7Dnniger" - name: "Holger Krahn" link: "https://researchr.org/alias/holger-krahn" - name: "Bernhard Rumpe" link: "http://www.se-rwth.de/~rumpe/" - name: "Martin Schindler" link: "https://researchr.org/alias/martin-schindler" - name: "Steven V{\\\"o}lkel" link: "https://researchr.org/alias/steven-v%7B%5Eb%22o%7Dlkel" year: "2008" doi: "http://doi.acm.org/10.1145/1370175.1370190" abstract: "In this paper we demonstrate a framework for the efficient development of textual domain specific languages and supporting tools. We use a redundance-free and compact definition of a readable concrete syntax and a comprehensible abstract syntax as both representations significantly overlap in their structure. To further improve the usability of the abstract syntax, this definition format integrates additional concepts like associations and inheritance into the well-understood grammar-based approach. Modularity concepts like language inheritance and embedding are used to simplify the development of languages based on already existing ones. In addition, the generation of editors and a template approach for code generation is explained." links: doi: "http://doi.acm.org/10.1145/1370175.1370190" tags: - "rule-based" - "syntax definition" - "abstract syntax" - "code generation" - "systematic-approach" - "concrete syntax" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/GronnigerKRSV08" cites: 9 citedby: 0 pages: "925-926" booktitle: "30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany, May 10-18, 2008, Companion Volume" editor: - name: "Wilhelm Sch{\\\"a}fer" link: "https://researchr.org/alias/wilhelm-sch%7B%5Eb%22a%7Dfer" - name: "Matthew B. Dwyer" link: "https://researchr.org/alias/matthew-b.-dwyer" - name: "Volker Gruhn" link: "https://researchr.org/alias/volker-gruhn" address: "Leipzig, Germany" publisher: "ACM" isbn: "978-1-60558-079-1" kind: "inproceedings" key: "GronnigerKRSV08" - title: "Generative Programming: Methods, Techniques and Applications" author: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: " U. Eisenecker." link: "https://researchr.org/alias/u.-eisenecker." year: "1999" tags: - "generative programming" - "programming" researchr: "https://researchr.org/publication/CzarneckiEisenecker1999" cites: 0 citedby: 1 publisher: "Addison- Wesley" kind: "book" key: "CzarneckiEisenecker1999" - title: "IMP: a meta-tooling platform for creating language-specific ides in eclipse" author: - name: "Philippe Charles" link: "https://researchr.org/alias/philippe-charles" - name: "Robert M. Fuhrer" link: "https://researchr.org/alias/robert-m.-fuhrer" - name: "Stanley M. Sutton Jr." link: "https://researchr.org/alias/stanley-m.-sutton-jr." year: "2007" doi: "http://doi.acm.org/10.1145/1321631.1321715" abstract: "Programming language design remains a vital field, with interest in languages targeting concurrency, scripting, and aspects, as well as in domain-specific languages. Full-featured integrated development environments (IDEs) have become critical to the adoption of new languages. A key factor in the success of these IDEs is the provision of services specifically tailored to the language. However, modern IDE frame-works are large and complex, and the cost of constructing a language-specific IDE from scratch remains prohibitive. IMP is an IDE meta-tooling platform intended to relieve much of the burden of IDE development in Eclipse. IMP combines a language-independent framework, generators for partial implementations of language-specific services, and support for the completion of service implementations by programming at various levels of abstraction. Unlike much of the previous work, IMP permits significant customization of IDE appearance and behavior and accommodates incremental elaboration of the IDE; it also makes significant reuse of code and assists during the IDE development process. IMP-based IDEs are in use in research projects in IBM, including within IMP itself. IMP is available as an open-source release from SourceForge.net. " links: doi: "http://doi.acm.org/10.1145/1321631.1321715" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "IMP" - "Eclipse" - "meta programming" - "meta-model" - "design research" - "language design" - "reuse" - "model-driven development" - "source-to-source" - "code completion" - "aspect oriented programming" - "DSL" - "programming" - "abstraction" - "Meta-Environment" - "incremental" - "design" - "feature-oriented programming" - "IDE" - "open-source" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/CharlesFS07" cites: 0 citedby: 1 pages: "485-488" booktitle: "22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), November 5-9, 2007, Atlanta, Georgia, USA" editor: - name: "R. E. Kurt Stirewalt" link: "https://researchr.org/alias/r.-e.-kurt-stirewalt" - name: "Alexander Egyed" link: "http://www.alexander-egyed.com/" - name: "Bernd Fischer" link: "http://www.ecs.soton.ac.uk/people/bf" publisher: "ACM" isbn: "978-1-59593-882-4 " kind: "inproceedings" key: "CharlesFS07" - title: "An Algebraic Programming Style for Numerical Software and its Optimization" author: - name: "T. B. Dinesh" link: "https://researchr.org/alias/t.-b.-dinesh" - name: "Magne Haveraaen" link: "http://www.ii.uib.no/~magne/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "1999" doi: "http://arxiv.org/abs/cs.SE/9903002" note: "informal publication" links: doi: "http://arxiv.org/abs/cs.SE/9903002" tags: - "optimization" - " algebra" - "programming" - "program optimization" researchr: "https://researchr.org/publication/cs-SE-9903002" cites: 0 citedby: 1 journal: "CoRR" volume: "cs.SE/9903002" kind: "article" key: "cs-SE-9903002" - title: "OpenJava: A Class-Based Macro System for Java" author: - name: "Michiaki Tatsubori" link: "https://researchr.org/alias/michiaki-tatsubori" - name: "Shigeru Chiba" link: "http://www.csg.is.titech.ac.jp/~chiba/" - name: "Kozo Itano" link: "https://researchr.org/alias/kozo-itano" - name: "Marc-Olivier Killijian" link: "https://researchr.org/alias/marc-olivier-killijian" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1826/18260117.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1826/18260117.htm" tags: - "macro" - "rule-based" - "Java" - "meta programming" - "meta-model" - "macros" - "Meta-Environment" - "extensible language" - "meta-objects" researchr: "https://researchr.org/publication/TatsuboriCIK99" cites: 0 citedby: 1 pages: "117-133" booktitle: "Reflection and Software Engineering, Papers from OORaSE 1999, 1st OOPSLA Workshop on Reflection and Software Engineering, Denver, CO, USA, November 1999" editor: - name: "Walter Cazzola" link: "https://researchr.org/alias/walter-cazzola" - name: "Robert J. Stroud" link: "https://researchr.org/alias/robert-j.-stroud" - name: "Francesco Tisato" link: "https://researchr.org/alias/francesco-tisato" volume: "1826" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-67761-5" kind: "inproceedings" key: "TatsuboriCIK99" - title: "Language Workbenches: The Killer-App for Domain Specific Languages?" author: - name: "Martin Fowler" link: "http://martinfowler.com/" year: "2005" doi: "http://www.martinfowler.com/articles/languageWorkbench.html" abstract: "Most new ideas in software developments are really new variations on old ideas. This article describes one of these, the growing idea of a class of tools that I call Language Workbenches - examples of which include Intentional Software, JetBrains's Meta Programming System, and Microsoft's Software Factories. These tools take an old style of development - which I call language oriented programming and use IDE tooling in a bid to make language oriented programming a viable approach. Although I'm not enough of a prognosticator to say whether they will succeed in their ambition, I do think that these tools are some of the most interesting things on the horizon of software development. Interesting enough to write this essay to try to explain, at least in outline, how they work and the main issues around their future usefulness." links: doi: "http://www.martinfowler.com/articles/languageWorkbench.html" tags: - "programming languages" - "workbench" - "object-oriented programming" - "meta programming" - "language-oriented programming" - "meta-model" - "LOP" - "model-driven development" - "programming" - "subject-oriented programming" - "language workbench" - "Meta-Environment" - "systematic-approach" - "feature-oriented programming" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Fowler2004" cites: 0 citedby: 3 kind: "misc" key: "Fowler2004" - title: "The Draco Approach to Constructing Software from Reusable Components" author: - name: "James M. Neighbors" link: "https://researchr.org/alias/james-m.-neighbors" year: "1984" tags: - "reusable components" - "Draco" - "software components" - "software component" - "reuse" - "systematic-approach" researchr: "https://researchr.org/publication/Neighbors84" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "10" number: "5" pages: "564-574" kind: "article" key: "Neighbors84" - title: "Language Oriented Programming: The Next Programming Paradigm" author: - name: "Sergey Dmitriev" link: "https://researchr.org/alias/sergey-dmitriev" year: "2004" doi: "http://www.onboard.jetbrains.com/is1/articles/04/10/lop/mps.pdf" links: doi: "http://www.onboard.jetbrains.com/is1/articles/04/10/lop/mps.pdf" tags: - "programming languages" - "object-oriented programming" - "language-oriented programming" - "LOP" - "programming paradigms" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/lopnextprogrammingparadigm" cites: 0 citedby: 1 kind: "misc" key: "lopnextprogrammingparadigm" - title: "A DSL for Explaining Probabilistic Reasoning" author: - name: "Martin Erwig" link: "http://web.engr.oregonstate.edu/~erwig/" - name: "Eric Walkingshaw" link: "https://researchr.org/alias/eric-walkingshaw" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-03034-5_16" links: doi: "http://dx.doi.org/10.1007/978-3-642-03034-5_16" tags: - "DSL" researchr: "https://researchr.org/publication/ErwigW09" cites: 0 citedby: 0 pages: "335-359" booktitle: "Domain-Specific Languages, IFIP TC 2 Working Conference, DSL 2009, Oxford, UK, July 15-17, 2009, Proceedings" editor: - name: "Walid Mohamed Taha" link: "https://researchr.org/alias/walid-mohamed-taha" volume: "5658" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-03033-8" kind: "inproceedings" key: "ErwigW09" - title: "Safe query objects: statically typed objects as remotely executable queries" author: - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Siddhartha Rai" link: "https://researchr.org/alias/siddhartha-rai" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062488" links: doi: "http://doi.acm.org/10.1145/1062455.1062488" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/CookR05" cites: 0 citedby: 1 pages: "97-106" booktitle: "27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, Missouri, USA" editor: - name: "Gruia-Catalin Roman" link: "https://researchr.org/alias/gruia-catalin-roman" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" - name: "Bashar Nuseibeh" link: "https://researchr.org/alias/bashar-nuseibeh" publisher: "ACM" kind: "inproceedings" key: "CookR05" - title: "Parser combinators in Scala" author: - name: "Adriaan Moors" link: "http://www.google.com" - name: " F. Piessens" link: "https://researchr.org/alias/f.-piessens" - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" year: "2008" month: "February" tags: - "Scala" - "parsing" researchr: "https://researchr.org/publication/MoorsPO2008" cites: 0 citedby: 1 institution: "Department of Computer Science, K.U. Leuven" kind: "techreport" key: "MoorsPO2008" - title: "Slicing spreadsheets: an integrated methodology for spreadsheet testing and debugging" author: - name: "James Reichwein" link: "https://researchr.org/alias/james-reichwein" - name: "Gregg Rothermel" link: "https://researchr.org/alias/gregg-rothermel" - name: "Margaret M. Burnett" link: "https://researchr.org/alias/margaret-m.-burnett" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331968" links: doi: "http://doi.acm.org/10.1145/331960.331968" tags: - "testing" - "slicing" - "debugging" - "DSL" researchr: "https://researchr.org/publication/ReichweinRB99" cites: 0 citedby: 1 pages: "25-38" booktitle: "DSL" kind: "inproceedings" key: "ReichweinRB99" - title: "An architecture for composing embedded domain-specific languages" author: - name: "Tom Dinkelaker" link: "https://researchr.org/alias/tom-dinkelaker" - name: "Michael Eichberg" link: "https://researchr.org/alias/michael-eichberg" - name: "Mira Mezini" link: "https://researchr.org/alias/mira-mezini" year: "2010" doi: "http://doi.acm.org/10.1145/1739230.1739237" links: doi: "http://doi.acm.org/10.1145/1739230.1739237" tags: - "architecture" - "domain-specific language" researchr: "https://researchr.org/publication/DinkelakerEM10" cites: 0 citedby: 0 pages: "49-60" booktitle: "Proceedings of the 9th International Conference on Aspect-Oriented Software Development, AOSD 2010, Rennes and Saint-Malo, France, March 15-19, 2010" editor: - name: "Jean-Marc Jézéquel" link: "https://researchr.org/alias/jean-marc-j%C3%A3%C2%A9z%C3%A3%C2%A9quel" - name: "Mario Südholt" link: "https://researchr.org/alias/mario-s%C3%A3%C2%BCdholt" publisher: "ACM" isbn: "978-1-60558-958-9" kind: "inproceedings" key: "DinkelakerEM10" - title: "Typed self-representation" author: - name: "Tillmann Rendel" link: "https://researchr.org/alias/tillmann-rendel" - name: "Klaus Ostermann" link: "http://www.informatik.uni-marburg.de/~kos/" - name: "Christian Hofer" link: "http://www.daimi.au.dk/~chmh/" year: "2009" doi: "http://doi.acm.org/10.1145/1542476.1542509" links: doi: "http://doi.acm.org/10.1145/1542476.1542509" researchr: "https://researchr.org/publication/RendelOH09" cites: 0 citedby: 0 pages: "293-303" booktitle: "Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, Dublin, Ireland, June 15-21, 2009" editor: - name: "Michael Hind" link: "https://researchr.org/alias/michael-hind" - name: "Amer Diwan" link: "https://researchr.org/alias/amer-diwan" publisher: "ACM" isbn: "978-1-60558-392-1" kind: "inproceedings" key: "RendelOH09" - title: "Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "2002" doi: "http://doi.acm.org/10.1145/505145.505148" links: doi: "http://doi.acm.org/10.1145/505145.505148" tags: - "rule-based" - "refinement" researchr: "https://researchr.org/publication/SmaragdakisB02" cites: 0 citedby: 1 journal: "ACM Transactions on Software Engineering Methodology" volume: "11" number: "2" pages: "215-255" kind: "article" key: "SmaragdakisB02" - title: "Growing a Dynamic Aspect Language in Ruby" author: - name: "Michael Achenbach" link: "http://www.daimi.au.dk/~ma/" - name: "Klaus Ostermann" link: "http://www.informatik.uni-marburg.de/~kos/" year: "2010" doi: "http://www.dsal.cl/_media/2010/dsal10_achenbach.pdf" abstract: "We present an approach to embed constructs for aspect-oriented programming with dynamic deployment in Ruby using metaprogramming. The AOP constructs developed in this way facilitate dynamic instantiation of aspects and deployment with expressive scoping strategies. Domain-specific extensions of these constructs make our approach particularly well-suited for domains that require more complex, invasive, or dynamic instrumentation beyond AspectJ-like AOP languages." note: "To Appear" links: doi: "http://www.dsal.cl/_media/2010/dsal10_achenbach.pdf" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "deployment" - "dynamic AOP" - "growing a language" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "systematic-approach" - "feature-oriented programming" - "Ruby" - "domain-specific language" researchr: "https://researchr.org/publication/Achenbach-Ostermann%3ADSAL10" cites: 18 citedby: 0 booktitle: "Proceedings of the 2010 AOSD Workshop on Domain-Specific Aspect Languages" address: "Rennes and Saint Malo, France" publisher: "ACM Press" kind: "inproceedings" key: "Achenbach-Ostermann:DSAL10" - title: "Automated Transformation of Statements within Evolving Domain Specific Languages" author: - name: "Peter Bell" link: "https://researchr.org/profile/peterbell/publications" year: "2007" abstract: "One of the biggest challenges in Domain Specific Modeling is handling the inevitable changes to Domain Specific Language grammars (meta models) as they evolve over time. This paper starts by providing an overview of our use case - a high volume Software Product Line using a databased concrete syntax for storing large numbers of statements in a collection of external Domain Specific Languages. It then outlines research in related fields - from API versioning to database migrations - that could be applied to the problem of automating the transformation of statements between versions of a Domain Specific Language. It then presents an initial partial catalog of potential transformations that could be used to automate the process of transforming DSL statements at a tooling level, making it much easier for modelers to support evolutions in their DSL grammars." links: "paper": "http://www.dsmforum.org/events/DSM07/papers/bell.pdf" tags: - "model-to-model transformation" - "Imperative evolution specification" - "meta-model" - "fixed coupling" - "modeling language" - "modeling" - "transformation language" - "coupled evolution" - "language modeling" - "user-defined evolution" - "software evolution" - "source-to-source" - "migration" - "model transformation" - "partial evaluation" - "DSL" - "database" - "software product line" - "Meta-Environment" - "no evaluation" - "modelware" - "process modeling" - "product line" - "concrete syntax" - "meta-objects" - "transformation" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/Bell%3ADSM%3A2007" cites: 0 citedby: 0 booktitle: "Proceedings of the 7th OOPSLA Workshop on Domain-Specific Modeling (DSM’07)" series: "Computer Science and Information System Reports" publisher: "University of Jyväskylä, Finland" kind: "inproceedings" key: "Bell:DSM:2007" - title: "Verischemelog: Verilog embedded in Scheme" author: - name: "James Jennings" link: "https://researchr.org/alias/james-jennings" - name: "Eric Beuscher" link: "https://researchr.org/alias/eric-beuscher" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331978" links: doi: "http://doi.acm.org/10.1145/331960.331978" tags: - "DSL" researchr: "https://researchr.org/publication/JenningsB99" cites: 0 citedby: 1 pages: "123-134" booktitle: "DSL" kind: "inproceedings" key: "JenningsB99" - title: "Little Languages" author: - name: "Jon Louis Bentley" link: "https://researchr.org/alias/jon-louis-bentley" year: "1986" tags: - "little language" researchr: "https://researchr.org/publication/Bentley86c" cites: 0 citedby: 1 journal: "Communications of the ACM" volume: "29" number: "8" pages: "711-721" kind: "article" key: "Bentley86c" - title: "Domain specific embedded compilers" author: - name: "Daan Leijen" link: "https://researchr.org/alias/daan-leijen" - name: "Erik Meijer" link: "https://researchr.org/alias/erik-meijer" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331977" links: doi: "http://doi.acm.org/10.1145/331960.331977" tags: - "compiler" - "DSL" researchr: "https://researchr.org/publication/LeijenM99" cites: 0 citedby: 4 pages: "109-122" booktitle: "DSL" kind: "inproceedings" key: "LeijenM99" - title: "A Domain-Specific Language for Regular Sets of Strings and Trees" author: - name: "Nils Klarlund" link: "https://researchr.org/alias/nils-klarlund" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" year: "1999" doi: "http://computer.org/tse/ts1999/e0378abs.htm" links: doi: "http://computer.org/tse/ts1999/e0378abs.htm" tags: - "domain-specific language" researchr: "https://researchr.org/publication/KlarlundS99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "378-386" kind: "article" key: "KlarlundS99" - title: "Language Modularization and Composition with Projectional Language Workbenches illustrated with MPS" author: - name: "Markus Völter" link: "http://www.voelter.de/" - name: " Konstantin Solomatov" link: "https://researchr.org/alias/konstantin-solomatov" year: "2010" doi: "https://doi.org/10.1007/978-3-642-35992-7_11" abstract: "The language community has had a discussion about different styles of languages for a long time: big languages with many specific concepts (ABAP, Cobol), or small languages with few, but very powerful and orthogonal concepts (Lisp, Smalltalk)? With the advent of projectional language workbenches a new class of language becomes possible that can combine the best of both approaches: modular languages. Modular Languages use a relatively small general-purpose core and can be extended with more (domain specific) concepts as needed. Projectional language workbenches support this approach by alleviating the problems of language composition for parser-based languages by not using grammars and parsers at all. They also enable IDE extension as a side benefit. In this paper we argue why modular languages are useful and illustrate the idea with a couple of small examples. We also present a number of language composition techniques for JetBrains MPS, an open source projectional language workbench." links: doi: "https://doi.org/10.1007/978-3-642-35992-7_11" tags: - "Domain-specific languages" - "workbench" - "modular languages" - "rule-based" - "projectional editing" - "composition" - "source-to-source" - "language workbench" - "language composition" - "Cobol" - "parsing" - "systematic-approach" - "open-source" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/VoelterSolomatov2010" cites: 0 citedby: 0 pages: "383-430" booktitle: "Software Language Engineering, Third International Conference, SLE 2010, Eindhoven, The Netherlands, October 12-13, 2010, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Brian Malloy" link: "https://researchr.org/alias/brian-malloy" - name: "Steffen Staab" link: "https://researchr.org/alias/steffen-staab" series: "Lecture Notes in Computer Science" publisher: "Springer" kind: "inproceedings" key: "VoelterSolomatov2010" - title: "Fusing a Transformation Language with an Open Compiler" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.042" abstract: "Program transformation systems provide powerful analysis and transformation frameworks as well as concise languages for language processing, but instantiating them for every subject language is an arduous task, most often resulting in half-completed frontends. Compilers provide mature frontends with robust parsers and type checkers, but solving language processing problems in general-purpose languages without transformation libraries is tedious. Reusing these frontends with existing transformation systems is therefore attractive. However, for this reuse to be optimal, the functional logic found in the frontend should be exposed to the transformation system – simple data serialization of the abstract syntax tree is not enough, since this fails to expose important compiler functionality, such as import graphs, symbol tables and the type checker. In this paper, we introduce a novel and general technique for combining term-based transformation systems with existing language frontends. The technique is presented in the context of a scriptable analysis and transformation framework for Java built on top of the Eclipse Java compiler. The framework consists of an adapter automatically extracted from the abstract syntax tree of the compiler and an interpreter for the Stratego program transformation language. The adapter allows the Stratego interpreter to rewrite directly on the compiler AST. We illustrate the applicability of our system with scripts written in Stratego that perform framework and library-specific analyses and transformations." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.042" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-025.pdf" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "rule-based" - "Java" - "program analysis" - "Eclipse" - "completeness" - "data-flow language" - "graph transformation" - "interpreter" - "abstract syntax" - "Stratego/XT" - "transformation language" - "term rewriting" - "functional programming" - "Eclipse Java Compiler" - "points-to analysis" - "domain analysis" - "analysis" - "type system" - "reuse" - "data-flow programming" - "data-flow" - "source-to-source" - "graph-rewriting" - "logic programming" - "transformation system" - "compiler" - "model transformation" - "open compiler" - "subject-oriented programming" - "context-aware" - "logic" - "Spoofax" - "rewriting logic" - "rewriting" - "data-flow analysis" - "parsing" - "feature-oriented programming" - "open-source" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/KallebergV08" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "203" number: "2" pages: "21-36" kind: "article" key: "KallebergV08" - title: "Remote attribute grammars" author: - name: "John Tang Boyland" link: "https://researchr.org/alias/john-tang-boyland" year: "2005" doi: "http://doi.acm.org/10.1145/1082036.1082042" links: doi: "http://doi.acm.org/10.1145/1082036.1082042" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/Boyland05" cites: 0 citedby: 1 journal: "Journal of the ACM" volume: "52" number: "4" pages: "627-687" kind: "article" key: "Boyland05" - title: "J&: nested intersection for scalable software composition" author: - name: "Nathaniel Nystrom" link: "https://researchr.org/alias/nathaniel-nystrom" - name: "Xin Qi" link: "https://researchr.org/alias/xin-qi" - name: "Andrew C. Myers" link: "https://researchr.org/alias/andrew-c.-myers" year: "2006" doi: "http://doi.acm.org/10.1145/1167473.1167476" links: doi: "http://doi.acm.org/10.1145/1167473.1167476" tags: - "composition" - "C++" researchr: "https://researchr.org/publication/NystromQM06" cites: 0 citedby: 0 pages: "21-36" booktitle: "Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "http://portal.acm.org/author_page.cfm?id=81100131551&coll=GUIDE&dl=GUIDE&trk=0&CFID=51133021&CFTOKEN=87963901" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-348-4" kind: "inproceedings" key: "NystromQM06" - title: "A Fact-Oriented Approach to Business Rules" author: - name: "Terry A. Halpin" link: "http://www.orm.net/halpin.html" year: "2000" doi: "http://link.springer.de/link/service/series/0558/bibs/1920/19200582.htm" abstract: "Effective database applications, business rules management, data warehousing, enterprise modeling and re-engineering all depend on the quality of the underlying data model. To properly exploit relational, object-relational or object database technology, a clear understanding is needed as to how to create conceptual business models, transform them to logical database models for implementation on the chosen platform, and query the populated models. Factorientation provides a truly conceptual way to accomplish these tasks, facilitating communication between the modeler, the domain expert and the application. This presentation provides insights into the fact-oriented approach for modeling and querying information systems, focusing on verbalization and instantiation of data use cases for capturing business rules, including recent work on negative and default rule verbalizations. " links: doi: "http://link.springer.de/link/service/series/0558/bibs/1920/19200582.htm" tags: - "rule-based" - "relational database" - "meta-model" - "modeling" - "business rules" - "data-flow" - "ORM" - "rules" - "model-driven engineering" - "object-role modeling" - "information models" - "database" - "Meta-Environment" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/Halpin00" cites: 0 citedby: 0 pages: "582-583" booktitle: "Conceptual Modeling - ER 2000, 19th International Conference on Conceptual Modeling, Salt Lake City, Utah, USA, October 9-12, 2000, Proceedings" editor: - name: "Alberto H. F. Laender" link: "https://researchr.org/alias/alberto-h.-f.-laender" - name: "Stephen W. Liddle" link: "https://researchr.org/alias/stephen-w.-liddle" - name: "Veda C. Storey" link: "https://researchr.org/alias/veda-c.-storey" volume: "1920" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41072-4" kind: "inproceedings" key: "Halpin00" - title: "Better extensibility through modular syntax" author: - name: "Robert Grimm" link: "http://www.cs.nyu.edu/rgrimm/" year: "2006" doi: "http://doi.acm.org/10.1145/1133981.1133987" links: doi: "http://doi.acm.org/10.1145/1133981.1133987" tags: - "extensible syntax" researchr: "https://researchr.org/publication/Grimm06" cites: 0 citedby: 2 pages: "38-51" booktitle: "Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, Ottawa, Ontario, Canada, June 11-14, 2006" editor: - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" - name: "Thomas Ball" link: "https://researchr.org/alias/thomas-ball" publisher: "ACM" isbn: "1-59593-320-4" kind: "inproceedings" key: "Grimm06" - title: "SHIFT and SMART-AHS: A Language for Hybrid System Engineering Modeling and Simulation" author: - name: "Marco Antoniotti" link: "https://researchr.org/alias/marco-antoniotti" - name: "Aleks Göllü" link: "https://researchr.org/alias/aleks-g%C3%B6ll%C3%BC" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/antoniotti.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/antoniotti.html" tags: - "meta-model" - "modeling language" - "modeling" - "language engineering" - "language modeling" - "model-driven engineering" - "DSL" - "Meta-Environment" researchr: "https://researchr.org/publication/AntoniottiG97" cites: 0 citedby: 1 pages: "171-182" booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "AntoniottiG97" - title: "Implementing Extensible Compilers" author: - name: "Matthias Zenger" link: "https://researchr.org/alias/matthias-zenger" - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" year: "2001" doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.6913" links: doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.6913" tags: - "compiler" researchr: "https://researchr.org/publication/Zenger01implementingextensible" cites: 0 citedby: 0 kind: "article" key: "Zenger01implementingextensible" - title: "Metaschemas for ER, ORM and UML Data Models: A Comparison" author: - name: "Terry A. Halpin" link: "http://www.orm.net/halpin.html" year: "2002" tags: - "data models" - "metaschemas" - "UML" - "data-flow" - "ORM" - "object-role modeling" researchr: "https://researchr.org/publication/Halpin02" cites: 0 citedby: 0 journal: "Journal of Database Management" volume: "13" number: "2" pages: "20-30" kind: "article" key: "Halpin02" - title: "Modular Grammars for Programming Language Prototyping" author: - name: "Stephen Robert Adams" link: "https://researchr.org/alias/stephen-robert-adams" year: "1991" tags: - "programming languages" - "programming" - "grammar" researchr: "https://researchr.org/publication/Adams91modulargrammars" cites: 0 citedby: 0 kind: "misc" key: "Adams91modulargrammars" - title: "Supporting Product Line Development through Traceability" author: - name: "Waraporn Jirapanthong" link: "https://researchr.org/alias/waraporn-jirapanthong" - name: "Andrea Zisman" link: "https://researchr.org/alias/andrea-zisman" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/APSEC.2005.101" links: doi: "http://doi.ieeecomputersociety.org/10.1109/APSEC.2005.101" tags: - "product line" researchr: "https://researchr.org/publication/JirapanthongZ05" cites: 0 citedby: 0 pages: "506-514" booktitle: "12th Asia-Pacific Software Engineering Conference (APSEC 2005), 15-17 December 2005, Taipei, Taiwan" publisher: "IEEE Computer Society" isbn: "0-7695-2465-6" kind: "inproceedings" key: "JirapanthongZ05" - title: "Rewritable Reference Attributed Grammars" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3086&spage=144" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3086&spage=144" tags: - "attribute grammars" - "reference attribute grammars" - "graph-rewriting" - "rewriting" - "grammar" researchr: "https://researchr.org/publication/EkmanH04" cites: 0 citedby: 3 pages: "144-169" booktitle: "ECOOP 2004 - Object-Oriented Programming, 18th European Conference, Oslo, Norway, June 14-18, 2004, Proceedings" editor: - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" volume: "3086" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22159-X" kind: "inproceedings" key: "EkmanH04" - title: "Circular reference attributed grammars - their evaluation and applications" author: - name: "Eva Magnusson" link: "https://researchr.org/alias/eva-magnusson" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2007" doi: "http://dx.doi.org/10.1016/j.scico.2005.06.005" links: doi: "http://dx.doi.org/10.1016/j.scico.2005.06.005" tags: - "attribute grammars" - "reference attribute grammars" - "grammar" researchr: "https://researchr.org/publication/MagnussonH07" cites: 0 citedby: 1 journal: "Science of Computer Programming" volume: "68" number: "1" pages: "21-37" kind: "article" key: "MagnussonH07" - title: "Multiple Attribute Grammar Inheritance" author: - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" - name: "Mitja Lenic" link: "https://researchr.org/alias/mitja-lenic" - name: "Enis Avdicausevic" link: "https://researchr.org/alias/enis-avdicausevic" - name: "Viljem Zumer" link: "https://researchr.org/alias/viljem-zumer" year: "2000" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/MernikLAZ00%3A0" cites: 0 citedby: 0 journal: "Informatica (Slovenia)" volume: "24" number: "3" kind: "article" key: "MernikLAZ00:0" - title: "Declarative, formal, and extensible syntax definition for AspectJ" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Éric Tanter" link: "http://pleiad.dcc.uchile.cl/people/etanter" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "http://doi.acm.org/10.1145/1167473.1167491" abstract: " Aspect-Oriented Programming (AOP) is attracting attention from both research and industry, as illustrated by the ever-growing popularity of AspectJ, the de facto standard AOP extension of Java. From a compiler construction perspective AspectJ is interesting as it is a typical example of compositional language, ie a language composed of a number of separate languages with different syntactical styles: in addition to plain Java, AspectJ includes a language for defining pointcuts and one for defining advices. Language composition represents a non-trivial challenge for conventional parsing techniques. First, combining several languages with different lexical syntax leads to considerable complexity in the lexical states to processed. Second, as new language features for AOP are being explored, many research proposals are concerned with further extending the AspectJ language, resulting in a need for an extensible syntax definition.This paper shows how scannerless parsing elegantly addresses the issues encountered by conventional techniques when parsing AspectJ . We present the design of a modular, extensible, and formal definition of the lexical and context-free aspects of the AspectJ syntax in the Syntax Definition Formalism SDF, which is implemented by a scannerless, generalized-LR parser (SGLR). We introduce grammar mixins as a novel application of SDF's modularity features, which allows the declarative definition of different keyword policies and combination of extensions. We illustrate the modular extensibility of our definition with syntax extensions taken from current research on aspect languages. Finally, benchmarks show the reasonable performance of scannerless generalized-LR parsing for this grammar. " links: doi: "http://doi.acm.org/10.1145/1167473.1167491" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "Java" - "syntax definition" - "SDF" - "lexical syntax" - "design complexity" - "composition" - "design research" - "language design" - "aspect oriented programming" - "compiler" - "programming" - "subject-oriented programming" - "context-aware" - "language composition" - "parsing" - "design" - "scannerless parsing" - "extensible language" - "ASF+SDF" - "feature-oriented programming" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/BravenboerTV06" cites: 0 citedby: 1 pages: "209-228" booktitle: "Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "http://portal.acm.org/author_page.cfm?id=81100131551&coll=GUIDE&dl=GUIDE&trk=0&CFID=51133021&CFTOKEN=87963901" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-348-4" kind: "inproceedings" key: "BravenboerTV06" - title: "From Programming to Modeling - and Back Again" author: - name: "Markus Völter" link: "http://www.voelter.de/" year: "2011" abstract: "What's the difference between programming and modeling? And should there be one? A long time ago, I started programming with Pascal, C++, and Java, but in the past couple of years, I’ve focused on domain specific languages and model-driven development (MDD). Modeling is a different world from programming, especially because of the mindset and tools involved. But as I thought more about the dichotomy between the two, I concluded that what we really need is a set of composable language modules that express different software concerns—some application-domain specifi c, others more related to technical concerns and thus more generic and reusable. This idea isn’t new, but the time is right to discuss it again, especially as the necessary tools are maturing" note: "to be published later this year" tags: - "programming languages" - "Java" - "meta programming" - "generic programming" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "reuse" - "model-driven development" - "C++" - "programming" - "Meta-Environment" - "Pascal" - "domain-specific language" researchr: "https://researchr.org/publication/Voelter2011-0" cites: 0 citedby: 0 journal: "IEEE Software" kind: "article" key: "Voelter2011-0" - title: "The syntax definition formalism SDF - reference manual" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "P. R. H. Hendriks" link: "https://researchr.org/alias/p.-r.-h.-hendriks" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jan Rekers" link: "http://www.cwi.nl" year: "1989" doi: "http://doi.acm.org/10.1145/71605.71607" abstract: "SDF is a formalism for the definition of syntax which is comparable to BNF in some respects, but has a wider scope in that it also covers the definition of lexical and abstract syntax. Its design and implementation are tailored towards the language designer who wants to develop new languages as well as implement existing ones in a highly interactive manner. It emphasizes compactness of syntax definitions by offering (a) a standard interface between lexical and context-free syntax; (b) a standard correspondence between context-free and abstract syntax; (c) powerful disambiguation and list constructs; and (d) an efficient incremental implementation which accepts arbitrary context-free syntax definitions. SDF can be combined with a variety of programming and specification languages. In this way these obtain fully general user-definable syntax. " links: doi: "http://doi.acm.org/10.1145/71605.71607" tags: - "programming languages" - "syntax definition" - "SDF" - "lexical syntax" - "abstract syntax" - "disambiguation" - "language design" - "C++" - "programming" - "context-aware" - "incremental" - "design" - "ASF+SDF" researchr: "https://researchr.org/publication/HeeringHKR89" cites: 0 citedby: 4 journal: "SIGPLAN Notices" volume: "24" number: "11" pages: "43-75" kind: "article" key: "HeeringHKR89" - title: "On the Relative Completeness of Bytecode Analysis Versus Source Code Analysis" author: - name: "Francesco Logozzo" link: "https://researchr.org/alias/francesco-logozzo" - name: "Manuel Fähndrich" link: "https://researchr.org/alias/manuel-f%C3%A4hndrich" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-78791-4_14" links: doi: "http://dx.doi.org/10.1007/978-3-540-78791-4_14" tags: - "completeness" - "points-to analysis" - "analysis" - "source-to-source" - "peer-to-peer" - "open-source" researchr: "https://researchr.org/publication/LogozzoF08" cites: 0 citedby: 1 pages: "197-212" booktitle: "Compiler Construction, 17th International Conference, CC 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29 - April 6, 2008. Proceedings" editor: - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" volume: "4959" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-78790-7" kind: "inproceedings" key: "LogozzoF08" - title: "Extending Attribute Grammars with Collection Attributes--Evaluation and Applications" author: - name: "Eva Magnusson" link: "https://researchr.org/alias/eva-magnusson" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2007" doi: "http://dx.doi.org/10.1109/SCAM.2007.13" links: doi: "http://dx.doi.org/10.1109/SCAM.2007.13" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/MagnussonEH07" cites: 0 citedby: 1 pages: "69-80" booktitle: "Seventh IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2007), September 30 - October 1, 2007, Paris, France" publisher: "IEEE" kind: "inproceedings" key: "MagnussonEH07" - title: "Building Application Generators" author: - name: "Cleaveland, J. Craig" link: "https://researchr.org/alias/cleaveland%2C-j.-craig" year: "1988" doi: "http://dx.doi.org/10.1109/52.17799" abstract: " The development of application generators, which offer increased productivity through customized reusable software, is addressed. Their advantages and drawbacks are first discussed. They describe a method, called the dialogue-code generation system, for building application generators, and discuss its use for various projects. Unix tools for building application generators are briefly considered. " links: doi: "http://dx.doi.org/10.1109/52.17799" tags: - "reuse" - "code generation" researchr: "https://researchr.org/publication/Cleaveland88" cites: 0 citedby: 1 journal: "IEEE Softw." volume: "5" number: "4" kind: "article" key: "Cleaveland88" - title: "Domains of Concern in Software Architectures and Architecture Description Languages" author: - name: "Nenad Medvidovic" link: "https://researchr.org/alias/nenad-medvidovic" - name: "David S. Rosenblum" link: "https://researchr.org/alias/david-s.-rosenblum" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/medvidovic.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/medvidovic.html" tags: - "software architecture" - "architecture" - "DSL" - "domain-specific language" researchr: "https://researchr.org/publication/MedvidovicR97" cites: 0 citedby: 1 pages: "199-212" booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "MedvidovicR97" - title: "" tags: - "composition" researchr: "https://researchr.org/publication/delete" cites: 0 citedby: 0 publisher: "Springer" kind: "proceedings" key: "delete" - title: "The JastAdd extensible Java compiler" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297029" abstract: "The JastAdd Extensible Java Compiler is a high quality Java compiler that is easy to extend in order to build static analysis tools for Java, and to extend Java with new language constructs. It is built modularly, with a Java 1.4 compiler that is extended to a Java 5 compiler. Example applications that are built as extensions include an alternative backend that generates Jimple, an extension of Java with AspectJ constructs, and the implementation of a pluggable type system for non-null checking and inferenc. The system is implemented using JastAdd, a declarative Java-like language. We describe the compiler architecture, the major design ideas for building and extending the compiler, in particular, for dealing with complex extensions that affect name and type analysis. Our extensible compiler compares very favorably concerning quality, speed and size with other extensible Java compiler frameworks. It also compares favorably in quality and size compared with traditional non-extensible Java compilers, and it runs within a factor of three compared to javac." links: doi: "http://doi.acm.org/10.1145/1297027.1297029" tags: - "AspectJ" - "Java" - "application framework" - "architecture" - "analysis" - "language design" - "static analysis" - "type system" - "extensible compiler" - "type checking" - "compiler" - "JastAdd" - "design" - "extensible language" researchr: "https://researchr.org/publication/EkmanH07" cites: 0 citedby: 3 pages: "1-18" booktitle: "Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada" editor: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" publisher: "ACM" isbn: "978-1-59593-786-5" kind: "inproceedings" key: "EkmanH07" - title: "Design patterns: elements of reusable object-oriented software" author: - name: "E. Gamma" link: "https://researchr.org/alias/e.-gamma" - name: "R. Helm" link: "https://researchr.org/alias/r.-helm" - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" - name: " J. Vlissides" link: "https://researchr.org/alias/j.-vlissides" year: "1995" tags: - "design science" - "reuse" - "e-science" - "Meta-Environment" - "design" - "meta-objects" researchr: "https://researchr.org/publication/GOF95" cites: 0 citedby: 1 publisher: "Addison-Wesley Professional" kind: "book" key: "GOF95" - title: "LINQ: reconciling object, relations and XML in the .NET framework" author: - name: "Erik Meijer" link: "https://researchr.org/alias/erik-meijer" - name: "Brian Beckman" link: "https://researchr.org/alias/brian-beckman" - name: "Gavin M. Bierman" link: "https://researchr.org/alias/gavin-m.-bierman" year: "2006" doi: "http://doi.acm.org/10.1145/1142473.1142552" abstract: " Many software applications today need to handle data from different data models; typically objects from the host programming language along with the relational and XML data models. The ROX impedance mismatch makes programs awkward to write and hard to maintain.The .NET Language-Integrated Query (LINQ) framework, proposed for the next release of the .NET framework, approaches this problem by defining a pattern of general-purpose standard query operators for traversal, filter, and projection. Based on this pattern, any .NET language can define special query comprehension syntax that is subsequently compiled into these standard operators (our code examples are in VB).Besides the general query operators, the LINQ framework also defines two domain specific APIs that work over XML (XLinq) and relational data (DLinq) respectively. The operators over XML use a lightweight and easy to use in-memory XML representation to provide XQuery-style expressiveness in the host programming language. The operators over relational data provide a simple OR mapping by leveraging remotable queries that are executed directly in the back-end relational store. " links: doi: "http://doi.acm.org/10.1145/1142473.1142552" tags: - "meta-model" - "XML" - "XML Schema" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/MeijerBB06" cites: 0 citedby: 3 pages: "706" booktitle: "Proceedings of the ACM SIGMOD International Conference on Management of Data, Chicago, Illinois, USA, June 27-29, 2006" editor: - name: "Surajit Chaudhuri" link: "https://researchr.org/alias/surajit-chaudhuri" - name: "Vagelis Hristidis" link: "https://researchr.org/alias/vagelis-hristidis" - name: "Neoklis Polyzotis" link: "https://researchr.org/alias/neoklis-polyzotis" publisher: "ACM" isbn: "1-59593-256-9" kind: "inproceedings" key: "MeijerBB06" - title: "Adding domain-specific and general purpose language features to Java with the Java language extender" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "Lijesh Krishnan" link: "https://researchr.org/alias/lijesh-krishnan" - name: "Derek Bodin" link: "https://researchr.org/alias/derek-bodin" - name: "Eric Johnson" link: "https://researchr.org/alias/eric-johnson" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176696" links: doi: "http://doi.acm.org/10.1145/1176617.1176696" tags: - "Java" - "domain-specific language" researchr: "https://researchr.org/publication/WykKBJ06" cites: 0 citedby: 1 pages: "728-729" booktitle: "Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "https://researchr.org/alias/peri-l.-tarr" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-491-X" kind: "inproceedings" key: "WykKBJ06" - title: "Towards context sensitive domain specific languages" author: - name: "Laird, Paul" link: "https://researchr.org/alias/laird%2C-paul" - name: "Barrett, Stephen" link: "https://researchr.org/alias/barrett%2C-stephen" year: "2009" doi: "http://doi.acm.org/10.1145/1554233.1554241" abstract: "We propose the development of a framework for the dynamic context sensitive interpretation of Domain Specific Languages. Domains often contain abstractions, the interpretation of which change in conjunction with changes in the domain or changes in the context in which the program executes. In a scenario where domain assumptions encoded in the DSL change, programmers must still work with the existing DSL, and therefore take more effort to describe their program or sometimes fail to specify their intent. In such changing circumstances DSLs risk becoming less fit for purpose. We seek to develop an approach which makes a DSL less restrictive, maintaining flexibility and adaptability to cope with changing or novel contexts without reducing the expressiveness of the abstractions used." links: doi: "http://doi.acm.org/10.1145/1554233.1554241" tags: - "programming languages" - "DSL" - "context-aware" - "abstraction" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/1554241" cites: 0 citedby: 0 booktitle: "CAMS '09: Proceedings of the 1st International Workshop on Context-Aware Middleware and Services" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-60558-525-3" kind: "inproceedings" key: "1554241" - title: "Sectional domain specific languages" author: - name: "Cazzola, Walter" link: "https://researchr.org/alias/cazzola%2C-walter" - name: "Speziale, Ivan" link: "https://researchr.org/alias/speziale%2C-ivan" year: "2009" doi: "http://doi.acm.org/10.1145/1509307.1509311" links: doi: "http://doi.acm.org/10.1145/1509307.1509311" "url": "http://doi.acm.org/10.1145/1509307.1509311" tags: - "domain-specific language" researchr: "https://researchr.org/publication/Cazzola%3A2009%3ASDS%3A1509307.1509311" cites: 0 citedby: 0 booktitle: "Proceedings of the 4th workshop on Domain-specific aspect languages" series: "DSAL '09" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-60558-455-3" kind: "inproceedings" key: "Cazzola:2009:SDS:1509307.1509311" - title: "Context-aware scanning for parsing extensible languages" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "August Schwerdfeger" link: "https://researchr.org/alias/august-schwerdfeger" year: "2007" doi: "http://doi.acm.org/10.1145/1289971.1289983" links: doi: "http://doi.acm.org/10.1145/1289971.1289983" tags: - "context-aware" - "parsing" - "extensible language" researchr: "https://researchr.org/publication/WykS07" cites: 0 citedby: 1 pages: "63-72" booktitle: "Generative Programming and Component Engineering, 6th International Conference, GPCE 2007" editor: - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Julia L. Lawall" link: "http://www.diku.dk/hjemmesider/ansatte/julia/" address: "Salzburg, Austria" publisher: "ACM" isbn: "978-1-59593-855-8" kind: "inproceedings" key: "WykS07" - title: "Mixin-based Inheritance" author: - name: "Gilad Bracha" link: "https://researchr.org/alias/gilad-bracha" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" year: "1990" tags: - "rule-based" researchr: "https://researchr.org/publication/BrachaC90" cites: 0 citedby: 1 pages: "303-311" booktitle: "OOPSLA/ECOOP" kind: "inproceedings" key: "BrachaC90" - title: "The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Markus Völter" link: "http://www.voelter.de/" - name: " Meinte Boersma" link: "https://researchr.org/alias/meinte-boersma" - name: "Remi Bosman" link: "https://researchr.org/alias/remi-bosman" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Albert Gerritsen" link: "https://researchr.org/alias/albert-gerritsen" - name: "Angelo Hulshout" link: "https://researchr.org/alias/angelo-hulshout" - name: "Steven Kelly" link: "https://researchr.org/alias/steven-kelly" - name: "Alex Loh" link: "https://researchr.org/alias/alex-loh" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Pedro J. Molina" link: "https://researchr.org/alias/pedro-j.-molina" - name: "Martin Palatnik" link: "https://researchr.org/alias/martin-palatnik" - name: "Risto Pohjonen" link: "https://researchr.org/alias/risto-pohjonen" - name: "Eugen Schindler" link: "https://researchr.org/alias/eugen-schindler" - name: "Klemens Schindler" link: "https://researchr.org/alias/klemens-schindler" - name: "Riccardo Solmi" link: "https://researchr.org/alias/riccardo-solmi" - name: "Vlad A. Vergu" link: "https://researchr.org/alias/vlad-a.-vergu" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Kevin van der Vlist" link: "https://researchr.org/alias/kevin-van-der-vlist" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jimi van der Woning" link: "https://researchr.org/alias/jimi-van-der-woning" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" abstract: "Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches." links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/ErdwegSVBBCGHKLKMPPSSSVVVWW13" researchr: "https://researchr.org/publication/ErdwegSV13" cites: 0 citedby: 0 pages: "197-217" booktitle: "Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings" editor: - name: "Martin Erwig" link: "https://researchr.org/alias/martin-erwig" - name: "Richard F. Paige" link: "https://researchr.org/alias/richard-f.-paige" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "8225" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-02653-4" kind: "inproceedings" key: "ErdwegSV13" - title: "Commonality and Variability in Software Engineering" author: - name: "James Coplien" link: "https://researchr.org/alias/james-coplien" - name: "Daniel Hoffman" link: "https://researchr.org/alias/daniel-hoffman" - name: "David M. Weiss" link: "https://researchr.org/alias/david-m.-weiss" year: "1998" doi: "http://www.computer.org/software/so1998/s6037abs.htm" links: doi: "http://www.computer.org/software/so1998/s6037abs.htm" tags: - "software engineering" researchr: "https://researchr.org/publication/CoplienHW98" cites: 0 citedby: 2 journal: "IEEE Software" volume: "15" number: "6" pages: "37-45" kind: "article" key: "CoplienHW98" - title: "Extensible Algebraic Datatypes with Defaults" author: - name: "Matthias Zenger" link: "https://researchr.org/alias/matthias-zenger" - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" year: "2001" doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.6778" links: doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.6778" tags: - " algebra" researchr: "https://researchr.org/publication/ZengerO01" cites: 0 citedby: 0 pages: "241-252" booktitle: "Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming" series: "ICFP '01" address: "New York, NY, USA" publisher: "Association for Computing Machinery" kind: "inproceedings" key: "ZengerO01" - title: "Modular Domain-Specific Language Components in Scala" author: - name: "Christian Hofer" link: "http://www.daimi.au.dk/~chmh/" - name: "Klaus Ostermann" link: "http://www.informatik.uni-marburg.de/~kos/" year: "2010" tags: - "Scala" - "domain-specific language" researchr: "https://researchr.org/publication/Hofer-GPCE-2010" cites: 0 citedby: 0 booktitle: "Generative Programming And Component Engineering, Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE 2010, Eindhoven, The Netherlands, October 10-13, 2010 " editor: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Jaakko Järvi" link: "http://parasol.tamu.edu/~jarvi/" publisher: "ACM" kind: "inproceedings" key: "Hofer-GPCE-2010" - title: "CLAM: Composition Language for Autonomous Megamodules" author: - name: "Neal Sample" link: "https://researchr.org/alias/neal-sample" - name: "Dorothea Beringer" link: "https://researchr.org/alias/dorothea-beringer" - name: "Laurence Melloul" link: "https://researchr.org/alias/laurence-melloul" - name: "Gio Wiederhold" link: "https://researchr.org/alias/gio-wiederhold" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1594/15940291.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1594/15940291.htm" tags: - "composition" researchr: "https://researchr.org/publication/SampleBMW99" cites: 0 citedby: 0 pages: "291-306" booktitle: "Coordination Languages and Models, Third International Conference, COORDINATION 99, Amsterdam, The Netherlands, April 26-28, 1999, Proceedings" editor: - name: "Paolo Ciancarini" link: "https://researchr.org/alias/paolo-ciancarini" - name: "Alexander L. Wolf" link: "http://www.doc.ic.ac.uk/~alw/" volume: "1594" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65836-X" kind: "inproceedings" key: "SampleBMW99" - title: "YACC: Yet Another Compiler-Compiler" author: - name: "S. C. Johnson" link: "https://researchr.org/alias/s.-c.-johnson" year: "1975" tags: - "YACC" - "C++" - "compiler" researchr: "https://researchr.org/publication/Joh75.yacc" cites: 0 citedby: 1 institution: "AT\\&T Bell Laboratories" number: "CS-32" address: "Murray Hill, NJ, USA" kind: "techreport" key: "Joh75.yacc" - title: "Two Meta-Models for Object-Role Modeling" author: - name: "Dave Cuyler" link: "https://researchr.org/alias/dave-cuyler" - name: "Terry A. Halpin" link: "http://www.orm.net/halpin.html" year: "2005" tags: - "meta-model" - "modeling" - "ORM" - "object-role modeling" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/CuylerH05" cites: 0 citedby: 0 pages: "17-42" booktitle: "Information Modeling Methods and Methodologies" editor: - name: "John Krogstie" link: "https://researchr.org/alias/john-krogstie" - name: "Terry A. Halpin" link: "http://www.orm.net/halpin.html" - name: "Keng Siau" link: "https://researchr.org/alias/keng-siau" publisher: "Idea Group" isbn: "1-59140-376-6" kind: "incollection" key: "CuylerH05" - title: "Generalized Type-Based Disambiguation of Meta Programs with Concrete Object Syntax" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2005" doi: "http://dx.doi.org/10.1007/11561347_12" abstract: "In meta programming with concrete object syntax, object-level programs are composed from fragments written in concrete syntax. The use of small program fragments in such quotations and the use of meta-level expressions within these fragments (anti-quotation) often leads to ambiguities. This problem is usually solved through explicit disambiguation, resulting in considerable syntactic overhead. A few systems manage to reduce this overhead by using type information during parsing. Since this is hard to achieve with traditional parsing technology, these systems provide specific combinations of meta and object languages, and their implementations are difficult to reuse. In this paper, we generalize these approaches and present a language independent method for introducing concrete object syntax without explicit disambiguation. The method uses scannerless generalized-LR parsing to parse meta programs with embedded object-level fragments, which produces a forest of all possible parses. This forest is reduced to a tree by a disambiguating type checker for the meta language. To validate our method we have developed embeddings of several object languages in Java, including AspectJ and Java itself. " links: doi: "http://dx.doi.org/10.1007/11561347_12" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "concrete object syntax" - "rule-based" - "Java" - "syntax definition" - "meta programming" - "SDF" - "meta-model" - "disambiguation" - "type system" - "reuse" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerVVV05" cites: 0 citedby: 2 pages: "157-172" booktitle: "Generative Programming and Component Engineering, 4th International Conference, GPCE 2005" editor: - name: "Robert Glück" link: "http://www.diku.dk/hjemmesider/ansatte/glueck/" - name: "Michael R. Lowry" link: "https://researchr.org/alias/michael-r.-lowry" volume: "3676" series: "Lecture Notes in Computer Science" address: "Tallinn, Estonia" publisher: "Springer" isbn: "3-540-29138-5" kind: "inproceedings" key: "BravenboerVVV05" - title: "C++ Templates as Partial Evaluation" author: - name: "Todd L. Veldhuizen" link: "https://researchr.org/alias/todd-l.-veldhuizen" year: "1999" doi: "http://arxiv.org/abs/cs/9810010" abstract: "This paper explores the relationship between C++ templates and partial evaluation. Templates were designed to support generic programming, but unintentionally provided the ability to perform compile-time computations and code generation. These features are completely accidental, and as a result their syntax is awkward. By recasting these features in terms of partial evaluation, a much simpler syntax can be achieved. C++ may be regarded as a two-level language in which types are first-class values. Template instantiation resembles an offline partial evaluator. This paper describes preliminary work toward a single mechanism based on Partial Evaluation which unifies generic programming, compile-time computation and code generation. The language Catat is introduced to illustrate these ideas." links: doi: "http://arxiv.org/abs/cs/9810010" tags: - "programming languages" - "rule-based" - "generic programming" - "language design" - "C++" - "code generation" - "compiler" - "partial evaluation" - "programming" researchr: "https://researchr.org/publication/Veldhuizen99" cites: 0 citedby: 1 pages: "13-18" booktitle: "PEPM" kind: "inproceedings" key: "Veldhuizen99" - title: "Mawl: A Domain-Specific Language for Form-Based Services" author: - name: "David L. Atkins" link: "https://researchr.org/alias/david-l.-atkins" - name: "Thomas Ball" link: "https://researchr.org/alias/thomas-ball" - name: "Glenn Bruns" link: "https://researchr.org/alias/glenn-bruns" - name: "Kenneth C. Cox" link: "https://researchr.org/alias/kenneth-c.-cox" year: "1999" doi: "http://computer.org/tse/ts1999/e0334abs.htm" links: doi: "http://computer.org/tse/ts1999/e0334abs.htm" tags: - "rule-based" - "C++" - "domain-specific language" researchr: "https://researchr.org/publication/AtkinsBBC99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "334-346" kind: "article" key: "AtkinsBBC99" - title: "Silver: an Extensible Attribute Grammar System" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "Derek Bodin" link: "https://researchr.org/alias/derek-bodin" - name: "Jimin Gao" link: "https://researchr.org/alias/jimin-gao" - name: "Lijesh Krishnan" link: "https://researchr.org/alias/lijesh-krishnan" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.047" links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.047" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/WykBGK08" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "203" number: "2" pages: "103-116" kind: "article" key: "WykBGK08" - title: "A programming language where the syntax and semantics are mutable at runtime." author: - name: "C. Seaton" link: "https://researchr.org/alias/c.-seaton" year: "2007" month: "June" tags: - "programming languages" - "semantics" - "C++" - "programming" researchr: "https://researchr.org/publication/Seaton2007" cites: 0 citedby: 1 institution: "University of Bristol" number: "CSTR-07-005" kind: "techreport" key: "Seaton2007" - title: "Meta-Environment and Executable Meta-Language using Smalltalk: an Experience Report" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2009" month: "feb" doi: "10.1007/s10270-008-0081-4" links: "url": "http://scg.unibe.ch/archive/drafts/Duca08a-Sosym-ExecutableMetaLanguage.pdf" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Duca08a" cites: 0 citedby: 0 journal: "Journal of Software and Systems Modeling (SOSYM)" volume: "8" number: "1" kind: "article" key: "Duca08a" - title: "Toward an engineering discipline for grammarware" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "2005" doi: "http://doi.acm.org/10.1145/1072997.1073000" links: doi: "http://doi.acm.org/10.1145/1072997.1073000" researchr: "https://researchr.org/publication/KlintLV05" cites: 2 citedby: 1 journal: "ACM Transactions on Software Engineering Methodology" volume: "14" number: "3" pages: "331-380" kind: "article" key: "KlintLV05" - title: "Object-Oriented Application Frameworks - Introduction" author: - name: "Mohamed E. Fayad" link: "https://researchr.org/alias/mohamed-e.-fayad" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" year: "1997" tags: - "application framework" - "C++" - "e-science" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/FayadS97" cites: 0 citedby: 1 journal: "Communications of the ACM" volume: "40" number: "10" pages: "32-38" kind: "article" key: "FayadS97" - title: "Open Reusable Object Models" author: - name: "Ian Piumarta" link: "https://researchr.org/alias/ian-piumarta" - name: "Alessandro Warth" link: "https://researchr.org/alias/alessandro-warth" year: "2007" abstract: "Code reuse between different object model implementations is rare. Most object models cannot easily be shared because they are implemented at a lower level of abstraction than that of the language in which they are designed to operate, rendering their semantics opaque and unavailable for modification by end users. We show that three object types and four methods are sufficient to bootstrap an object model whose semantics are described entirely in terms of those same objects and messages. The result is a simple but powerful object model that can be implemented easily and efficiently, in which all semantics are exposed and malleable, facilitating extensibility, interoperability and implementation reuse." tags: - "programming languages" - "object-oriented programming" - "meta-programming system" - "semantics" - "operating system" - "meta programming" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "language design" - "type system" - "reuse" - "source-to-source" - "object-role modeling" - "subject-oriented programming" - "abstraction" - "Meta-Environment" - "cola" - "extensible language" - "feature-oriented programming" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Piumarta07openreusable" cites: 0 citedby: 0 kind: "misc" key: "Piumarta07openreusable" - title: "Embedding Languages Without Breaking Tools" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" doi: "10.1007/978-3-642-14107-2_19" abstract: "Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying parts of an application related to specialized domains. Unfortunately, such language extensions typically do not integrate well with the development tools of the host language. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. We present a novel approach to embed DSLs into an existing host language by leveraging the underlying representation of the host language used by these tools. Helvetia is an extensible system that intercepts the compilation pipeline of the Smalltalk host language to seamlessly integrate language extensions. We validate our approach by case studies that demonstrate three fundamentally different ways to extend or adapt the host language syntax and semantics." links: "url": "http://scg.unibe.ch/archive/papers/Reng10aEmbeddingLanguages.pdf" tags: - "embedded languages" - "semantics" - "case study" - "helvetia" - "debugging" - "compiler" - "DSL" - "extensible language" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/Reng10a" cites: 41 citedby: 1 booktitle: "Proceedings of the 24th European Conference on Object-Oriented Programming (ECOOP'10)" volume: "6183" series: "LNCS" publisher: "Springer-Verlag" isbn: "978-3-642-14106-5" kind: "inproceedings" key: "Reng10a" - title: "Extensible programming for the 21st century" author: - name: "Gregory V. Wilson" link: "https://researchr.org/alias/gregory-v.-wilson" year: "2004" doi: "http://doi.acm.org/10.1145/1039511.1039534" abstract: "Is an open, more flexible programming environment just around the corner? In his keynote address at OOPSLA '98 (Object-Oriented Programming, Systems, Languages, and Applications), Sun Microsystems Fellow Guy L. Steele Jr. said, \"From now on, a main goal in designing a language should be to plan for growth.\" Functions, user-defined types, operator overloading, and generics (such as C++ templates) are no longer enough: tomorrow's languages must allow programmers to add entirely new kinds of information to programs, and control how it is processed." links: doi: "http://doi.acm.org/10.1145/1039511.1039534" tags: - "control systems" - "programming languages" - "object-oriented programming" - "meta programming" - "generic programming" - "type system" - "source-to-source" - "C++" - "programming" - "subject-oriented programming" - "Meta-Environment" - "extensible language" - "feature-oriented programming" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Wilson04%3A2" cites: 0 citedby: 0 journal: "ACM Queue" volume: "2" number: "9" pages: "48-57" kind: "article" key: "Wilson04:2" - title: "MontiCore: Modular Development of Textual Domain Specific Languages" author: - name: "Holger Krahn" link: "https://researchr.org/alias/holger-krahn" - name: "Bernhard Rumpe" link: "http://www.se-rwth.de/~rumpe/" - name: "Steven Völkel" link: "https://researchr.org/alias/steven-v%C3%B6lkel" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69824-1_17" abstract: " Reuse is a key technique for a more efficient development and ensures the quality of the results. In object technology explicit encapsulation, interfaces, and inheritance are well-known principles for independent development that enable combination and reuse of developed artifacts. In this paper we apply modularity concepts for domain specific languages (DSLs) and discuss how they help to design new languages by extending existing ones and composing fragments to new DSLs. We use an extended grammar format with appropriate tool support that avoids redefinition of existing functionalities by introducing language inheritance and embedding as first class artifacts in a DSL definition. Language embedding and inheritance is not only assisted by the parser, but also by the editor, and algorithms based on tree traversal like context checkers, pretty printers, and code generators. We demonstrate that compositional engineering of new languages becomes a useful concept when starting to define project-individual DSLs using appropriate tool support. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69824-1_17" tags: - "parsing algorithm" - "rule-based" - "traversal" - "language engineering" - "composition" - "language design" - "principles" - "reuse" - "DSL" - "context-aware" - "Meta-Environment" - "parsing" - "design" - "meta-objects" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/KrahnRV08" cites: 35 citedby: 3 pages: "297-315" booktitle: "Objects, Components, Models and Patterns, 46th International Conference, TOOLS EUROPE 2008, Zurich, Switzerland, June 30 - July 4, 2008. Proceedings" editor: - name: "Richard F. Paige" link: "http://www-users.cs.york.ac.uk/~paige/" - name: "Bertrand Meyer" link: "http://se.ethz.ch/~meyer/" volume: "11" series: "Lecture Notes in Business Information Processing" publisher: "Springer" isbn: "978-3-540-69823-4" kind: "inproceedings" key: "KrahnRV08" - title: "Sequences as a basis for pattern language composition" author: - name: "Ronald Porter" link: "https://researchr.org/alias/ronald-porter" - name: "James Coplien" link: "https://researchr.org/alias/james-coplien" - name: "Tiffany Winn" link: "https://researchr.org/alias/tiffany-winn" year: "2005" doi: "http://dx.doi.org/10.1016/j.scico.2004.11.014" links: doi: "http://dx.doi.org/10.1016/j.scico.2004.11.014" tags: - "pattern language" - "composition" researchr: "https://researchr.org/publication/PorterCW05" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "56" number: "1-2" pages: "231-249" kind: "article" key: "PorterCW05" - title: "Growing a Language" author: - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" year: "1999" researchr: "https://researchr.org/publication/Steele99" cites: 0 citedby: 2 journal: "Higher-Order and Symbolic Computation" volume: "12" number: "3" pages: "221-236" kind: "article" key: "Steele99" - title: "The Dylan reference manual: the definitive guide to the new object-oriented dynamic language" author: - name: "A. Shalit" link: "https://researchr.org/alias/a.-shalit" year: "1996" researchr: "https://researchr.org/publication/Shalit1996" cites: 0 citedby: 1 publisher: "Addison Wesley Longman Publishing Co., Inc." kind: "book" key: "Shalit1996" - title: "ScalaQL: Language-Integrated Database Queries for Scala" author: - name: "Daniel Spiewak" link: "http://www.cs.uwm.edu/~dspiewak/" - name: "Tian Zhao" link: "http://jiangxi.cs.uwm.edu/" year: "2009" abstract: "One of the most ubiquitous elements of modern computing is the relational database. Very few modern applications are created without some sort of database backend. Unfortunately, relational database concepts are fundamentally very different from those used in general-purpose programming languages. This creates an impedance mismatch between the the application and the database layers. One solution to this problem which has been gaining traction in the .NET family of languages is Language-Integrated Queries (LINQ). That is, the embedding of database queries within application code in a way that is statically checked and type safe. Unfortunately, certain language changes or core design elements were necessary to make this embedding possible. We present a framework which implements this concept of type safe embedded queries in Scala without any modifications to the language itself. The entire framework is implemented by leveraging existing language features (particularly for-comprehensions)." tags: - "programming languages" - "program comprehension" - "Scala" - "application framework" - "relational database" - "language design" - "programming" - "database" - "design" - "query language" researchr: "https://researchr.org/publication/Spiewak%3A2009" cites: 0 citedby: 0 booktitle: "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" series: "Lecture Notes in Computer Science" publisher: "Springer" kind: "inproceedings" key: "Spiewak:2009" - title: "Language and IDE Development, Modularization and Composition with MPS" author: - name: "Markus Völter" link: "http://www.voelter.de/" year: "2011" tags: - "composition" researchr: "https://researchr.org/publication/Voelter2011" cites: 0 citedby: 0 booktitle: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2011" series: "LNCS" publisher: "Springer" kind: "incollection" key: "Voelter2011" - title: "Montages Specifications of Realistic Programming Languages" author: - name: "Philipp W. Kutter" link: "https://researchr.org/alias/philipp-w.-kutter" - name: "Alfonso Pierantonio" link: "https://researchr.org/alias/alfonso-pierantonio" year: "1997" doi: "http://www.jucs.org/jucs_3_5/montages_specifications" links: doi: "http://www.jucs.org/jucs_3_5/montages_specifications" tags: - "programming languages" - "programming" researchr: "https://researchr.org/publication/KutterP97" cites: 0 citedby: 0 journal: "J. UCS" volume: "3" number: "5" pages: "416-442" kind: "article" key: "KutterP97" - title: "Embedded Software Development with Projectional Language Workbenches" author: - name: "Markus Völter" link: "http://www.voelter.de/" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-16129-2_4" links: doi: "http://dx.doi.org/10.1007/978-3-642-16129-2_4" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/models/Voelter10" tags: - "workbench" - "embedded software" - "language workbench" researchr: "https://researchr.org/publication/Voelter10" cites: 0 citedby: 0 pages: "32-46" booktitle: "Model Driven Engineering Languages and Systems - 13th International Conference, MODELS 2010, Oslo, Norway, October 3-8, 2010, Proceedings, Part II" editor: - name: "Dorina C. Petriu" link: "https://researchr.org/alias/dorina-c.-petriu" - name: "Nicolas Rouquette" link: "https://researchr.org/alias/nicolas-rouquette" - name: "Øystein Haugen" link: "https://researchr.org/alias/%C3%B8ystein-haugen" volume: "6395" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-16128-5" kind: "inproceedings" key: "Voelter10" - title: "Language Prototyping. An Algebraic Specification Approach" year: "1996" month: "September" tags: - "algebraic specification" - " algebra" - "systematic-approach" researchr: "https://researchr.org/publication/DHP%3A1996" cites: 0 citedby: 2 editor: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" volume: "5" series: "AMAST Series in Computing" address: "Singapore" publisher: "World Scientific" kind: "book" key: "DHP:1996" - title: "Syntax Definition for Language Prototyping" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1997" month: "September" abstract: "Language prototyping is the activity of designing and testing definitions of new or existing computer languages. An important aspect of a language definition is the definition of its syntax. The subject of this thesis are new formalisms and techniques that support the development and prototyping of syntax definitions. There are four main subjects: (1) Techniques for parsing and disambiguation of context-free languages. (2) Design and implementation of a new syntax definition formalism. (3) Design of a multi-level algebraic specification formalism. (4) Study of polymorphic syntax definition. " tags: - "syntax definition" - "SDF" - "syntax definition formalism" - "disambiguation" - "testing" - "language design" - "graph-rewriting" - "algebraic specification" - " algebra" - "context-aware" - "rewriting" - "parsing" - "design" - "scannerless parsing" - "ASF+SDF" - "SGLR" researchr: "https://researchr.org/publication/Visser97" cites: 0 citedby: 6 school: "University of Amsterdam" advisor: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" kind: "phdthesis" key: "Visser97" - title: "Introduction to Automata Theory, Languages, and Computation" author: - name: "J. E. Hopcroft" link: "https://researchr.org/alias/j.-e.-hopcroft" - name: " R. Motwani" link: "https://researchr.org/alias/r.-motwani" - name: " J. D. Ullman" link: "https://researchr.org/alias/j.-d.-ullman" year: "2006" tags: - "automata theory" - "e-science" researchr: "https://researchr.org/publication/HopcroftMU2006" cites: 0 citedby: 2 edition: "3rd ed. " address: "Boston, MA, USA" publisher: "Addison-Wesley" kind: "book" key: "HopcroftMU2006" - title: "Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1109/ICWE.2008.15" abstract: "In this paper, we present the extension of WebDSL, a domain-specific language for web application development, with abstractions for declarative definition of access control. The extension supports the definition of a wide range of access control policies concisely and transparently as a separate concern. In addition to regulating the access to pages and actions, access control rules are used to infer navigation options not accessible to the current user, preventing the presentation of inaccessible links. The extension is an illustration of a general approach to the design of domain-specific languages for different technical domains to support separation of concerns in application development, while preserving linguistic integration. This approach is realized by means of a transformational semantics that weaves separately defined aspects into an integrated implementation. " links: doi: "http://dx.doi.org/10.1109/ICWE.2008.15" "webdsl": "http://webdsl.org" tags: - "WebDSL" - "semantics" - "rule-based" - "separation of concerns" - "transformation language" - " action semantics" - "language design" - "weaving" - "rules" - "web applications" - "DSL" - "abstraction" - "access control policies" - "access control" - "aspect weaving" - "design" - "role-based access control" - "systematic-approach" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenV08" cites: 26 citedby: 7 pages: "175-188" booktitle: "Proceedings of the Eighth International Conference on Web Engineering, ICWE 2008, 14-18 July 2008, Yorktown Heights, New York, USA" editor: - name: "Daniel Schwabe" link: "https://researchr.org/alias/daniel-schwabe" - name: "Francisco Curbera" link: "https://researchr.org/alias/francisco-curbera" - name: "Paul Dantzig" link: "https://researchr.org/alias/paul-dantzig" publisher: "IEEE" isbn: "978-0-7695-3261-5" kind: "inproceedings" key: "GroenewegenV08" - title: "Heterogeneous Coupled Evolution of Software Languages" author: - name: "Sander Vermolen" link: "http://www.sandervermolen.nl" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_44" abstract: "As most software artifacts, meta-models can evolve. Their evolution requires conforming models to co-evolve along with them. Coupled evolution supports this. Its applicability is not limited to the modeling domain. Other domains are for example evolving grammars or database schemas. Existing approaches to coupled evolution focus on a single, homogeneous domain. They solve the co-evolution problems locally and repeatedly. In this paper we present a systematic, heterogeneous approach to coupled evolution. It provides an automatically derived domain specific transformation language; a means of executing transformations at the top level; a derivation of the coupled bottom level transformation; and it allows for generic abstractions from elementary transformations. The feasibility of the architecture is evaluated by applying it to data model evolution." links: doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_44" tags: - "model-to-model transformation" - "software architecture" - "coupled" - "data-flow language" - "meta-model" - "XML" - "evolution" - "modeling language" - "heterogeneous" - "XML Schema" - "languages" - "modeling" - "transformation language" - "coupled evolution" - "architecture" - "language modeling" - "model" - "data-flow" - "software evolution" - "format evolution" - "source-to-source" - "model transformation" - "database" - "abstraction" - "software languages" - "Meta-Environment" - "systematic-approach" - "meta-objects" - "transformation" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/VermolenV08" cites: 0 citedby: 3 pages: "630-644" booktitle: "Model Driven Engineering Languages and Systems, 11th International Conference, MoDELS 2008, Toulouse, France, September 28 - October 3, 2008. Proceedings" editor: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: "Ileana Ober" link: "https://researchr.org/alias/ileana-ober" - name: "Jean-Michel Bruel" link: "https://researchr.org/alias/jean-michel-bruel" - name: "Axel Uhl" link: "https://researchr.org/alias/axel-uhl" - name: "Markus Völter" link: "http://www.voelter.de/" volume: "5301" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-87874-2" kind: "inproceedings" key: "VermolenV08" - title: "The disambiguation and scannerless parsing of complete character-level grammars for programming languages" author: - name: "Salomon, D.J." link: "https://researchr.org/alias/salomon%2C-d.j." - name: "Cormack, G.V." link: "https://researchr.org/alias/cormack%2C-g.v." year: "1995" tags: - "programming languages" - "completeness" - "disambiguation" - "programming" - "parsing" - "scannerless parsing" - "grammar" researchr: "https://researchr.org/publication/salomon-disambiguation" cites: 0 citedby: 1 institution: "Department of Computer Science, University of Manitoba" number: "95/06" address: "Winnipeg, Canada" kind: "techreport" key: "salomon-disambiguation" - title: "Monadic robotics" author: - name: "John Peterson" link: "https://researchr.org/alias/john-peterson" - name: "Gregory D. Hager" link: "https://researchr.org/alias/gregory-d.-hager" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331976" links: doi: "http://doi.acm.org/10.1145/331960.331976" tags: - "DSL" researchr: "https://researchr.org/publication/PetersonH99" cites: 0 citedby: 1 pages: "95-108" booktitle: "DSL" kind: "inproceedings" key: "PetersonH99" - title: "Precise Analysis of String Expressions" author: - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Anders Møller" link: "https://researchr.org/alias/anders-m%C3%B8ller" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" year: "2003" doi: "http://link.springer.de/link/service/series/0558/bibs/2694/26940001.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2694/26940001.htm" tags: - "analysis" researchr: "https://researchr.org/publication/ChristensenMS03" cites: 0 citedby: 1 pages: "1-18" booktitle: "Static Analysis, 10th International Symposium, SAS 2003, San Diego, CA, USA, June 11-13, 2003, Proceedings" editor: - name: "Radhia Cousot" link: "https://researchr.org/alias/radhia-cousot" volume: "2694" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-40325-6" kind: "inproceedings" key: "ChristensenMS03" - title: "The Java Virtual Machine Specification" author: - name: "Tim Lindholm" link: "https://researchr.org/alias/tim-lindholm" - name: "Frank Yellin" link: "https://researchr.org/alias/frank-yellin" year: "1997" links: successor: "https://researchr.org/publication/LindholmY99" "online version": "http://java.sun.com/docs/books/jvms/first_edition/html/VMSpecTOC.doc.html" tags: - "Java" - "JVM" researchr: "https://researchr.org/publication/LindholmY97" cites: 0 citedby: 2 publisher: "Addison-Wesley" isbn: "0-201-63452-X" kind: "book" key: "LindholmY97" - title: "Program Transformation with Scoped Dynamic Rewrite Rules" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Arthur van Dam" link: "https://researchr.org/profile/arthurvandam/publications" - name: "Karina Olmos" link: "https://researchr.org/profile/karinaolmos/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "https://content.iospress.com/articles/fundamenta-informaticae/fi69-1-2-06" abstract: "The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed by languages supporting user-definable rewriting strategies. The second problem is addressed by the extension of rewriting strategies with scoped dynamic rewrite rules. Dynamic rules are defined at run-time and can access variables available from their definition context. Rules defined within a rule scope are automatically retracted at the end of that scope. In this paper, we explore the design space of dynamic rules, and their application to transformation problems. The technique is formally defined by extending the operational semantics underlying the program transformation language Stratego, and illustrated by means of several program transformations in Stratego, including constant propagation, bound variable renaming, dead code elimination, function inlining, and function specialization. " links: doi: "https://content.iospress.com/articles/fundamenta-informaticae/fi69-1-2-06" "technical report": "http://www.cs.uu.nl/research/techreps/UU-CS-2005-005.html" tags: - "programming languages" - "semantics" - "rule-based" - "formal semantics" - "graph transformation" - "dynamic rewrite rules" - "Stratego/XT" - "transformation language" - "term rewriting" - "language design" - "graph-rewriting" - "rules" - "operational semantics" - "context-aware" - "access control" - "rewriting" - "design" - "role-based access control" - "rewriting strategies" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/BravenboerDOV06" cites: 0 citedby: 4 journal: "Fundamenta Informaticae" volume: "69" number: "1-2" pages: "123-178" kind: "article" key: "BravenboerDOV06" - title: "J% : Integrating Domain-Specific Languages with Java" author: - name: "Vassilios Karakoidas" link: "http://gaijin.dmst.aueb.gr/" - name: "Diomidis Spinellis" link: "http://www.dmst.aueb.gr/dds" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/PCI.2009.26" abstract: "J% (J-mod), is a Java language extension that supports integration with Domain-Specific Languages. The inte- gration is realized through an architecture that permits external modules to support DSLs. The DSL statements can be syntacti- cally checked at compile-time. An additional facility allows the static type checking of Java variables that appear within DSL code. To support this process each DSL module comes as a library that is used both at compile time and during program execution." links: doi: "http://doi.ieeecomputersociety.org/10.1109/PCI.2009.26" tags: - "programming languages" - "Java" - "language extension" - "architecture" - "type checking" - "compiler" - "DSL" - "domain-specific language" researchr: "https://researchr.org/publication/KarakoidasS09" cites: 22 citedby: 0 pages: "109-113" booktitle: "PCI 2009, 13th Panhellenic Conference on Informatics, 10-12 September 2009, Corfu, Greece" editor: - name: "Stefanos Gritzalis" link: "https://researchr.org/alias/stefanos-gritzalis" - name: "Dimitris Plexousakis" link: "https://researchr.org/alias/dimitris-plexousakis" - name: "Dionisios N. Pnevmatikatos" link: "https://researchr.org/alias/dionisios-n.-pnevmatikatos" publisher: "IEEE Computer Society" isbn: "978-0-7695-3788-7" kind: "inproceedings" key: "KarakoidasS09" - title: "A Special-Purpose Language for Picture-Drawing" author: - name: "Samuel N. Kamin" link: "https://researchr.org/alias/samuel-n.-kamin" - name: "David Hyatt" link: "https://researchr.org/alias/david-hyatt" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/kamin.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/kamin.html" tags: - "DSL" researchr: "https://researchr.org/publication/KaminH97" cites: 0 citedby: 2 pages: "297-312" booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "KaminH97" - title: "Towards reasonability properties for access-control policy languages" author: - name: "Michael Carl Tschantz" link: "https://researchr.org/alias/michael-carl-tschantz" - name: "Shriram Krishnamurthi" link: "http://www.cs.brown.edu/~sk/" year: "2006" doi: "http://doi.acm.org/10.1145/1133058.1133081" links: doi: "http://doi.acm.org/10.1145/1133058.1133081" tags: - "access control policies" - "access control" researchr: "https://researchr.org/publication/TschantzK06" cites: 0 citedby: 1 pages: "160-169" booktitle: "SACMAT 2006,11th ACM Symposium on Access Control Models and Technologies, Lake Tahoe, California, USA, June 7-9, 2006, Proceedings" editor: - name: "David F. Ferraiolo" link: "https://researchr.org/alias/david-f.-ferraiolo" - name: "Indrakshi Ray" link: "https://researchr.org/alias/indrakshi-ray" publisher: "ACM" isbn: "1-59593-353-0" kind: "inproceedings" key: "TschantzK06" - title: "Parse Table Composition" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_6" abstract: "Module systems, separate compilation, deployment of binary components, and dynamic linking have enjoyed wide acceptance in programming languages and systems. In contrast, the syntax of languages is usually defined in a non-modular way, cannot be compiled separately, cannot easily be combined with the syntax of other languages, and cannot be deployed as a component for later composition. Grammar formalisms that do support modules use whole program compilation. Current extensible compilers focus on source-level extensibility, which requires users to compile the compiler with a specific configuration of extensions. A compound parser needs to be generated for every combination of extensions. The generation of parse tables is expensive, which is a particular problem when the composition configuration is not fixed to enable users to choose language extensions. In this paper we introduce an algorithm for parse table composition to support separate compilation of grammars to parse table components. Parse table components can be composed (linked) efficiently at runtime, i.e. just before parsing. While the worst-case time complexity of parse table composition is exponential (like the complexity of parse table generation itself), for realistic language combination scenarios involving grammars for real languages, our parse table composition algorithm is an order of magnitude faster than computation of the parse table for the combined grammars. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_6" tags: - "parsing algorithm" - "programming languages" - "deployment" - "syntax definition" - "SDF" - "composition" - "source-to-source" - "parse table composition" - "compiler" - "programming" - "language composition" - "parsing" - "extensible language" - "ASF+SDF" - "open-source" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerV08" cites: 0 citedby: 0 pages: "74-94" booktitle: "Software Language Engineering, First International Conference, SLE 2008, Toulouse, France, September 29-30, 2008. Revised Selected Papers" editor: - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "5452" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00433-9" kind: "inproceedings" key: "BravenboerV08" - title: "On the representation of roles in object-oriented and conceptual modelling" author: - name: "Friedrich Steimann" link: "http://www.fernuni-hagen.de/ps/team/friedrich.steimann.shtml" year: "2000" doi: "http://dx.doi.org/10.1016/S0169-023X(00)00023-9" abstract: "The duality of objects and relationships is so deeply embedded in our thinking that almost all modelling languages include it as a fundamental distinction. Yet there is evidence that the two are naturally complemented by a third, equally fundamental notion: that of roles. Although definitions of the role concept abound in the literature, we maintain that only few are truly original, and that even fewer acknowledge the intrinsic role of roles as intermediaries between relationships and the objects that engage in them. After discussing the major families of role conceptualizations, we present our own basic definition and demonstrate how it naturally accounts for many modelling issues, including multiple and dynamic classification, object collaboration, polymorphism, and substitutability." links: doi: "http://dx.doi.org/10.1016/S0169-023X(00)00023-9" "preprint": "http://www.kbs.uni-hannover.de/~steimann/published/dke.pdf " tags: - "conceptual modeling" - "classification" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "ORM" - "object-role modeling" - "object-oriented modeling" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Steimann00%3A1" cites: 0 citedby: 0 journal: "Data \\& Knowledge Engineering" volume: "35" number: "1" pages: "83-106" kind: "article" key: "Steimann00:1" - title: "Fundamental Limitations in Domain-Specific Language Evolution" author: - name: "Jonathan Sprinkle" link: "https://researchr.org/alias/jonathan-sprinkle" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" year: "2009" month: "August" abstract: "In this paper we address language engineering issues surrounding domain-specific modeling languages (DSMLs). By definition, such languages track the domain, meaning that changesto the domain require changes to the DSML in order toprovide an intuitive specification of domain-specific programs or models. For this work, our primary focus is on fundamental limitations that affectthe preservation of semantics during domain model evolution. Wespecifically address fundamental limitations in semantics-preservingtransformations, and/or the implementation of algorithms that specify suchtransformations. This work has profound implications for language engineers who are planning for the maintenance of models, or designing model transformations for the purpose of preserving semantics. We provide abrief representative example from the discipline of hybrid systems, where suchresults can be interpreted." links: "url": "http://www.ece.arizona.edu/~sprinkjm/wiki/uploads/Publications/sprinkle-tse2009-domainevolution-submitted.pdf" tags: - "programming languages" - "model-to-model transformation" - "semantics" - "transformation engineering" - "meta programming" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "language modeling" - "source-to-source" - "maintenance" - "model-driven engineering" - "transformation system" - "model transformation" - "Meta-Environment" - "higher-order transformations" - "transformation" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/Sprinkle%3ATSE%3A2009" cites: 0 citedby: 0 institution: "University of Arizona" number: "TR-090831" address: "1230 E. Speedway Blvd., Bldg. 104" kind: "techreport" key: "Sprinkle:TSE:2009" - title: "Requirements for a Composition Language" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Theo Dirk Meijler" link: "http://nl.linkedin.com/in/theodirkmeijler" year: "1994" abstract: "The key requirement for open systems is that they be flexible, or recomposable. This suggests that they must first of all be composable. Object-oriented techniques help by allowing applications to be viewed as compositions of collaborating objects, but are limited in supporting other kinds of abstractions that may have finer or coarser granularity than objects. A composition language supports the technical requirements of a component-oriented development approach by shifting emphasis from programming and inheritance of classes to specification and composition of components. Objects are viewed as processes, and components are abstractions over the object space. An application is viewed as an explicit composition of software components. By making software architectures explicit and manipulable, we expect to better support application evolution and flexibility. In this position paper we will elaborate our requirements and outline a strategy for the design and implementation of a composition language for the development of open systems." tags: - "programming languages" - "object-oriented programming" - "meta programming" - "software architecture" - "software components" - "architecture" - "composition" - "software component" - "language design" - "software evolution" - "source-to-source" - "programming" - "subject-oriented programming" - "abstraction" - "Meta-Environment" - "design" - "systematic-approach" - "feature-oriented programming" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/NierstraszM94" cites: 42 citedby: 0 pages: "147-161" booktitle: "Object-Based Models and Languages for Concurrent Systems, ECOOP 94 Workshop on Models and Languages for Coordination of Parallelism and Distribution, Bologna, Italy, July 5, 1994, Selected Papers" editor: - name: "Paolo Ciancarini" link: "https://researchr.org/alias/paolo-ciancarini" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Akinori Yonezawa" link: "https://researchr.org/alias/akinori-yonezawa" volume: "924" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-59450-7" kind: "inproceedings" key: "NierstraszM94" - title: "Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" year: "1997" abstract: "The use of a domain-specific language can help to develop readable and maintainable applications in that domain with little effort. Alternatively, the same aims can be achieved by setting up an object-oriented framework. For the domain of financial engineering, independently both an object-oriented framework and a domain-specific language have been developed. We use this opportunity to contrast these two, to highlight the differences and to discuss opportunities for mutual benefits. " tags: - "application framework" - "case study" - "language engineering" - "little language" - "Meta-Environment" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Deursen97" cites: 0 citedby: 1 booktitle: "Proceedings Smalltalk and Java in Industry and Academia, STJA'97" organization: "Ilmenau Technical University" kind: "inproceedings" key: "Deursen97" - title: "A case for source-level transformations in MATLAB" author: - name: "Vijay Menon" link: "https://researchr.org/alias/vijay-menon" - name: "Keshav Pingali" link: "https://researchr.org/alias/keshav-pingali" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331972" abstract: "In this paper, we discuss various performance overheads in MATLAB codes and propose different program transformation strategies to overcome them. In particular, we demonstrate that high-level source-to-source transformations of MATLAB programs are effective in obtaining substantial performance gains regardless of whether programs are interpreted or later compiled into C or FORTRAN. We argue that automating such transformations provides a promising area of future research." links: doi: "http://doi.acm.org/10.1145/331960.331972" tags: - "model-to-model transformation" - "meta programming" - "meta-model" - "source-to-source" - "C++" - "compiler" - "model transformation" - "DSL" - "Meta-Environment" - "open-source" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/MenonP99" cites: 0 citedby: 1 pages: "53-65" booktitle: "DSL" kind: "inproceedings" key: "MenonP99" - title: "Implementing Feature Variability for Models and Code with Projectional Language Workbenches " author: - name: "Markus Völter" link: "http://www.voelter.de/" year: "2010" abstract: "Product line engineering deals with managing and implementing the variability among a set of related products. We distinguish between two kinds of variability: configuration and customization. Customization variability can be described using programming language code or creative construction DSLs, whereas configuration variability is described using configuration based approaches, such as feature models. Many product lines have both kinds of variability, and they need to be integrated efficiently. This paper describes an approach for product line engineering using projectional language workbenches. These represent code and models with the same fundamental technology, enabling the mixing of models and code. They make the tight integration between several domain-specific languages possible and simple. Since they can store arbitrary information in models, it is possible to overlay configuration variability over customization variability (i.e. apply feature model-based configuration to code and models). Because of the projectional approach to editing, programs can be shown with or without the dependencies on feature models, they can even be rendered (and edited) for a specific variant. This approach leads to highly integrated and productive tools for product line development. The paper explains the approach, outlines the implementation of a prototype tool based on Jetbrains MPS and illustrates the benefits using a small product line for embedded systems. " tags: - "Domain-specific languages" - "programming languages" - " feature modeling" - "workbench" - "object-oriented programming" - "rule-based" - "meta programming" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "language modeling" - "composition" - "product line engineering" - "model-driven development" - "model-driven engineering" - "object-role modeling" - "information models" - "DSL" - "programming" - "language workbench" - "Meta-Environment" - "language composition" - "product line" - "systematic-approach" - "feature-oriented programming" - "domain-specific language" researchr: "https://researchr.org/publication/Voelter2010" cites: 0 citedby: 0 kind: "inproceedings" key: "Voelter2010" - title: "Code Composition as an Implementation Language for Compilers" author: - name: "James M. Stichnoth" link: "https://researchr.org/alias/james-m.-stichnoth" - name: "Thomas R. Gross" link: "https://researchr.org/alias/thomas-r.-gross" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/stichnoth.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/stichnoth.html" tags: - "composition" - "compiler" - "DSL" researchr: "https://researchr.org/publication/StichnothG97" cites: 0 citedby: 1 pages: "119-132" booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "StichnothG97" - title: "Component-Oriented Programming" author: - name: "Wolfgang Weck" link: "https://researchr.org/alias/wolfgang-weck" - name: "Ralf Reussner" link: "https://researchr.org/alias/ralf-reussner" - name: "Clemens A. Szyperski" link: "https://researchr.org/alias/clemens-a.-szyperski" year: "2006" doi: "http://dx.doi.org/10.1007/978-3-540-71774-4_12" links: doi: "http://dx.doi.org/10.1007/978-3-540-71774-4_12" tags: - "object-oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/WeckRS06" cites: 0 citedby: 0 pages: "106-116" booktitle: "Object-Oriented Technology, ECOOP 2006 Workshop Reader, ECOOP 2006 Workshops, Nantes, France, July 3-7, 2006, Final Reports" editor: - name: "Mario Südholt" link: "https://researchr.org/alias/mario-s%C3%BCdholt" - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" volume: "4379" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-71772-0" kind: "inproceedings" key: "WeckRS06" - title: "Transformations for Abstractions" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2005" month: "October" doi: "http://dx.doi.org/10.1109/SCAM.2005.26" abstract: "The transformation language Stratego provides high-level abstractions for implementation of a wide range of transformations. Our aim is to integrate transformation in the software development process and make it available to programmers. This requires the transformations provided by the programming environment to be extensible. This paper presents a case study in the implementation of extensible programming environments using Stratego, by developing a small collection of language extensions and several typical transformations for these languages." links: doi: "http://dx.doi.org/10.1109/SCAM.2005.26" "pdf": "http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-034.pdf" "technical report": "http://www.cs.uu.nl/research/techreps/UU-CS-2005-034.html" "doi": "http://dx.doi.org/10.1109/SCAM.2005.26" tags: - "programming languages" - "meta programming" - "case study" - "Stratego/XT" - "transformation language" - "extensible languages" - "programming" - "abstraction" - "Meta-Environment" - "extensible language" - "interpreters" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/Visser05-SCAM" cites: 0 citedby: 1 booktitle: "5th IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2005), 30 September - 1 October 2005, Budapest, Hungary" publisher: "IEEE Computer Society" isbn: "0-7695-2292-0" kind: "inproceedings" key: "Visser05-SCAM" - title: "Inter-language reflection: A conceptual model and its implementation" author: - name: "Kris Gybels" link: "https://researchr.org/alias/kris-gybels" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Maja D'Hondt" link: "http://ssel.vub.ac.be/ssel/about/members/majadhondt" year: "2006" doi: "http://dx.doi.org/10.1016/j.cl.2005.10.003" abstract: "Meta programming is the act of reasoning about a computational system. For example, a program in Prolog can reason about a program written in Smalltalk. Reflection is a more powerful form of meta programming where the same language is used to reason about, and act upon, itself in a causally connected way. Thus on the one hand we have meta programming that allows different languages or paradigms to be used, but without causal connection, while on the other hand we have reflection that offers causal connection but only for a single language. This paper combines both and presents inter-language reflection that allows one language to reason about and change in a causally connected way another language and vice versa. The fundamental aspects of inter-language reflection and the language symbiosis used therein, are discussed. Moreover the implementation of two symbiotic reflective languages is discussed: Agora/Java and SOUL/Smalltalk." links: doi: "http://dx.doi.org/10.1016/j.cl.2005.10.003" tags: - "programming languages" - "Prolog" - "Java" - "meta programming" - "meta-model" - "modeling language" - "computational reflection" - "language modeling" - "programming paradigms" - "programming" - "Meta-Environment" - "reflection" - "meta-objects" researchr: "https://researchr.org/publication/GybelsWDD06" cites: 0 citedby: 1 journal: "Computer Languages, Systems \\& Structures" volume: "32" number: "2-3" pages: "109-124" kind: "article" key: "GybelsWDD06" - title: "Extending grammars and metamodels for reuse: the Reuseware approach" author: - name: "Jakob Henriksson" link: "http://st.inf.tu-dresden.de" - name: "Florian Heidenreich" link: "http://fheidenreich.de/work/" - name: "Jendrik Johannes" link: "http://jjohannes.de" - name: "Steffen Zschaler" link: "http://www.steffen-zschaler.de/" - name: "Uwe Aßmann" link: "http://st.inf.tu-dresden.de" year: "2008" doi: "10.1049/iet-sen:20070060" links: "url": "http://link.aip.org/link/?SEN/2/165/1" tags: - "reuse" - "systematic-approach" - "grammar" researchr: "https://researchr.org/publication/Henriksson-08" cites: 0 citedby: 0 journal: "IET Software" volume: "2" number: "3" kind: "article" key: "Henriksson-08" - title: "Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages" author: - name: "Terence John Parr" link: "http://www.cs.usfca.edu/~parrt/" year: "2010" doi: "http://pragprog.com/titles/tpdsl/language-implementation-patterns" abstract: "Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science—ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages." links: doi: "http://pragprog.com/titles/tpdsl/language-implementation-patterns" tags: - "programming languages" - "design science" - "meta programming" - "data-flow language" - "pattern language" - "meta-model" - "interpreter" - "modeling language" - "language modeling" - "language design" - "data-flow programming" - "data-flow" - "source-to-source" - "e-science" - "ANTLR" - "DSL" - "programming" - "software languages" - "Meta-Environment" - "compilers" - "design" - "interpreters" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/Parr%3A2010" cites: 0 citedby: 0 publisher: "The Pragmatic Bookshelf" kind: "book" key: "Parr:2010" - title: "Modular Domain Specific Languages and Tools" author: - name: "Paul Hudak" link: "http://www.cs.yale.edu/homes/hudak/" year: "1998" month: "jun" doi: "10.1109/ICSR.1998.685738" abstract: "A domain specific language (DSL) allows one to develop software for a particular application domain quickly and effectively, yielding programs that are easy to understand, reason about, and maintain. On the other hand, there may be a significant overhead in creating the infrastructure needed to support a DSL. To solve this problem, a methodology is described for building domain specific embedded languages (DSELs), in which a DSL is designed within an existing, higher-order and typed, programming language such as Haskell or ML. In addition, techniques are described for building modular interpreters and tools for DSELs. The resulting methodology facilitates reuse of syntax semantics, implementation code, software tools, as well as look-and-feel" tags: - "programming languages" - "semantics" - "interpreter" - "embedded software" - "language design" - "Haskell" - "reuse" - "DSL" - "programming" - "domain-specific language" researchr: "https://researchr.org/publication/Hudak98" cites: 0 citedby: 1 booktitle: "Proceedings of the 5th International Conference on Software Reuse, ICSR '98" address: "Washington, DC, USA" publisher: "IEEE Computer Society" isbn: "0-8186-8377-5" kind: "inproceedings" key: "Hudak98" - title: "Lrc - A Generator for Incremental Language-Oriented Tools" author: - name: "Matthijs F. Kuiper" link: "https://researchr.org/alias/matthijs-f.-kuiper" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" year: "1998" tags: - "incremental" researchr: "https://researchr.org/publication/KuiperS98" cites: 0 citedby: 1 pages: "298-301" booktitle: "Compiler Construction, 7th International Conference, CC 98, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 98, Lisbon, Portugal, March 28 - April 4, 1998, Proceedings" editor: - name: "Kai Koskimies" link: "https://researchr.org/alias/kai-koskimies" volume: "1383" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-64304-4" kind: "inproceedings" key: "KuiperS98" - title: "Component-Based DSL Development" author: - name: "Thomas Cleenewerck" link: "https://researchr.org/alias/thomas-cleenewerck" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2830&spage=245" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2830&spage=245" tags: - "rule-based" - "DSL" researchr: "https://researchr.org/publication/Cleenewerck03" cites: 0 citedby: 1 pages: "245-264" booktitle: "Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings" editor: - name: "Frank Pfenning" link: "http://www.cs.cmu.edu/~fp/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" volume: "2830" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-20102-5" kind: "inproceedings" key: "Cleenewerck03" - title: "Xoc, an extension-oriented compiler for systems programming" author: - name: "Russ Cox" link: "https://researchr.org/alias/russ-cox" - name: "Tom Bergan" link: "https://researchr.org/alias/tom-bergan" - name: "Austin T. Clements" link: "https://researchr.org/alias/austin-t.-clements" - name: "M. Frans Kaashoek" link: "https://researchr.org/alias/m.-frans-kaashoek" - name: "Eddie Kohler" link: "https://researchr.org/alias/eddie-kohler" year: "2008" doi: "http://doi.acm.org/10.1145/1346281.1346312" links: doi: "http://doi.acm.org/10.1145/1346281.1346312" tags: - "object-oriented programming" - "compiler" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/CoxBCKK08" cites: 0 citedby: 1 pages: "244-254" booktitle: "Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2008, Seattle, WA, USA, March 1-5, 2008" editor: - name: "Susan J. Eggers" link: "https://researchr.org/alias/susan-j.-eggers" - name: "James R. Larus" link: "https://researchr.org/alias/james-r.-larus" publisher: "ACM" isbn: "978-1-59593-958-6" kind: "inproceedings" key: "CoxBCKK08" - title: "Repleo: a syntax-safe template engine" author: - name: "Jeroen Arnoldus" link: "http://www.repleo.nl/" - name: "Jeanot Bijpost" link: "https://researchr.org/alias/jeanot-bijpost" - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" year: "2007" doi: "http://doi.acm.org/10.1145/1289971.1289977" abstract: "Templates are a very common solution to generate code. They are used for different tasks like rendering webpages, creating Java Beans and so on. Most template systems have no notion of the object language and just generate text. The drawback of this approach is the possibility to generate syntactical incorrect code. This can lead to all kinds of annoying errors. In this paper we present an approach for a syntax safe template engine. Syntax safety guarantees that the generated code can be correctly parsed. To ensure this we use the object language grammar to evaluate the template." links: doi: "http://doi.acm.org/10.1145/1289971.1289977" tags: - "Java" - "template engine" - "Meta-Environment" - "parsing" - "systematic-approach" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/ArnoldusBB07" cites: 0 citedby: 1 pages: "25-32" booktitle: "Generative Programming and Component Engineering, 6th International Conference, GPCE 2007" editor: - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Julia L. Lawall" link: "http://www.diku.dk/hjemmesider/ansatte/julia/" address: "Salzburg, Austria" publisher: "ACM" isbn: "978-1-59593-855-8" kind: "inproceedings" key: "ArnoldusBB07" - title: "Evolving an embedded domain-specific language in Java" author: - name: "Steve Freeman" link: "https://researchr.org/alias/steve-freeman" - name: "Nat Pryce" link: "https://researchr.org/alias/nat-pryce" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176735" links: doi: "http://doi.acm.org/10.1145/1176617.1176735" tags: - "Java" - "domain-specific language" researchr: "https://researchr.org/publication/FreemanP06" cites: 0 citedby: 1 pages: "855-865" booktitle: "Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "https://researchr.org/alias/peri-l.-tarr" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-491-X" kind: "inproceedings" key: "FreemanP06" - title: "Independently extensible solutions to the expression problem" author: - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" - name: " M. Zenger" link: "https://researchr.org/alias/m.-zenger" year: "2005" researchr: "https://researchr.org/publication/OderskyZ2005" cites: 0 citedby: 1 booktitle: "Proceedings of the Twelth International Workshop on Foundations of Object-Oriented Languages (FOOL 12)" kind: "inproceedings" key: "OderskyZ2005" - title: "Language Boxes: Bending the Host Language with Modular Language Changes" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2009" abstract: "As domain-specific modeling begins to attract widespread acceptance, pressure is increasing for the development of new domain-specific languages. Unfortunately these DSLs typically conflict with the grammar of the host language, making it difficult to compose hybrid code except at the level of strings; few mechanisms (if any) exist to control the scope of usage of multiple DSLs; and, most seriously, existing host language tools are typically unaware of the DSL extensions, thus hampering the development process. Language boxes address these issues by offering a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and highlighting, and (iii) scoping rules to control visibility of language extensions. We describe the design and implementation of language boxes, and show with the help of several examples how modular extensions can be introduced to a host language and environment." note: "To Appear" links: "pdf": "http://scg.unibe.ch/archive/papers/Reng09cLanguageBoxes.pdf" tags: - "model-to-model transformation" - "rule-based" - "meta-model" - "modeling language" - "modeling" - "transformation language" - "language modeling" - "composition" - "language design" - "model-driven development" - "source-to-source" - "rules" - "model transformation" - "DSL" - "Meta-Environment" - "design" - "process modeling" - "transformation" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/Reng09c" cites: 27 citedby: 2 booktitle: "Software Language Engineering: Second International Conference, SLE 2009, Denver, Colorado, October 5-6, 2009" series: "LNCS" publisher: "Springer" kind: "inproceedings" key: "Reng09c" - title: "Stratego/XT 0.17. A language and toolset for program transformation" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.scico.2007.11.003" abstract: "Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, and tools for generating such components from declarative specifications. Complete program transformation systems are composed from these components." links: doi: "http://dx.doi.org/10.1016/j.scico.2007.11.003" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-011.pdf" "stratego/xt": "http://strategoxt.org" tags: - "control systems" - "programming languages" - "object-oriented programming" - "concrete object syntax" - "reusable components" - "rule-based" - "completeness" - "meta programming" - "pattern language" - "graph transformation" - "Stratego/XT" - "transformation language" - "reuse" - "graph-rewriting" - "rules" - "transformation system" - "DSL" - "programming" - "subject-oriented programming" - "context-aware" - "abstraction" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/BravenboerKVV08" cites: 0 citedby: 7 journal: "Science of Computer Programming" volume: "72" number: "1-2" pages: "52-70" kind: "article" key: "BravenboerKVV08" - title: "KHEPERA: A System for Rapid Implementation of Domain Specific Languages" author: - name: "Rickard E. Faith" link: "https://researchr.org/alias/rickard-e.-faith" - name: "Lars S. Nyland" link: "https://researchr.org/alias/lars-s.-nyland" - name: "Jan Prins" link: "https://researchr.org/alias/jan-prins" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/faith.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/faith.html" tags: - "language transformation" - "transformation language" - "transformation system" - "e-science" - "DSL" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/FaithNP97" cites: 0 citedby: 2 booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "FaithNP97" - title: "Domain-Specific Automatic Programming" author: - name: "David R. Barstow" link: "https://researchr.org/alias/david-r.-barstow" year: "1985" tags: - "programming" researchr: "https://researchr.org/publication/Barstow85-1" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "11" number: "11" pages: "1321-1336" kind: "article" key: "Barstow85-1" - title: "A language workbench in action - MPS" author: - name: "Martin Fowler" link: "http://martinfowler.com/" year: "2005" tags: - "workbench" - "language workbench" researchr: "https://researchr.org/publication/Fowler2005-MPS" cites: 0 citedby: 0 howpublished: "http: //martinfowler.com/articles/mpsAgree.html" kind: "misc" key: "Fowler2005-MPS" - title: "A Software Composition Language and Its Implementation" author: - name: "Dietrich Birngruber" link: "https://researchr.org/alias/dietrich-birngruber" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2244/22440519.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2244/22440519.htm" tags: - "composition" researchr: "https://researchr.org/publication/Birngruber01" cites: 0 citedby: 0 pages: "519-529" booktitle: "Perspectives of System Informatics, 4th International Andrei Ershov Memorial Conference, PSI 2001, Akademgorodok, Novosibirsk, Russia, July 2-6, 2001, Revised Papers" editor: - name: "Dines Bjørner" link: "https://researchr.org/alias/dines-bj%C3%B8rner" - name: "Manfred Broy" link: "https://researchr.org/alias/manfred-broy" - name: "Alexandre V. Zamulin" link: "https://researchr.org/alias/alexandre-v.-zamulin" volume: "2244" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43075-X" kind: "inproceedings" key: "Birngruber01" - title: "Semantics of Context-Free Languages" author: - name: "Donald E. Knuth" link: "https://researchr.org/alias/donald-e.-knuth" year: "1968" doi: "http://www.springerlink.com/content/m2501m07m4666813/" abstract: "\"Meaning\" may be assigned to a string in a context-free language by defining attributes of the symbols in a derivation tree for that string. The attributes can be defined by functions associated with each production in the grammar. This paper examines the implications of this process when some of the attributes are synthesized, i.e., defined solely in terms of attributes of thedescendants of the corresponding nonterminal symbol, while other attributes are inherited, i.e., defined in terms of attributes of theancestors of the nonterminal symbol. An algorithm is given which detects when such semantic rules could possibly lead to circular definition of some attributes. An example is given of a simple programming language defined with both inherited and synthesized attributes, and the method of definition is compared to other techniques for formal specification of semantics which have appeared in the literature." links: doi: "http://www.springerlink.com/content/m2501m07m4666813/" tags: - "programming languages" - "semantics" - "rule-based" - "attribute grammars" - "formal semantics" - "context free languages" - "rules" - "e-science" - "programming" - "context-aware" - "grammar" researchr: "https://researchr.org/publication/Knuth68" cites: 0 citedby: 1 journal: "Theory Comput. Syst." volume: "2" number: "2" pages: "127-145" kind: "article" key: "Knuth68" - title: "Description Logic and Faceted Knowledge Representation" author: - name: "Uta Priss" link: "http://www.upriss.org.uk/top/research.html" year: "1999" doi: "http://SunSITE.Informatik.RWTH-Aachen.DE/Publications/CEUR-WS/Vol-22/priss.ps" abstract: "The term ”facet” was introduced into the field of library classification systems by Ranganathan in the 1930’s [Ranganathan, 1962]. A facet is a viewpoint or aspect. In contrast to traditional classification systems, faceted systems are modular in that a domain is analyzed in terms of baseline facets which are then synthesized. In this paper, the term ”facet” is used in a broader mean- ing. Facets can describe different aspects on the same level of abstraction or the same aspect on different lev- els of abstraction. The notion of facets is related to database views, multicontexts and conceptual scaling in formal concept analysis [Ganter and Wille, 1999], poly- morphism in ob ject-oriented design, aspect-oriented pro- gramming, views and contexts in description logic and semantic networks. This paper presents a definition of facets in terms of faceted knowledge representation that incorporates the traditional narrower notion of facets and potentially fa- cilitates translation between different knowledge repre- sentation formalisms. A goal of this approach is a mod- ular, machine-aided knowledge base design mechanism. A possible application is faceted thesaurus construction for information retrieval and data mining. Reasoning complexity depends on the size of the modules (facets). A more general analysis of complexity will be left for future research." links: doi: "http://SunSITE.Informatik.RWTH-Aachen.DE/Publications/CEUR-WS/Vol-22/priss.ps" tags: - "rule-based" - "knowlege representation" - "translation" - "faceted knowledge representation" - "facets" - "information retrieval" - "design complexity" - "design research" - "domain analysis" - "analysis" - "data-flow" - "database" - "context-aware" - "logic" - "abstraction" - "data-flow analysis" - "design" - "systematic-approach" - "description logic" researchr: "https://researchr.org/publication/Priss99%3A0" cites: 0 citedby: 0 booktitle: "Proceedings of the 1999 International Workshop on Description Logics (DL 99), Linköping, Sweden, July 30 - August 1, 1999" editor: - name: "Patrick Lambrix" link: "https://researchr.org/alias/patrick-lambrix" - name: "Alexander Borgida" link: "https://researchr.org/alias/alexander-borgida" - name: "Maurizio Lenzerini" link: "https://researchr.org/alias/maurizio-lenzerini" - name: "Ralf Möller" link: "https://researchr.org/alias/ralf-m%C3%B6ller" - name: "Peter F. Patel-Schneider" link: "https://researchr.org/alias/peter-f.-patel-schneider" volume: "22" series: "CEUR Workshop Proceedings" publisher: "CEUR-WS.org" kind: "inproceedings" key: "Priss99:0" - title: "The essence of command injection attacks in web applications" author: - name: "Zhendong Su" link: "https://researchr.org/alias/zhendong-su" - name: "Gary Wassermann" link: "https://researchr.org/alias/gary-wassermann" year: "2006" doi: "http://doi.acm.org/10.1145/1111037.1111070" links: doi: "http://doi.acm.org/10.1145/1111037.1111070" tags: - "injection attack" - "web applications" researchr: "https://researchr.org/publication/SuW-POPL-2006" cites: 0 citedby: 1 pages: "372-382" booktitle: "Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006, Charleston, South Carolina, USA, January 11-13, 2006" editor: - name: "J. Gregory Morrisett" link: "https://researchr.org/alias/j.-gregory-morrisett" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" publisher: "ACM" isbn: "1-59593-027-2" kind: "inproceedings" key: "SuW-POPL-2006" - title: "The Cornell Program Synthesizer: A Syntax-Directed Programming Environment" author: - name: "Tim Teitelbaum" link: "http://www.cs.cornell.edu/Info/People/tt/Tim_Teitelbaum.html" - name: "Thomas W. Reps" link: "http://pages.cs.wisc.edu/~reps/" year: "1981" tags: - "meta programming" - "meta-model" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/TeitelbaumR81" cites: 0 citedby: 2 journal: "Communications of the ACM" volume: "24" number: "9" pages: "563-573" kind: "article" key: "TeitelbaumR81" - title: "A Gentle Introduction to Multi-stage Programming" author: - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3016&spage=30" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3016&spage=30" tags: - "programming" researchr: "https://researchr.org/publication/Taha03" cites: 0 citedby: 1 pages: "30-50" booktitle: "Domain-Specific Program Generation, International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers" editor: - name: "Christian Lengauer" link: "http://www.infosun.fim.uni-passau.de/cl/staff/lengauer/" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" volume: "3016" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22119-0" kind: "inproceedings" key: "Taha03" - title: "Piccola - A Small Composition Language" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "1999" tags: - "composition" researchr: "https://researchr.org/publication/Nierstrasz99" cites: 0 citedby: 0 pages: "317" booktitle: "Object-Oriented Technology, ECOOP 99 Workshop Reader, ECOOP 99 Workshops, Panels, and Posters, Lisbon, Portugal, June 14-18, 1999, Proceedings" editor: - name: "Ana M. D. Moreira" link: "https://researchr.org/alias/ana-m.-d.-moreira" - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" volume: "1743" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-66954-X" kind: "inproceedings" key: "Nierstrasz99" - title: "Practical Dynamic Grammars for Dynamic Languages" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" month: "jun" abstract: "Grammars for programming languages are traditionally specified statically. They are hard to compose and reuse due to ambiguities that inevitably arise. PetitParser combines ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers to model grammars and parsers as objects that can be reconfigured dynamically. Through examples and benchmarks we demonstrate that dynamic grammars are not only flexible but highly practical." links: "url": "http://scg.unibe.ch/archive/papers/Reng10cDynamicGrammars.pdf" tags: - "programming languages" - "object-oriented programming" - "meta programming" - "meta-model" - "modeling language" - "language modeling" - "helvetia" - "reuse" - "object-role modeling" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "feature-oriented programming" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/Reng10c" cites: 18 citedby: 0 booktitle: "4th Workshop on Dynamic Languages and Applications (DYLA 2010)" address: "Malaga, Spain" kind: "inproceedings" key: "Reng10c" - title: "Scripting: Higher-Level Programming for the 21st Century" author: - name: "John K. Ousterhout" link: "https://researchr.org/alias/john-k.-ousterhout" year: "1998" tags: - "programming" researchr: "https://researchr.org/publication/Ousterhout98" cites: 0 citedby: 1 journal: "IEEE Computer" volume: "31" number: "3" pages: "23-30" kind: "article" key: "Ousterhout98" - title: "Implementation of Multiple Attribute Grammar Inheritance in the Tool LISA" author: - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" - name: "Viljem Zumer" link: "https://researchr.org/alias/viljem-zumer" - name: "Mitja Lenic" link: "https://researchr.org/alias/mitja-lenic" - name: "Enis Avdicausevic" link: "https://researchr.org/alias/enis-avdicausevic" year: "1999" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/MernikZLA99" cites: 0 citedby: 0 journal: "SIGPLAN Notices" volume: "34" number: "6" pages: "68-75" kind: "article" key: "MernikZLA99" - title: "Compile-time meta-programming in Converge" author: - name: "Laurence Tratt" link: "http://tratt.net/laurie/" year: "2002" month: "December" abstract: "Compile-time meta-programming allows programs to be constructed by the user at compile-time. Few modern languages are capable of compile-time meta-programming, and of those that do, many of the most powerful are statically typed functional languages. In this paper I present the dynamically typed, object orientated language Converge which allows compile-time meta-programming in the spirit of Template Haskell. Converge demonstrates that integrating powerful, safe compiletime meta-programming features into a dynamic language requires few restrictions to the exible development style facilitated by the paradigm." tags: - "converge" - "programming languages" - "object-oriented programming" - "meta programming" - "meta-model" - "functional programming" - "Haskell" - "model-driven development" - "programming paradigms" - "compiler" - "programming" - "subject-oriented programming" - "Meta-Environment" - "extensible language" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/tratt04compiletm" cites: 0 citedby: 0 institution: "Department of Computer Science, King's College London" number: "TR-04-11" kind: "techreport" key: "tratt04compiletm" - title: "Syntax macros and extended translation" author: - name: "Leavenworth, B. M." link: "https://researchr.org/alias/leavenworth%2C-b.-m." year: "1966" doi: "http://doi.acm.org/10.1145/365876.365879" links: doi: "http://doi.acm.org/10.1145/365876.365879" tags: - "translation" - "macros" researchr: "https://researchr.org/publication/365879" cites: 0 citedby: 1 journal: "Commun. ACM" volume: "9" number: "11" kind: "article" key: "365879" - title: "Programming with exceptions in JCilk" author: - name: "John S. Danaher" link: "https://researchr.org/alias/john-s.-danaher" - name: "I.-Ting Angelina Lee" link: "https://researchr.org/alias/i.-ting-angelina-lee" - name: "Charles E. Leiserson" link: "https://researchr.org/alias/charles-e.-leiserson" year: "2006" doi: "http://dx.doi.org/10.1016/j.scico.2006.05.008" links: doi: "http://dx.doi.org/10.1016/j.scico.2006.05.008" tags: - "exceptions" - "e-science" - "programming" researchr: "https://researchr.org/publication/DanaherLL06" cites: 0 citedby: 1 journal: "Science of Computer Programming" volume: "63" number: "2" pages: "147-171" kind: "article" key: "DanaherLL06" - title: "TCS: a DSL for the specification of textual concrete syntaxes in model engineering" author: - name: "Frédéric Jouault" link: "https://researchr.org/alias/fr%C3%A9d%C3%A9ric-jouault" - name: "Jean Bézivin" link: "https://researchr.org/alias/jean-b%C3%A9zivin" - name: "Ivan Kurtev" link: "https://researchr.org/alias/ivan-kurtev" year: "2006" doi: "http://doi.acm.org/10.1145/1173706.1173744" links: doi: "http://doi.acm.org/10.1145/1173706.1173744" tags: - "meta-model" - "model-driven engineering" - "DSL" - "Meta-Environment" - "concrete syntax" researchr: "https://researchr.org/publication/JouaultBK06" cites: 0 citedby: 3 pages: "249-254" booktitle: "Generative Programming and Component Engineering, 5th International Conference, GPCE 2006, Portland, Oregon, USA, October 22-26, 2006, Proceedings" editor: - name: "Stan Jarzabek" link: "https://researchr.org/alias/stan-jarzabek" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" - name: "Todd L. Veldhuizen" link: "https://researchr.org/alias/todd-l.-veldhuizen" publisher: "ACM" isbn: "1-59593-237-2" kind: "inproceedings" key: "JouaultBK06" - title: "Aspect-Oriented Programming" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "John Lamping" link: "https://researchr.org/alias/john-lamping" - name: "Anurag Mendhekar" link: "https://researchr.org/alias/anurag-mendhekar" - name: "Chris Maeda" link: "https://researchr.org/alias/chris-maeda" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Jean-Marc Loingtier" link: "https://researchr.org/alias/jean-marc-loingtier" - name: "John Irwin" link: "https://researchr.org/alias/john-irwin" year: "1997" doi: "10.1007/BFb0053381" abstract: "We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the code, resulting in “tangled” code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they cross-cut the system's basic functionality. We present the basis for a new programming technique, called aspect-oriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and reuse of the aspect code. The discussion is rooted in systems we have built using aspect-oriented programming." tags: - "object-oriented programming" - "program analysis" - "meta programming" - "AOP" - "composition" - "functional programming" - "analysis" - "reuse" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "design" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/KiczalesLMMLLI97" cites: 0 citedby: 3 pages: "220-242" booktitle: "ECOOP 97 - Object-Oriented Programming, 11th European Conference, Jyväskylä, Finland, June 9-13, 1997, Proceedings" editor: - name: "Mehmet Aksit" link: "https://researchr.org/alias/mehmet-aksit" - name: "Satoshi Matsuoka" link: "https://researchr.org/alias/satoshi-matsuoka" volume: "1241" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-63089-9" kind: "inproceedings" key: "KiczalesLMMLLI97" - title: "Origin Tracking" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Frank Tip" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/tip.index.html" year: "1993" links: technicalreport: "https://researchr.org/publication/DeursenKlintTip1992" researchr: "https://researchr.org/publication/DeursenKT93" cites: 0 citedby: 4 journal: "Journal of Symbolic Computation" volume: "15" number: "5/6" pages: "523-545" kind: "article" key: "DeursenKT93" - title: "Semantic framework for DSLs" author: - name: "Zekai Demirezen" link: "https://researchr.org/alias/zekai-demirezen" year: "2009" doi: "http://doi.acm.org/10.1145/1639950.1640037" abstract: "Domain-Specific Languages (DSLs) enable domain experts to participate in software development tasks and to specify their own programs using domain abstractions. To define programs using domain concepts, rather than programming language concepts, model-based syntax and semantic specification techniques may offer advantages over current approaches. The purpose of the research described in this paper is to provide a semantic framework that can be used visually by DSL designers, yet has formal underpinnings such that interoperation with verification tools is possible to realize model checking tasks. This research is focused on a visual technique based on activity diagrams and graph transformation rules to define the semantics of DSLs." links: doi: "http://doi.acm.org/10.1145/1639950.1640037" tags: - "programming languages" - "model-to-model transformation" - "semantics" - "rule-based" - "meta programming" - "model checking" - "program verification" - "formal semantics" - "graph transformation" - "meta-model" - "modeling language" - "transformation language" - "language modeling" - "model-driven development" - "source-to-source" - "graph-rewriting" - "rules" - "model transformation" - "DSL" - "programming" - "abstraction" - "Meta-Environment" - "rewriting" - "systematic-approach" - "transformation" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/Demirezen09" cites: 14 citedby: 0 pages: "833-834" booktitle: "Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA" editor: - name: "Shail Arora" link: "https://researchr.org/alias/shail-arora" - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" publisher: "ACM" isbn: "978-1-60558-768-4" kind: "inproceedings" key: "Demirezen09" - title: "The metafront System: Safe and Extensible Parsing and Transformation" author: - name: "Claus Brabrand" link: "https://researchr.org/alias/claus-brabrand" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" year: "2007" doi: "http://dx.doi.org/10.1016/j.scico.2005.06.007" links: doi: "http://dx.doi.org/10.1016/j.scico.2005.06.007" tags: - "transformation system" - "parsing" - "transformation" researchr: "https://researchr.org/publication/metafront2007" cites: 0 citedby: 1 journal: "Science of Computer Programming Journal (SCP)" volume: "68" number: "1" kind: "article" key: "metafront2007" - title: "When and how to develop domain-specific languages" author: - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" year: "2005" doi: "http://doi.acm.org/10.1145/1118890.1118892" abstract: "Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage.Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems. " links: doi: "http://doi.acm.org/10.1145/1118890.1118892" tags: - "programming languages" - "DSL engineering" - "program analysis" - "pattern language" - "DSL implementation approach" - "dsl examples" - "language engineering" - "points-to analysis" - "domain analysis" - "analysis" - "language design" - "source-to-source" - "survey" - "DSL" - "programming" - "design" - "systematic-approach" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/MernikHS05" cites: 154 citedby: 3 journal: "ACM Computing Surveys" volume: "37" number: "4" pages: "316-344" kind: "article" key: "MernikHS05" - title: "Monotone Data Flow Analysis Frameworks" author: - name: "John B. Kam" link: "https://researchr.org/alias/john-b.-kam" - name: "Jeffrey D. Ullman" link: "https://researchr.org/alias/jeffrey-d.-ullman" year: "1977" tags: - "analysis" - "data-flow" - "data-flow analysis" researchr: "https://researchr.org/publication/KamU77%3A0" cites: 0 citedby: 1 journal: "Acta Informatica" volume: "7" pages: "305-317" kind: "article" key: "KamU77:0" - title: "Adding open modules to AspectJ" author: - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "2006" doi: "http://doi.acm.org/10.1145/1119655.1119664" links: doi: "http://doi.acm.org/10.1145/1119655.1119664" tags: - "AspectJ" - "source-to-source" - "open-source" researchr: "https://researchr.org/publication/OngkingcoATHMS06" cites: 0 citedby: 1 pages: "39-50" booktitle: "Proceedings of the 5th International Conference on Aspect-Oriented Software Development, AOSD 2006, Bonn, Germany, March 20-24, 2006" editor: - name: "Robert E. Filman" link: "https://researchr.org/alias/robert-e.-filman" publisher: "ACM" isbn: "1-59593-300-X" kind: "inproceedings" key: "OngkingcoATHMS06" - title: "Development and Evolution of Software Architectures for Product Families, Second International ESPRIT ARES Workshop, Las Palmas de Gran Canaria, Spain, February 26-27, 1998, Proceedings" year: "1998" tags: - "software architecture" - "architecture" - "software evolution" researchr: "https://researchr.org/publication/ares%3A1998" cites: 0 citedby: 1 booktitle: "Development and Evolution of Software Architectures for Product Families, Second International ESPRIT ARES Workshop, Las Palmas de Gran Canaria, Spain, February 26-27, 1998, Proceedings" conference: "ares" editor: - name: "Frank van der Linden" link: "https://researchr.org/alias/frank-van-der-linden" volume: "1429" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-64916-6" kind: "proceedings" key: "ares:1998" - title: "Exploiting Domain-Specific Structures For End-User Programming Support Tools" author: - name: "Robin Abraham" link: "https://researchr.org/alias/robin-abraham" - name: "Martin Erwig" link: "http://web.engr.oregonstate.edu/~erwig/" year: "2007" doi: "http://drops.dagstuhl.de/opus/volltexte/2007/1086" links: doi: "http://drops.dagstuhl.de/opus/volltexte/2007/1086" tags: - "programming" researchr: "https://researchr.org/publication/AbrahamE07" cites: 0 citedby: 0 booktitle: "End-User Software Engineering, 18.02. - 23.02.2007" editor: - name: "Margaret M. Burnett" link: "https://researchr.org/alias/margaret-m.-burnett" - name: "Gregor Engels" link: "https://researchr.org/alias/gregor-engels" - name: "Brad A. Myers" link: "http://www.cs.cmu.edu/~bam/" - name: "Gregg Rothermel" link: "https://researchr.org/alias/gregg-rothermel" volume: "07081" series: "Dagstuhl Seminar Proceedings" publisher: "Internationales Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany" kind: "inproceedings" key: "AbrahamE07" - title: "Comparing Metamodels for ER, ORM and UML Data Models" author: - name: "Terry A. Halpin" link: "http://www.orm.net/halpin.html" year: "2004" tags: - "UML" - "data-flow" - "ORM" - "object-role modeling" researchr: "https://researchr.org/publication/Halpin04%3A0" cites: 0 citedby: 0 pages: "23-44" booktitle: "Advanced Topics in Database Research, Vol. 3" editor: - name: "Keng Siau" link: "https://researchr.org/alias/keng-siau" publisher: "Idea Group" isbn: "1-59140-296-4" kind: "incollection" key: "Halpin04:0" - title: "Accomplishments and Research Challenges in Meta-programming" author: - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2196/21960002.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2196/21960002.htm" tags: - "meta programming" - "meta-model" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Sheard01%3A1" cites: 0 citedby: 1 pages: "2-44" booktitle: "Semantics, Applications, and Implementation of Program Generation, Second International Workshop, SAIG 2001, Florence, Italy, September 6, 2001, Proceedings" editor: - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" volume: "2196" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-42558-6" kind: "inproceedings" key: "Sheard01:1" - title: "Programmable Syntax Macros" author: - name: "Daniel Weise" link: "https://researchr.org/alias/daniel-weise" - name: "Roger F. Crew" link: "https://researchr.org/alias/roger-f.-crew" year: "1993" tags: - "macros" researchr: "https://researchr.org/publication/WeiseC93" cites: 0 citedby: 1 pages: "156-165" booktitle: "PLDI" kind: "inproceedings" key: "WeiseC93" - title: "Using Circular Programs to Eliminate Multiple Traversals of Data" author: - name: "Richard S. Bird" link: "http://www.comlab.ox.ac.uk/people/Richard.Bird/" year: "1984" tags: - "traversal" - "data-flow programming" researchr: "https://researchr.org/publication/Bird84" cites: 0 citedby: 1 journal: "Acta Informatica" volume: "21" pages: "239-250" kind: "article" key: "Bird84" - title: "Textual Modeling Framework" tags: - "meta-model" - "modeling" - "Meta-Environment" researchr: "https://researchr.org/publication/www%3Atmf" cites: 0 citedby: 0 howpublished: "http://www.eclipse.org/modeling/tmf/" kind: "misc" key: "www:tmf" - title: "Decompiling Java Using Staged Encapsulation" author: - name: "Jerome Miecznikowski" link: "https://researchr.org/alias/jerome-miecznikowski" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" year: "2001" doi: "http://computer.org/proceedings/wcre/1303/13030368abs.htm" links: doi: "http://computer.org/proceedings/wcre/1303/13030368abs.htm" tags: - "Java" researchr: "https://researchr.org/publication/MiecznikowskiH01" cites: 0 citedby: 1 pages: "368-374" booktitle: "WCRE" kind: "inproceedings" key: "MiecznikowskiH01" - title: "Creating DSLs with Ruby" author: - name: "J. Freeze" link: "https://researchr.org/alias/j.-freeze" year: "2006" month: "March" doi: "http://www.artima.com/rubycs/articles/ruby_as_dsl.html" abstract: "Broadly speaking, there are two ways to create a DSL. One is to invent a syntax from scratch, and build an interpreter or compiler. The other is to tailor an existing general-purpose language by adding or changing methods, operators, and default actions. This article explores using the latter method to build a DSL on top of Ruby." links: doi: "http://www.artima.com/rubycs/articles/ruby_as_dsl.html" tags: - "DSL" - "Ruby" researchr: "https://researchr.org/publication/Freeze2006" cites: 0 citedby: 1 howpublished: "http://www.artima.com/rubycs/articles/ruby_as_dsl.html" kind: "misc" key: "Freeze2006" - title: "Mixing source and bytecode: a case for compilation by normalization" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://doi.acm.org/10.1145/1449764.1449772" abstract: "Language extensions increase programmer productivity by providing concise, often domain-specific syntax, and support for static verification of correctness, security, and style constraints. Language extensions can often be realized through translation to the base language, supported by preprocessors and extensible compilers. However, various kinds of extensions require further adaptation of a base compiler's internal stages and components, for example to support separate compilation or to make use of low-level primitives of the platform (e.g., jump instructions or unbalanced synchronization). To allow for a more loosely coupled approach, we propose an open compiler model based on normalization steps from a high-level language to a subset of it, the core language. We developed such a compiler for a mixed Java and (core) bytecode language, and evaluate its effectiveness for composition mechanisms such as traits, as well as statement-level and expression-level language extensions. " links: doi: "http://doi.acm.org/10.1145/1449764.1449772" "technical report (pdf)": "http://www.lclnet.nl/publications/TUD-SERG-2008-030.pdf" "project home page": "http://www.strategoxt.org/Stratego/TheDryadCompiler" tags: - "compilation by normalization" - "rule-based" - "Java" - "synchronization" - "translation" - "meta-model" - "modeling language" - "Stratego/XT" - "language modeling" - "composition" - "constraints" - "source-to-source" - "C++" - "Dryad" - "security" - "compiler" - "Meta-Environment" - "extensible language" - "systematic-approach" - "open-source" - "Stratego" - "JavaFront" - "domain-specific language" researchr: "https://researchr.org/publication/KatsBV08" cites: 44 citedby: 3 pages: "91-108" booktitle: "Proceedings of the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19-23, 2008, Nashville, TN, USA" editor: - name: "Gail E. Harris" link: "https://researchr.org/alias/gail-e.-harris" publisher: "ACM" isbn: "978-1-60558-215-3" kind: "inproceedings" key: "KatsBV08" - title: "JastAdd--an aspect-oriented compiler construction system" author: - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" - name: "Eva Magnusson" link: "https://researchr.org/alias/eva-magnusson" year: "2003" doi: "http://dx.doi.org/10.1016/S0167-6423(02)00109-0" links: doi: "http://dx.doi.org/10.1016/S0167-6423(02)00109-0" tags: - "compiler" - "JastAdd" researchr: "https://researchr.org/publication/HedinM03" cites: 0 citedby: 2 journal: "Science of Computer Programming" volume: "47" number: "1" pages: "37-58" kind: "article" key: "HedinM03" - title: "Building Domain-Specific Embedded Languages" author: - name: "Paul Hudak" link: "https://researchr.org/alias/paul-hudak" year: "1996" doi: "http://doi.acm.org/10.1145/242224.242477" links: doi: "http://doi.acm.org/10.1145/242224.242477" tags: - "domain-specific language" researchr: "https://researchr.org/publication/Hudak96" cites: 0 citedby: 3 journal: "ACM Computing Surveys" volume: "28" number: "4es" pages: "196" kind: "article" key: "Hudak96" - title: "The Definitive ANTLR Reference: Building Domain-Specific Languages" author: - name: "Terence John Parr" link: "http://www.cs.usfca.edu/~parrt/" year: "2007" month: "May" tags: - "C++" - "domain-specific language" researchr: "https://researchr.org/publication/Parr2007" cites: 0 citedby: 1 publisher: "Pragmatic Programmers" kind: "book" key: "Parr2007" - title: "Attribute Grammar Paradigms - A High-Level Methodology in Language Implementation" author: - name: "Jukka Paakki" link: "https://researchr.org/alias/jukka-paakki" year: "1995" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/Paakki95" cites: 0 citedby: 2 journal: "ACM Computing Surveys" volume: "27" number: "2" pages: "196-255" kind: "article" key: "Paakki95" - title: "Declarative Scripting in Haskell" author: - name: "Tim Bauer" link: "https://researchr.org/alias/tim-bauer" - name: "Martin Erwig" link: "http://web.engr.oregonstate.edu/~erwig/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_21" links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_21" tags: - "Haskell" researchr: "https://researchr.org/publication/BauerE09" cites: 0 citedby: 0 pages: "294-313" booktitle: "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" volume: "5969" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-12106-7" kind: "inproceedings" key: "BauerE09" - title: "Building Program Optimizers with Rewriting Strategies" author: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" year: "1998" doi: "http://doi.acm.org/10.1145/289423.289425" abstract: "We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite rules; rewriting strategies are used to describe when and how the various rules should be applied in order to obtain the desired optimization effects. Separating rules from strategies in this fashion makes it easier to reason about the behavior of the optimizer as a whole, compared to traditional monolithic optimizer implementations. We illustrate the expressiveness of our language by using it to describe a simple optimizer for an ML-like intermediate representation.The basic strategy language uses operators such as sequential composition, choice, and recursion to build transformers from a set of labeled unconditional rewrite rules. We also define an extended language in which the side-conditions and contextual rules that arise in realistic optimizer specifications can themselves be expressed as strategy-driven rewrites. We show that the features of the basic and extended languages can be expressed by breaking down the rewrite rules into their primitive building blocks, namely matching and building terms in variable binding environments. This gives us a low-level core language which has a clear semantics, can be implemented straightforwardly and can itself be optimized. The current implementation generates C code from a strategy specification. " links: doi: "http://doi.acm.org/10.1145/289423.289425" "postscript": "http://www.st.ewi.tudelft.nl/~eelco/papers/VBT98.ps" tags: - "programming languages" - "optimization" - "semantics" - "rule-based" - "meta programming" - "graph transformation" - "variable binding" - "Stratego/XT" - "transformation language" - "term rewriting" - "composition" - "graph-rewriting" - "rules" - "C++" - "program optimization" - "Meta-Environment" - "higher-order transformations" - "rewriting" - "rewriting strategies" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/VisserBT98" cites: 0 citedby: 5 pages: "13-26" booktitle: "Proceedings of the third ACM SIGPLAN international conference on Functional programming" editor: - name: "Matthias Felleisen" link: "http://www.ccs.neu.edu/home/matthias/" - name: "Paul Hudak" link: "http://www.cs.yale.edu/homes/hudak/" - name: "Christian Queinnec" link: "https://researchr.org/alias/christian-queinnec" address: "Baltimore, Maryland, United States" publisher: "ACM" kind: "inproceedings" key: "VisserBT98" - title: "Verifiable Parse Table Composition for Deterministic Parsing" author: - name: "August Schwerdfeger" link: "https://researchr.org/alias/august-schwerdfeger" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_15" links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_15" tags: - "composition" - "parsing" researchr: "https://researchr.org/publication/SchwerdfegerW09-SLE" cites: 0 citedby: 1 pages: "184-203" booktitle: "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" volume: "5969" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-12106-7" kind: "inproceedings" key: "SchwerdfegerW09-SLE" - title: "Maya: Multiple-Dispatch Syntax Extension in Java" author: - name: "Jason Baker" link: "https://researchr.org/alias/jason-baker" - name: "Wilson C. Hsieh" link: "https://researchr.org/alias/wilson-c.-hsieh" year: "2002" doi: "http://doi.acm.org/10.1145/512529.512562" links: doi: "http://doi.acm.org/10.1145/512529.512562" tags: - "Java" - "C++" researchr: "https://researchr.org/publication/BakerH02%3A0" cites: 0 citedby: 1 pages: "270-281" booktitle: "PLDI" kind: "inproceedings" key: "BakerH02:0" - title: "A comparison of tool support for textual domain-specific languages" author: - name: "M. Pfeiffer" link: "https://researchr.org/alias/m.-pfeiffer" - name: " J. Pichler" link: "https://researchr.org/alias/j.-pichler" year: "2008" tags: - "domain-specific language" researchr: "https://researchr.org/publication/Pfeiffer2008" cites: 0 citedby: 1 booktitle: "Workshop on Domain- Specific Modeling" kind: "inproceedings" key: "Pfeiffer2008" - title: "Meta-programming with Concrete Object Syntax" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2002" doi: "https://doi.org/10.1007/3-540-45821-2_19" abstract: "Meta programs manipulate structured representations, i.e., abstract syntax trees, of programs. The conceptual distance between the concrete syntax meta-programmers use to reason about programs and the notation for abstract syntax manipulation provided by general purpose (meta-) programming languages is too great for many applications. In this paper it is shown how the syntax definition formalism SDF can be employed to fit any meta-programming language with concrete syntax notation for composing and analyzing object programs. As a case study, the addition of concrete syntax to the program transformation language Stratego is presented. The approach is then generalized to arbitrary meta-languages. " links: doi: "https://doi.org/10.1007/3-540-45821-2_19" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "concrete object syntax" - "syntax definition" - "meta programming" - "case study" - "SDF" - "meta-model" - "abstract syntax" - "Stratego/XT" - "transformation language" - "source-to-source" - "model transformation" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/Visser02" cites: 23 citedby: 6 pages: "299-315" booktitle: "Generative Programming and Component Engineering, ACM SIGPLAN/SIGSOFT Conference, GPCE 2002, Pittsburgh, PA, USA, October 6-8, 2002, Proceedings" editor: - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" volume: "2487" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-44284-7" kind: "inproceedings" key: "Visser02" - title: "Code Generation by Model Transformation" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" abstract: "The realization of model-driven software development requires effective techniques for implementing code generators. In this paper, we present a case study of code generation by model transformation with Stratego, a high-level transformation language based on the paradigm of rewrite rules with programmable strategies that integrates model-to-model, model-to-code, and code-to-code transformations. The use of concrete object syntax guarantees syntactic correctness of code patterns, and enables the subsequent transformation of generated code. The composability of strategies supports two dimensions of transformation modularity. Vertical modularity is achieved by designing a generator as a pipeline of model-to-model transformations that gradually transforms a high-level input model to an implementation. Horizontal modularity is achieved by supporting the definition of plugins which implement all aspects of a language feature. We discuss the application of these techniques in the implementation of WebDSL, a domain-specific language for dynamic web applications with a rich data model. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" successor: "https://researchr.org/publication/HemelKGV10" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-012.pdf" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "WebDSL" - "concrete object syntax" - "rule-based" - "transformation engineering" - "syntax definition" - "meta programming" - "data-flow language" - "pattern language" - "case study" - "graph transformation" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "software language engineering" - "language modeling" - "web engineering" - "data-flow programming" - "model-driven development" - "data-flow" - "source-to-source" - "graph-rewriting" - "software engineering" - "rules" - "model-driven engineering" - "C++" - "programming paradigms" - "code generation" - "object-role modeling" - "aspect oriented programming" - "model transformation" - "web applications" - "DSL" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelKV08" cites: 0 citedby: 3 pages: "183-198" booktitle: "Theory and Practice of Model Transformations, First International Conference, ICMT 2008, Zürich, Switzerland, July 1-2, 2008, Proceedings" editor: - name: "Antonio Vallecillo" link: "http://www.lcc.uma.es/~av/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Alfonso Pierantonio" link: "http://www.di.univaq.it/alfonso" volume: "5063" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-69926-2" kind: "inproceedings" key: "HemelKV08" - title: "Pure and declarative syntax definition: paradise lost and regained" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2010" doi: "http://doi.acm.org/10.1145/1869459.1869535" abstract: "Syntax definitions are pervasive in modern software systems, and serve as the basis for language processing tools like parsers and compilers. Mainstream parser generators pose restrictions on syntax definitions that follow from their implementation algorithm. They hamper evolution, maintainability, and compositionality of syntax definitions. The pureness and declarativity of syntax definitions is lost. We analyze how these problems arise for different aspects of syntax definitions, discuss their consequences for language engineers, and show how the pure and declarative nature of syntax definitions can be regained." links: doi: "http://doi.acm.org/10.1145/1869459.1869535" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/KatsVW10" "pdf (tech report)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2010-019.pdf" tags: - "parsing algorithm" - "syntax definition" - "composition" - "software evolution" - "C++" - "compiler" - "parsing" researchr: "https://researchr.org/publication/KatsVW10" cites: 0 citedby: 1 pages: "918-932" booktitle: "Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, October 17-21, 2010, Reno/Tahoe, Nevada, USA" editor: - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Siobhán Clarke" link: "https://www.cs.tcd.ie/Siobhan.Clarke/" - name: "Martin C. Rinard" link: "https://researchr.org/alias/martin-c.-rinard" address: "Reno/Tahoe, Nevada" publisher: "ACM" isbn: "978-1-4503-0203-6" kind: "inproceedings" key: "KatsVW10" - title: "The Converge programming language" author: - name: "Laurence Tratt" link: "http://tratt.net/laurie/" year: "2005" month: "February" tags: - "converge" - "programming languages" - "programming" - "extensible language" researchr: "https://researchr.org/publication/tratt05convergepl" cites: 0 citedby: 1 institution: "Department of Computer Science, King's College London" number: "TR-05-01" kind: "techreport" key: "tratt05convergepl" - title: "Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2003" doi: "https://doi.org/10.1007/978-3-540-25935-0_13" abstract: "Stratego/XT is a framework for the development of transformation systems aiming to support a wide range of program transformations. The framework consists of the transformation language Stratego and the XT collection of transformation tools. Stratego is based on the paradigm of rewriting under the control of programmable rewriting strategies. The XT tools provide facilities for the infrastructure of transformation systems including parsing and pretty-printing. The framework addresses the entire range of the development process; from the specification of transformations to their composition into transformation systems. This chapter gives an overview of the main ingredients involved in the composition of transformation systems with Stratego/XT, where we distinguish the abstraction levels of rules, strategies, tools, and systems." links: doi: "https://doi.org/10.1007/978-3-540-25935-0_13" successor: "https://researchr.org/publication/BravenboerKVV06" "springer": "http://www.springerlink.com/content/my9we5tj86u2f59n/" tags: - "control systems" - "programming languages" - "rule-based" - "graph transformation" - "Stratego/XT" - "transformation language" - "composition" - "graph-rewriting" - "rules" - "programming paradigms" - "transformation system" - "abstraction" - "rewriting" - "parsing" - "rewriting strategies" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/Visser03" cites: 0 citedby: 4 pages: "216-238" booktitle: "Domain-Specific Program Generation, International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers" editor: - name: "Christian Lengauer" link: "http://www.infosun.fim.uni-passau.de/cl/staff/lengauer/" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" volume: "3016" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22119-0" kind: "inproceedings" key: "Visser03" - title: "Using positive tainting and syntax-aware evaluation to counter SQL injection attacks" author: - name: "William G. J. Halfond" link: "https://researchr.org/alias/william-g.-j.-halfond" - name: "Alessandro Orso" link: "https://researchr.org/alias/alessandro-orso" - name: "Panagiotis Manolios" link: "https://researchr.org/alias/panagiotis-manolios" year: "2006" doi: "http://doi.acm.org/10.1145/1181775.1181797" links: doi: "http://doi.acm.org/10.1145/1181775.1181797" tags: - "injection attack" - "SQL" - "context-aware" researchr: "https://researchr.org/publication/HalfondOM06" cites: 0 citedby: 1 pages: "175-185" booktitle: "Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2005, Portland, Oregon, USA, November 5-11, 2006" editor: - name: "Michal Young" link: "https://researchr.org/alias/michal-young" - name: "Premkumar T. Devanbu" link: "https://researchr.org/alias/premkumar-t.-devanbu" publisher: "ACM" isbn: "1-59593-468-5" kind: "inproceedings" key: "HalfondOM06" - title: "Service Combinators for Web Computing" author: - name: "Luca Cardelli" link: "http://lucacardelli.name" - name: "Rowan Davies" link: "https://researchr.org/alias/rowan-davies" year: "1999" doi: "http://computer.org/tse/ts1999/e0309abs.htm" links: doi: "http://computer.org/tse/ts1999/e0309abs.htm" tags: - "web service" researchr: "https://researchr.org/publication/CardelliD99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "309-316" kind: "article" key: "CardelliD99" - title: "Eclipse Modeling Framework" author: - name: "F. Budinsky" link: "https://researchr.org/alias/f.-budinsky" - name: " D. Steinberg" link: "https://researchr.org/alias/d.-steinberg" - name: " E. Merks" link: "https://researchr.org/alias/e.-merks" - name: " R. Ellersick" link: "https://researchr.org/alias/r.-ellersick" - name: " T. J. Grose" link: "https://researchr.org/alias/t.-j.-grose" year: "2004" links: successor: "https://researchr.org/publication/Steinberg-2009-EMF" tags: - "Eclipse" - "meta-model" - "modeling" - "Meta-Environment" researchr: "https://researchr.org/publication/Budinsky-2004-EMF" cites: 0 citedby: 3 publisher: "Addison-Wesley" kind: "book" key: "Budinsky-2004-EMF" - title: "Hancock: a language for processing very large-scale data" author: - name: "Dan Bonachea" link: "https://researchr.org/alias/dan-bonachea" - name: "Kathleen Fisher" link: "http://www.research.att.com/people/Fisher_Kathleen_S" - name: "Anne Rogers" link: "https://researchr.org/alias/anne-rogers" - name: "Frederick Smith" link: "https://researchr.org/alias/frederick-smith" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331981" links: doi: "http://doi.acm.org/10.1145/331960.331981" tags: - "data-flow language" - "data-flow" - "DSL" researchr: "https://researchr.org/publication/BonacheaFRS99" cites: 0 citedby: 1 pages: "163-176" booktitle: "DSL" kind: "inproceedings" key: "BonacheaFRS99" - title: "Supporting Language Extension and Separate Compilation by Mixing Java and Bytecode" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" year: "2007" month: "August" abstract: "Language extensions, such as embedded domain-specific languages, are often implemented by assimilating (rewriting) the extended language constructs to the host language. The result can then be compiled by a standard compiler. This approach is limited by the host language, which may not be designed with code generation in mind. An example of this is Java, which provides insufficient protection against name capture of host language identifiers, and does not provide the same low-level primitives that exist in the underlying Java Virtual Machine. For example, it does not provide equivalents for a jump or jump subroutine instruction, unbalanced synchronization, stack manipulation, or specification of debugging information. Code generated from a language that does not match Java’s structure can therefore require inefficient or laborious alternatives instead. We propose a new open compiler model to provide generators direct access to the underlying compiled code. With conventional open compilers, leveraging the bytecode-generating back-end is an intricate process, requiring adaptations tangled throughout the system. The result is hard to develop, understand, and maintain. By providing a mixed source language of Java and the underlying bytecode instruction language, we can provide access to the back-end at the source-level. Compiled instructions can be used in place of statements or expressions, which can aid language extensions but also applications of separate compilation. For example, it can simplify aspect weavers by enabling direct composition of source code aspects with compiled classes, or vice versa. As such, we also introduce a Java traits compiler that allows operation on classes and traits in both source and compiled form." note: "INF/SCR-07-02" links: "pdf": "http://www.lclnet.nl/publications/kats-mastersthesis.pdf" "project home page": "http://www.strategoxt.org/Stratego/TheDryadCompiler" tags: - "Java" - "synchronization" - "language extension" - "modeling language" - "language modeling" - "composition" - "language design" - "source-to-source" - "graph-rewriting" - " direct manipulation" - "C++" - "code generation" - "debugging" - "compiler" - "language embedding" - "information models" - "language composition" - "rewriting" - "compilers" - "process modeling" - "systematic-approach" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/Kats07" cites: 0 citedby: 1 school: "Utrecht University" address: "Utrecht, The Netherlands" advisor: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" kind: "mastersthesis" key: "Kats07" - title: "Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2004" doi: "http://doi.acm.org/10.1145/1028976.1029007" abstract: "Application programmer's interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, the language constructs are often sufficient for expressing domain abstractions at the semantic level. However, they do not provide the right abstractions at the syntactic level. In this paper we describe MetaBorg, a method for providing concrete syntax for domain abstractions to application programmers. The method consists of embedding domain-specific languages in a general purpose host language and assimilating the embedded domain code into the surrounding host code. Instead of extending the implementation of the host language, the assimilation phase implements domain abstractions in terms of existing APIs leaving the host language undisturbed. Indeed, MetaBorg can be considered a method for promoting APIs to the language level. The method is supported by proven and available technology, i.e. the syntax definition formalism SDF and the program transformation language and toolset Stratego/XT. We illustrate the method with applications in three domains: code generation, XML generation, and user-interface construction." links: doi: "http://doi.acm.org/10.1145/1028976.1029007" tags: - "programming languages" - "object-oriented programming" - "concrete object syntax" - "syntax definition" - "meta programming" - "assimilation" - "SDF" - "XML" - "XML Schema" - "Stratego/XT" - "transformation language" - "composition" - "MetaBorg" - "language design" - "reuse" - "code generation" - "subject-oriented programming" - "abstraction" - "Meta-Environment" - "extensible language" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerV04" cites: 51 citedby: 8 pages: "365-383" booktitle: "Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004" editor: - name: "John M. Vlissides" link: "https://researchr.org/alias/john-m.-vlissides" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" address: "Vancouver, BC, Canada" publisher: "ACM" isbn: "1-58113-831-8" kind: "inproceedings" key: "BravenboerV04" - title: "The Essence of Data Access in C::::omega::::" author: - name: "Gavin M. Bierman" link: "https://researchr.org/alias/gavin-m.-bierman" - name: "Erik Meijer" link: "http://research.microsoft.com/en-us/um/people/emeijer/" - name: "Wolfram Schulte" link: "http://research.microsoft.com/en-us/people/schulte/" year: "2005" doi: "http://dx.doi.org/10.1007/11531142_13" links: doi: "http://dx.doi.org/10.1007/11531142_13" tags: - "data-flow" - "C++" researchr: "https://researchr.org/publication/BiermanMS05" cites: 0 citedby: 1 pages: "287-311" booktitle: "ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings" editor: - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" volume: "3586" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-27992-X" kind: "inproceedings" key: "BiermanMS05" - title: "Compilers: Principles, Techniques, and Tools (2nd Edition)" author: - name: "A. V. Aho" link: "https://researchr.org/alias/a.-v.-aho" - name: " M. S. Lam" link: "https://researchr.org/alias/m.-s.-lam" - name: "R. Sethi" link: "https://researchr.org/alias/r.-sethi" - name: " J. D. Ullman" link: "https://researchr.org/alias/j.-d.-ullman" year: "2006" month: "August" tags: - "principles" - "compiler" researchr: "https://researchr.org/publication/AhoLSU2006" cites: 0 citedby: 2 publisher: "Addison Wesley" kind: "book" key: "AhoLSU2006" - title: "Debugging Aspect-Enabled Programs" author: - name: "Marc Eaddy" link: "https://researchr.org/alias/marc-eaddy" - name: "Alfred V. Aho" link: "http://www1.cs.columbia.edu/~aho/" - name: "Weiping Hu" link: "https://researchr.org/alias/weiping-hu" - name: "Paddy McDonald" link: "https://researchr.org/alias/paddy-mcdonald" - name: "Julian Burger" link: "https://researchr.org/alias/julian-burger" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-77351-1_17" links: doi: "http://dx.doi.org/10.1007/978-3-540-77351-1_17" tags: - "debugging" researchr: "https://researchr.org/publication/EaddyAHMB07" cites: 0 citedby: 0 pages: "200-215" booktitle: "Software Composition, 6th International Symposium, SC 2007, Braga, Portugal, March 24-25, 2007, Revised Selected Papers" editor: - name: "Markus Lumpe" link: "https://researchr.org/alias/markus-lumpe" - name: "Wim Vanderperren" link: "https://researchr.org/alias/wim-vanderperren" volume: "4829" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-77350-4" kind: "inproceedings" key: "EaddyAHMB07" - title: "Little languages: little maintenance?" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1998" doi: "http://dx.doi.org/10.1002/(SICI)1096-908X(199803/04)10:2<75::AID-SMR168>3.0.CO;2-5" abstract: "So-called little,or domain-specific languages (DSLs), have the potential to make software main- tenance simpler: domain-experts can directly use the DSL to make required routine modifica- tions. On the negative side, however,more substantial changes may become more difficult: such changes may involve altering the domain-specific language. This will require compiler technol- ogy knowledge,which not every commercial enterprise has easily available. Based on experience taken from industrial practice, we discuss the role of DSLs in software maintenance, the dangers introduced by using them, and techniques for controlling the risks involved." links: doi: "http://dx.doi.org/10.1002/(SICI)1096-908X(199803/04)10:2<75::AID-SMR168>3.0.CO;2-5" tags: - "rule-based" - "little language" - "maintenance" - "compiler" - "DSL" - "domain-specific language" researchr: "https://researchr.org/publication/DeursenK98" cites: 0 citedby: 1 journal: "Journal of Software Maintenance" volume: "10" number: "2" pages: "75-92" kind: "article" key: "DeursenK98" - title: "Compiling embedded languages" author: - name: "Conal Elliott" link: "http://conal.net/" - name: "Sigbjorn Finne" link: "https://researchr.org/alias/sigbjorn-finne" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2003" doi: "http://dx.doi.org/10.1017/S0956796802004574" abstract: "Functional languages are particularly well-suited to the interpretive implementations of Domain-Specific Embedded Languages (DSELs). We describe an implemented technique for producing optimizing compilers for DSELs, based on Kamin's idea of DSELs for program generation. The technique uses a data type of syntax for basic types, a set of smart constructors that perform rewriting over those types, some code motion transformations, and a back-end code generator. Domain-specific optimization results from chains of domain-independent rewrites on basic types. New DSELs are defined directly in terms of the basic syntactic types, plus host language functions and tuples. This definition style makes compilers easy to write and, in fact, almost identical to the simplest embedded interpreters. We illustrate this technique with a language Pan for the computationally intensive domain of image synthesis and manipulation." links: doi: "http://dx.doi.org/10.1017/S0956796802004574" tags: - "embedded languages" - "programming languages" - "optimization" - "rule-based" - "syntax definition" - "data-flow language" - "graph transformation" - "interpreter" - "transformation language" - "functional programming" - "data-flow programming" - "data-flow" - "graph-rewriting" - "code generation" - "compiler" - "DSL" - "program optimization" - "internal languages" - "rewriting" - "transformation" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/ElliottFM03" cites: 17 citedby: 0 journal: "Journal of Functional Programming" volume: "13" number: "3" pages: "455-481" kind: "article" key: "ElliottFM03" - title: "The Java Language Specification" author: - name: "James Gosling" link: "https://researchr.org/alias/james-gosling" - name: "Bill Joy" link: "https://researchr.org/alias/bill-joy" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" - name: "Gilad Bracha" link: "https://researchr.org/alias/gilad-bracha" year: "2005" month: "5" tags: - "Java" researchr: "https://researchr.org/publication/GoslingJSB2005" cites: 0 citedby: 1 edition: "3" publisher: "Addison Wesley" kind: "book" key: "GoslingJSB2005" - title: "Using production grammars in software testing" author: - name: "Emin Gün Sirer" link: "https://researchr.org/alias/emin-g%C3%BCn-sirer" - name: "Brian N. Bershad" link: "https://researchr.org/alias/brian-n.-bershad" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331965" abstract: " Extensible typesafe systems, such as Java, rely critically on a large and complex software base for their overall protection and integrity, and are therefore difficult to test and verify. Traditional testing techniques, such as manual test generation and formal verification, are too time consuming, expensive, and imprecise, or work only on abstract models of the implementation and are too simplistic. Consequently, commercial virtual machines deployed so far have exhibited numerous bugs and security holes.In this paper, we discuss our experience with using production grammars in testing large, complex and safety-critical software systems. Specifically, we describe lava, a domain specific language we have developed for specifying production grammars, and relate our experience with using lava to generate effective test suites for the Java virtual machine. We demonstrate the effectiveness of production grammars in generating complex test cases that can, when combined with comparative and variant testing techniques, achieve high code and value coverage. We also describe an extension to production grammars that enables concurrent generation of certificates for test cases. A certificate is a behavioral description that specifies the intended outcome of the generated test case, and therefore acts as an oracle by which the correctness of the tested system can be evaluated in isolation. We report the results of applying these testing techniques to commercial Java implementations. We conclude that the use of production grammars in combination with other automated testing techniques is a powerful and effective method for testing software systems, and is enabled by a special purpose language for specifying extended production grammars. " links: doi: "http://doi.acm.org/10.1145/331960.331965" tags: - "rule-based" - "Java" - "deployment" - "test coverage" - "modeling language" - "language modeling" - "testing" - "certification" - "code generation" - "security" - "DSL" - "abstract machine" - "coverage" - "extensible language" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/SirerB99" cites: 0 citedby: 1 pages: "1-13" booktitle: "DSL" kind: "inproceedings" key: "SirerB99" - title: "Declarative specification of data-intensive Web sites" author: - name: "Mary F. Fernandez" link: "https://researchr.org/alias/mary-f.-fernandez" - name: "Dan Suciu" link: "https://researchr.org/alias/dan-suciu" - name: "Igor Tatarinov" link: "https://researchr.org/alias/igor-tatarinov" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331979" links: doi: "http://doi.acm.org/10.1145/331960.331979" tags: - "data-flow" - "DSL" researchr: "https://researchr.org/publication/FernandezST99" cites: 0 citedby: 1 pages: "135-148" booktitle: "DSL" kind: "inproceedings" key: "FernandezST99" - title: "Reverse Engineering and Design Recovery: A Taxonomy" author: - name: "Elliot J. Chikofsky" link: "https://researchr.org/alias/elliot-j.-chikofsky" - name: "James H. Cross II" link: "https://researchr.org/alias/james-h.-cross-ii" year: "1990" tags: - "reverse engineering" - "taxonomy" - "design" researchr: "https://researchr.org/publication/ChikofskyC90" cites: 0 citedby: 1 journal: "IEEE Software" volume: "7" number: "1" pages: "13-17" kind: "article" key: "ChikofskyC90" - title: "Component-Oriented Programming" author: - name: "Wolfgang Weck" link: "https://researchr.org/alias/wolfgang-weck" - name: "Ralf Reussner" link: "https://researchr.org/alias/ralf-reussner" - name: "Clemens A. Szyperski" link: "https://researchr.org/alias/clemens-a.-szyperski" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-78195-0_12" links: doi: "http://dx.doi.org/10.1007/978-3-540-78195-0_12" tags: - "object-oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/WeckRS07" cites: 0 citedby: 0 pages: "123-131" booktitle: "Object-Oriented Technology. ECOOP 2007 Workshop Reader, Berlin, Germany, July 30-31, 2007, Final Reports" editor: - name: "Michael Cebulla" link: "https://researchr.org/alias/michael-cebulla" volume: "4906" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-78194-3" kind: "inproceedings" key: "WeckRS07" - title: "Domain Specific Languages for ad hoc Distributed Applications" author: - name: "Matthew Fuchs" link: "https://researchr.org/alias/matthew-fuchs" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/fuchs.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/fuchs.html" tags: - "DSL" - "domain-specific language" researchr: "https://researchr.org/publication/Fuchs97%3A0" cites: 0 citedby: 1 pages: "27-36" booktitle: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" kind: "inproceedings" key: "Fuchs97:0" - title: "Classification of Concrete Textual Syntax Mapping Approaches" author: - name: "Thomas Goldschmidt" link: "https://researchr.org/alias/thomas-goldschmidt" - name: "Steffen Becker" link: "https://researchr.org/alias/steffen-becker" - name: "Axel Uhl" link: "https://researchr.org/alias/axel-uhl" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69100-6_12" links: doi: "http://dx.doi.org/10.1007/978-3-540-69100-6_12" tags: - "classification" - "systematic-approach" - "concrete syntax" researchr: "https://researchr.org/publication/GoldschmidtBU08" cites: 0 citedby: 1 pages: "169-184" booktitle: "Model Driven Architecture - Foundations and Applications, 4th European Conference, ECMDA-FA 2008, Berlin, Germany, June 9-13, 2008. Proceedings" editor: - name: "Ina Schieferdecker" link: "https://researchr.org/alias/ina-schieferdecker" - name: "Alan Hartman" link: "https://researchr.org/alias/alan-hartman" volume: "5095" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-69095-5" kind: "inproceedings" key: "GoldschmidtBU08" - title: "The Realizable Benefits of a Language Prototyping Language" author: - name: "Robert M. Herndon Jr." link: "https://researchr.org/alias/robert-m.-herndon-jr." - name: "Valdis Berzins" link: "https://researchr.org/alias/valdis-berzins" year: "1988" doi: "http://www.computer.org/tse/ts1988/e0803abs.htm" abstract: "The uses and advantages of a language tailored specifically for the description and construction of translators are considered. The major features of the Kodiyak language prototyping language are described. The Kodiyak language was designed to be a comprehensive translator development system. The language is intended to support a simple, unambiguous conceptual model of translation, to allow the construction of nontrivial translators, and, to be easy to use" links: doi: "http://www.computer.org/tse/ts1988/e0803abs.htm" tags: - "translation" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "language design" - "model-driven development" - "Meta-Environment" researchr: "https://researchr.org/publication/HerndonB88" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "14" number: "6" pages: "803-809" kind: "article" key: "HerndonB88" - title: "The TXL source transformation language" author: - name: "James R. Cordy" link: "http://research.cs.queensu.ca/~cordy/" year: "2006" doi: "http://dx.doi.org/10.1016/j.scico.2006.04.002" links: doi: "http://dx.doi.org/10.1016/j.scico.2006.04.002" tags: - "model-to-model transformation" - "meta-model" - "transformation language" - "source-to-source" - "TXL" - "model transformation" - "Meta-Environment" - "open-source" - "transformation" researchr: "https://researchr.org/publication/Cordy06" cites: 0 citedby: 1 journal: "Science of Computer Programming" volume: "61" number: "3" pages: "190-210" kind: "article" key: "Cordy06" - title: "The metafront System: Extensible Parsing and Transformation" author: - name: "Claus Brabrand" link: "https://researchr.org/alias/claus-brabrand" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" - name: "Mads Vanggaard" link: "https://researchr.org/alias/mads-vanggaard" year: "2003" doi: "http://www1.elsevier.com/gej-ng/31/29/23/133/52/show/Products/notes/index.htt#009" links: doi: "http://www1.elsevier.com/gej-ng/31/29/23/133/52/show/Products/notes/index.htt#009" successor: "https://researchr.org/publication/metafront2007" tags: - "transformation system" - "parsing" - "transformation" researchr: "https://researchr.org/publication/BrabrandSV03" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "82" number: "3" pages: "592-611" kind: "article" key: "BrabrandSV03" - title: "Automatic translation of Fortran to JVM bytecode" author: - name: "Keith Seymour" link: "https://researchr.org/alias/keith-seymour" - name: "Jack Dongarra" link: "https://researchr.org/alias/jack-dongarra" year: "2001" doi: "http://portal.acm.org/citation.cfm?id=376656.376833" links: doi: "http://portal.acm.org/citation.cfm?id=376656.376833" tags: - "Java" - "translation" researchr: "https://researchr.org/publication/SeymourD01" cites: 0 citedby: 1 pages: "126-133" booktitle: "Java Grande" kind: "inproceedings" key: "SeymourD01" - title: "Designing Syntax Embeddings and Assimilations for Language Libraries" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-69073-3_5" abstract: "Language libraries extend regular libraries with domain-specific notation. More precisely, a language library is a combination of a domain-specific language embedded in the general-purpose host language, a regular library implementing the underlying functionality, and an assimilation transformation that maps embedded DSL fragments to host language code. While the basic architecture for realizing language libraries is the same for all applications, there are many design choices to be made in the design of a particular combination of library, guest language syntax, host language, and assimilation. In this paper, we give an overview of the design space for syntax embeddings and assimilations for the realization of language libraries. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69073-3_5" technicalreport: "https://researchr.org/publication/TUD-SERG-2008-042" tags: - "syntax embedding" - "syntax definition" - "assimilation" - "transformation language" - "architecture" - "language design" - "DSL" - "language libraries" - "design" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerV07" cites: 24 citedby: 1 pages: "34-46" booktitle: "Models in Software Engineering, Workshops and Symposia at MoDELS 2007, Nashville, TN, USA, September 30 - October 5, 2007, Reports and Revised Selected Papers" editor: - name: "Holger Giese" link: "https://researchr.org/alias/holger-giese" volume: "5002" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-69069-6" kind: "inproceedings" key: "BravenboerV07" - title: "Why Smalltalk Wins the Host Languages Shootout" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" year: "2009" abstract: "Integration of multiple languages into each other and into an existing development environment is a difficult task. As a consequence, developers often end up using only internal DSLs that strictly rely on the constraints imposed by the host language. Infrastructures do exist to mix languages, but they often do it at the price of losing the development tools of the host language. Instead of inventing a completely new infrastructure, our solution is to integrate new languages deeply into the existing host environment and reuse the infrastructure offered by it. In this paper we show why Smalltalk is the best practical choice for such a host language." note: "To appear" tags: - "DSL engineering" - "language engineering" - "constraints" - "reuse" - "DSL" - "Meta-Environment" researchr: "https://researchr.org/publication/Reng09b" cites: 0 citedby: 1 booktitle: "Proceedings of International Workshop on Smalltalk Technologies (IWST 2009)" publisher: "ACM Digital Library" kind: "inproceedings" key: "Reng09b" - title: "Forwarding in Attribute Grammars for Modular Language Design" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Kevin Backhouse" link: "https://researchr.org/alias/kevin-backhouse" - name: "Paul Kwiatkowski" link: "https://researchr.org/alias/paul-kwiatkowski" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2304/23040128.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2304/23040128.htm" tags: - "attribute grammars" - "language design" - "design" - "grammar" researchr: "https://researchr.org/publication/WykMBK02" cites: 0 citedby: 4 pages: "128-142" booktitle: "Compiler Construction, 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, 2002, Proceedings" editor: - name: "R. Nigel Horspool" link: "https://researchr.org/alias/r.-nigel-horspool" volume: "2304" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43369-4" kind: "inproceedings" key: "WykMBK02" - title: "Higher-Order Attribute Grammars" author: - name: "Harald Vogt" link: "https://researchr.org/alias/harald-vogt" - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" - name: "Matthijs F. Kuiper" link: "https://researchr.org/alias/matthijs-f.-kuiper" year: "1989" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/VogtSK89" cites: 0 citedby: 1 pages: "131-145" booktitle: "Proceedings of the ACM SIGPLAN'89 Conference on Programming Language Design and Implementation (PLDI), Portland, Oregon, USA, June 21-23, 1989" editor: - name: "Richard L. Wexelblat" link: "https://researchr.org/alias/richard-l.-wexelblat" publisher: "ACM" isbn: "0-89791-306-X" kind: "inproceedings" key: "VogtSK89" - title: "A Survey of Application Generators" author: - name: "Ellis Horowitz" link: "https://researchr.org/alias/ellis-horowitz" - name: "Alfons Kemper" link: "https://researchr.org/alias/alfons-kemper" - name: "Balaji Narasimhan" link: "https://researchr.org/alias/balaji-narasimhan" year: "1985" tags: - "survey" researchr: "https://researchr.org/publication/HorowitzKN85" cites: 0 citedby: 1 journal: "IEEE Software" volume: "2" number: "1" pages: "40-54" kind: "article" key: "HorowitzKN85" - title: "Jeannie: granting java native interface developers their wishes" author: - name: "Martin Hirzel" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/hirzel.index.html" - name: "Robert Grimm" link: "http://www.cs.nyu.edu/rgrimm/" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297030" links: doi: "http://doi.acm.org/10.1145/1297027.1297030" tags: - "Java" researchr: "https://researchr.org/publication/HirzelG07" cites: 0 citedby: 1 pages: "19-38" booktitle: "Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada" editor: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" publisher: "ACM" isbn: "978-1-59593-786-5" kind: "inproceedings" key: "HirzelG07" - title: "Interface Compilation: Steps Toward Compiling Program Interfaces as Languages" author: - name: "Dawson R. Engler" link: "https://researchr.org/alias/dawson-r.-engler" year: "1999" doi: "http://computer.org/tse/ts1999/e0387abs.htm" links: doi: "http://computer.org/tse/ts1999/e0387abs.htm" tags: - "programming languages" - "compiler" researchr: "https://researchr.org/publication/Engler99" cites: 0 citedby: 1 journal: "IEEE Trans. Software Eng." volume: "25" number: "3" pages: "387-400" kind: "article" key: "Engler99" - title: "Derivation and Refinement of Textual Syntax for Models" author: - name: "Florian Heidenreich" link: "http://fheidenreich.de/work/" - name: "Jendrik Johannes" link: "http://jjohannes.de" - name: "Sven Karol" link: "http://st.inf.tu-dresden.de" - name: "Mirko Seifert" link: "http://www1.inf.tu-dresden.de/~ms72/" - name: "Christian Wende" link: "http://st.inf.tu-dresden.de" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02674-4_9" abstract: "Textual Syntax as a form of model representation has made its way to the Model-Driven Software Development community and is considered a viable alternative to graphical representations. To support the design and implementation of text editing facilities many concrete syntax and model mapping tools have emerged. Despite the maturity of these tools, users still spend considerable effort to specify syntaxes and generate editors even for simple metamodels. To reduce this effort, we propose to refine a specification that is automatically derived from a given metamodel. We argue that defaults in a customisable setting enable developers to quickly realise text-based editors for models. In particular in settings where metamodels evolve, such a procedure is beneficial. To evaluate this idea we present EMFText, an EMF/Eclipse integrated tool for agile Textual Syntax development. We show how default syntax can easily be tailored and refined to obtain a custom text editor for EMF models and demonstrate our approach by two examples." links: doi: "http://dx.doi.org/10.1007/978-3-642-02674-4_9" tags: - "rule-based" - "Eclipse" - "model editor" - "meta-model" - "modeling language" - "modeling" - "refinement" - "language engineering" - "software language engineering" - "language modeling" - "language design" - "metamodelling" - "EMF" - "model-driven development" - "software engineering" - "model-driven engineering" - "Meta-Environment" - "emftext" - "design" - "systematic-approach" - "concrete syntax" - "textual concrete syntax" researchr: "https://researchr.org/publication/HeidenreichJKSW09" cites: 0 citedby: 1 pages: "114-129" booktitle: "Model Driven Architecture - Foundations and Applications, 5th European Conference, ECMDA-FA 2009, Enschede, The Netherlands, June 23-26, 2009. Proceedings" editor: - name: "Richard F. Paige" link: "http://www-users.cs.york.ac.uk/~paige/" - name: "Alan Hartman" link: "https://researchr.org/alias/alan-hartman" - name: "Arend Rensink" link: "http://wwwhome.cs.utwente.nl/~rensink/" volume: "5562" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-02673-7" kind: "inproceedings" key: "HeidenreichJKSW09" - title: "Domain-Specific Languages: An Annotated Bibliography" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2000" doi: "http://doi.acm.org/10.1145/352029.352035" abstract: "We survey the literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems. We list a selection of 75 key publications in the area, and provide a summary for each of the papers. Moreover, we discuss terminology, risks and benefits, example domain-specific languages, design methodologies, and implementation techniques." links: doi: "http://doi.acm.org/10.1145/352029.352035" tags: - "Domain-specific languages" - "bibliography" - "language design" - "maintenance" - "survey" - "annotated bibliography" - "design" - "domain-specific language" researchr: "https://researchr.org/publication/DeursenKV00" cites: 79 citedby: 4 journal: "SIGPLAN Notices" volume: "35" number: "6" pages: "26-36" kind: "article" key: "DeursenKV00" - title: "Accelerating the Creation of Customized, Language-Specific IDEs in Eclipse" author: - name: "Philippe Charles" link: "http://lpg.sourceforge.net/" - name: "Robert M. Fuhrer" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/fuhrer.index.html" - name: "Stanley M. Sutton Jr." link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/suttons.index.html" - name: "Evelyn Duesterwald" link: "http://www.research.ibm.com/people/d/duester/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2009" abstract: "Full-featured integrated development environments have become critical to the adoption of new programming languages. Key to the success of these IDEs is the provision of services tailored to the languages. However, modern IDEs are large and complex, and the cost of constructing one from scratch can be prohibitive. Generators that work from language specifications reduce costs but produce environments that do not fully reflect distinctive language characteristics. We believe that there is a practical middle ground between these extremes that can be effectively addressed by an open, semi-automated strategy to IDE development. This strategy is to reduce the burden of IDE development as much as possible, especially for internal IDE details, while opening opportunities for significant customizations to IDE services. To reduce the effort needed for customization we provide a combination of frameworks, templates, and generators. We demonstrate an extensible IDE architecture that embodies this strategy, and we show that this architecture can be used to produce customized IDEs, with a moderate amount of effort, for a variety of interesting languages. " tags: - "programming languages" - "object-oriented programming" - "IMP" - "Eclipse" - "meta programming" - "architecture" - "extreme programming" - "source-to-source" - "DSL" - "programming" - "Meta-Environment" - "extensible language" - "feature-oriented programming" - "IDE" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/imp" cites: 0 citedby: 2 booktitle: "Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA." editor: - name: "Shail Arora" link: "https://researchr.org/alias/shail-arora" - name: "Gary T. Leavens" link: "http://www.cs.ucf.edu/~leavens/homepage.html" kind: "inproceedings" key: "imp" - title: "Superlanguages: Developing Languages and Applications with XMF" author: - name: "A. Clark" link: "https://researchr.org/alias/a.-clark" - name: "P. Sammut" link: "https://researchr.org/alias/p.-sammut" - name: "J. Willans" link: "https://researchr.org/alias/j.-willans" year: "2008" month: "March" doi: "http://itcentre.tvu.ac.uk/~clark/Papers/Superlanguages.pdf" links: doi: "http://itcentre.tvu.ac.uk/~clark/Papers/Superlanguages.pdf" tags: - "extensible language" researchr: "https://researchr.org/publication/superlanguages" cites: 0 citedby: 2 edition: "1" kind: "book" key: "superlanguages" - title: "Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions" author: - name: "Sergei Kojarski" link: "https://researchr.org/alias/sergei-kojarski" - name: "David H. Lorenz" link: "https://researchr.org/alias/david-h.-lorenz" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297065" links: doi: "http://doi.acm.org/10.1145/1297027.1297065" tags: - "weaving" researchr: "https://researchr.org/publication/KojarskiL07%3A0" cites: 0 citedby: 0 pages: "515-534" booktitle: "Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada" editor: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" publisher: "ACM" isbn: "978-1-59593-786-5" kind: "inproceedings" key: "KojarskiL07:0" - title: "Two Application languages in software production" author: - name: "Ladd, David A." link: "https://researchr.org/alias/ladd%2C-david-a." - name: "Ramming, J. Christopher" link: "https://researchr.org/alias/ramming%2C-j.-christopher" year: "1994" abstract: "PRL5 is an application-oriented language used to maintain the integrity of databases in the AT&T 5ESSTM telecommunications switch. PRL5 is unusual in that it was explicitly designed to eliminate a number of different coding and inspection steps rather than simply to improve individual productivity. Because PRL5 replaced an earlier high-level language named PRL, which in turn replaced a combination of English and C on the same project, it is possible to trace the effect of several fundamentally different languages on this single project. The linguistic evolution has been away from languages describing computation toward a \"declarative\" high-level language that has been deliberately restricted to accommodate the requirements of certain analyses. Algorithms for checking database constraints are no longer specified by human developers; instead, code is generated from static representations of the constraints themselves. These constraint descriptions can be used in more than one way, whereas a program to check constraints is useful only for performing that particular computation. In effect, PRL5 allows the re-use of project information at a high level, before it has been specialized into particular implementations. The effects of this re-use on quality, interval, and cost are tangible. A key lesson is that application-oriented languages should not be designed to describe computation, they should be designed to express useful facts from which one or more computations can be derived." tags: - "programming languages" - "object-oriented programming" - "language design" - "constraints" - "software evolution" - "C++" - "subject-oriented programming" - "database" - "feature-oriented programming" researchr: "https://researchr.org/publication/LaddR94-0" cites: 0 citedby: 1 booktitle: "VHLLS'94: Proceedings of the USENIX 1994 Very High Level Languages Symposium Proceedings on USENIX 1994 Very High Level Languages Symposium Proceedings" address: "Berkeley, CA, USA" publisher: "USENIX Association" kind: "inproceedings" key: "LaddR94-0" - title: "MultiJava: Design rationale, compiler implementation, and applications" author: - name: "Curtis Clifton" link: "https://researchr.org/alias/curtis-clifton" - name: "Todd D. Millstein" link: "https://researchr.org/alias/todd-d.-millstein" - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" - name: "Craig Chambers" link: "https://researchr.org/alias/craig-chambers" year: "2006" doi: "http://doi.acm.org/10.1145/1133651.1133655" links: doi: "http://doi.acm.org/10.1145/1133651.1133655" tags: - "compiler" - "design" researchr: "https://researchr.org/publication/CliftonMLC06" cites: 0 citedby: 1 journal: "ACM Transactions on Programming Languages and Systems" volume: "28" number: "3" pages: "517-575" kind: "article" key: "CliftonMLC06" - title: "Exercises in free syntax. Syntax definition, parsing, and assimilation of language conglomerates" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" year: "2008" month: "January" links: "thesis": "http://martin.bravenboer.name/thesis.html" tags: - "syntax definition" - "assimilation" - "parsing" researchr: "https://researchr.org/publication/Bra08" cites: 168 citedby: 1 school: "Utrecht University" address: "Utrecht, The Netherlands" advisor: - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" - name: "Eelco Visser" link: "http://eelcovisser.org" kind: "phdthesis" key: "Bra08" - title: "Scannerless Generalized-LR Parsing" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1997" month: "July" abstract: "Current deterministic parsing techniques have a number of problems. These include the limitations of parser generators for deterministic languages and the complex interface between scanner and parser. Scannerless parsing is a parsing technique in which lexical and context-free syntax are integrated into one grammar and are all handled by a single context-free analysis phase. This approach has a number of advantages including discarding of the scanner and lexical disambiguation by means of the context in which a lexical token occurs, Scannerless parsing generates a number of interesting problems as well. Integrated grammars do not fit the requirements of the conventional deterministic parsing techniques. A plain context-free grammar formalism leads to unwieldy grammars. if all lexical information is included. Lexical disambiguation needs to be reformulated for use in context-free parsing. The scannerless generalized-LR parsing approach presented in this paper solves these problems. Grammar normalization is used to support an expressive grammar formalism without complicating the underlying machinery. Follow restrictions are used to express longest match lexical disambiguation. Reject productions are used to express the prefer keywords rule for lexical disambiguation. The SLR parser generation algorithm is adapted to implement disambiguation by general priority and associativity declarations and to interpret follow restrictions. Generalized-LR parsing is used to provide dynamic lookahead and to support parsing of arbitrary context-free grammars including ambiguous ones. An adaptation of the GLR algorithm supports the interpretation of grammars with reject productions. " tags: - "parsing algorithm" - "GLR parsing" - "rule-based" - "SDF" - "lexical syntax" - "disambiguation" - "GLR" - "analysis" - "rules" - "context-aware" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/Visser97-SGLR" cites: 0 citedby: 6 institution: "Programming Research Group, University of Amsterdam" number: "P9707" kind: "techreport" key: "Visser97-SGLR" - title: "The Synthesizer Generator" author: - name: "Thomas W. Reps" link: "http://pages.cs.wisc.edu/~reps/" - name: "Tim Teitelbaum" link: "http://www.cs.cornell.edu/Info/People/tt/Tim_Teitelbaum.html" year: "1984" doi: "http://doi.acm.org/10.1145/800020.808247" abstract: " Programs are hierarchical compositions of formulae satisfying structural and extra-structural relationships. A program editor can use knowledge of such relationships to detect and provide immediate feedback about violations of them. The Synthesizer Generator is a tool for creating such editors from language descriptions. An editor designer specifies the desired relationships and the feedback to be given when they are violated, as well as a user interface; from the specification, the Synthesizer Generator creates a full-screen editor for manipulating programs in the language. " links: doi: "http://doi.acm.org/10.1145/800020.808247" tags: - "programming languages" - "composition" - "Synthesizer Generator" researchr: "https://researchr.org/publication/RepsT84" cites: 16 citedby: 1 pages: "42-48" booktitle: "Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments" address: "New York, USA" publisher: "ACM" kind: "inproceedings" key: "RepsT84" - title: "What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation" author: - name: "David Bruce" link: "https://researchr.org/alias/david-bruce" year: "1997" doi: "10.1.1.56.4176" abstract: "General-purpose programming languages are a Good Thing, but domain-specific languages can be better. Such languages provide a natural vocabulary for concepts that are fundamental to the problem domain, whilst with general-purpose languages one is reduced to idiom: idiom, moreover, that is of its very nature alien to the host language - not to mention uncheckable. In addition, domain knowledge often inspires a range of optimizations that would not otherwise suggest themselves, let alone be practical. Domain-specific languages necessarily differ from general-purpose languages in their purpose, and therefore design, but we claim that the underlying principles can and should be the same. There need be no contradiction here: one is merely enriching the conceptual basis upon which the language is grown. The principled introduction of new concepts may have profound - and sometimes unanticipated! - consequences, however, so language designers (and implementors) must be prepared to follow these to their natural conclusion.We illustrate these ideas more concretely by reference to apostle, a language for (parallel) discrete event simulation. Here the new concepts are time and concurrency, but apostle's real power comes from the orthogonality of their introduction. The use of these and other features are easily checked in a precise yet general manner by means of an 'effect' system, which also serves to determine the applicability of optimizations, both general-purpose and domain-specific." tags: - "programming languages" - "optimization" - "language design" - "parallel programming" - "principles" - "programming" - "program optimization" - "design" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/Bruce97" cites: 0 citedby: 1 kind: "article" key: "Bruce97" - title: "The Java syntactic extender (JSE)" author: - name: "Bachrach, Jonthan" link: "https://researchr.org/alias/bachrach%2C-jonthan" - name: "Playford, Keith" link: "https://researchr.org/alias/playford%2C-keith" year: "2001" doi: "http://doi.acm.org/10.1145/504282.504285" links: doi: "http://doi.acm.org/10.1145/504282.504285" tags: - "Java" researchr: "https://researchr.org/publication/504285" cites: 0 citedby: 2 booktitle: "OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications" address: "New York, NY, USA" publisher: "ACM" isbn: "1-58113-335-9" kind: "inproceedings" key: "504285" - title: "Towards Monolingual Programming Environments" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1985" doi: "http://doi.acm.org/10.1145/3318.3321" links: doi: "http://doi.acm.org/10.1145/3318.3321" tags: - "meta programming" - "meta-model" - "programming" - "Meta-Environment" researchr: "https://researchr.org/publication/HeeringK85" cites: 0 citedby: 0 journal: "ACM Transactions on Programming Languages and Systems" volume: "7" number: "2" pages: "183-213" kind: "article" key: "HeeringK85" - title: "A Family of Syntax Definition Formalisms" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1997" month: "August" abstract: "In the next chapters we present the design and specification of a family of syntax definition formalisms. The kernel of this family of formalisms is formed by context-free grammars. A number of orthogonal extensions to the kernel is defined. Many of these extensions are defined in terms of the primitives of the kernel by means of normalization functions. This provides a framework for constructing new formalisms by adapting and extending previous ones. Included in the family are the following extensions of context-free grammars, uniform definition of lexical and context-free syntax, variables, disambiguation by priorities, follow restrictions and reject productions, a rich set of regular expressions defined in terms of context-free productions, character classes, aliases, parameterized modules with hidden imports and renamings. The accumulation of these extensions is the syntax definition formalism SDF. This chapter provides an introduction to SDF and gives an overview of the design and specification of the family of formalisms." links: "postscript": "http://www.st.ewi.tudelft.nl/~eelco/papers/P9706.ps" tags: - "syntax definition" - "SDF" - "lexical syntax" - "scannerless" - "disambiguation" - "context-aware" - "parsing" - "design" - "scannerless parsing" - "ASF+SDF" - "grammar" researchr: "https://researchr.org/publication/Visser97-SDF" cites: 0 citedby: 2 institution: "Programming Research Group, University of Amsterdam" number: "P9706" kind: "techreport" key: "Visser97-SDF" - title: "Using parse tree validation to prevent SQL injection attacks" author: - name: "Gregory Buehrer" link: "https://researchr.org/alias/gregory-buehrer" - name: "Bruce W. Weide" link: "https://researchr.org/alias/bruce-w.-weide" - name: "Paolo A. G. Sivilotti" link: "https://researchr.org/alias/paolo-a.-g.-sivilotti" year: "2005" doi: "http://doi.acm.org/10.1145/1108473.1108496" links: doi: "http://doi.acm.org/10.1145/1108473.1108496" tags: - "injection attack" - "SQL" - "parsing" researchr: "https://researchr.org/publication/BuehrerWS05" cites: 0 citedby: 1 pages: "106-113" booktitle: "Proceedings of the 5th International Workshop on Software Engineering and Middleware, SEM 2005, Lisbon, Portugal, September 5-6, 2005" editor: - name: "Elisabetta Di Nitto" link: "https://researchr.org/alias/elisabetta-di-nitto" - name: "Amy L. Murphy" link: "https://researchr.org/alias/amy-l.-murphy" publisher: "ACM" kind: "inproceedings" key: "BuehrerWS05" - title: "Research Directions in Software Composition" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Theo Dirk Meijler" link: "http://nl.linkedin.com/in/theodirkmeijler" year: "1995" tags: - "composition" researchr: "https://researchr.org/publication/NierstraszM95" cites: 0 citedby: 0 journal: "ACM Computing Surveys" volume: "27" number: "2" pages: "262-264" kind: "article" key: "NierstraszM95" - title: "Statically scoped object adaptation with expanders" author: - name: "Alessandro Warth" link: "https://researchr.org/alias/alessandro-warth" - name: "Milan Stanojevic" link: "https://researchr.org/alias/milan-stanojevic" - name: "Todd D. Millstein" link: "http://www.cs.ucla.edu/~todd/" year: "2006" doi: "http://doi.acm.org/10.1145/1167473.1167477" links: doi: "http://doi.acm.org/10.1145/1167473.1167477" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/WarthSM06" cites: 0 citedby: 0 pages: "37-56" booktitle: "Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "http://portal.acm.org/author_page.cfm?id=81100131551&coll=GUIDE&dl=GUIDE&trk=0&CFID=51133021&CFTOKEN=87963901" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-348-4" kind: "inproceedings" key: "WarthSM06" - title: "Polyglot: An Extensible Compiler Framework for Java" author: - name: "Nathaniel Nystrom" link: "https://researchr.org/alias/nathaniel-nystrom" - name: "Michael R. Clarkson" link: "https://researchr.org/alias/michael-r.-clarkson" - name: "Andrew C. Myers" link: "https://researchr.org/alias/andrew-c.-myers" year: "2003" doi: "http://link.springer.de/link/service/series/0558/bibs/2622/26220138.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2622/26220138.htm" tags: - "Java" - "C++" - "compiler" researchr: "https://researchr.org/publication/NystromCM03" cites: 0 citedby: 4 pages: "138-152" booktitle: "Compiler Construction, 12th International Conference, CC 2003, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2003, Warsaw, Poland, April 7-11, 2003, Proceedings" editor: - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" volume: "2622" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-00904-3" kind: "inproceedings" key: "NystromCM03" - title: "Decorated Attribute Grammars: Attribute Evaluation Meets Strategic Programming" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_11" abstract: "Attribute grammars are a powerful specification formalism for tree-based computation, particularly for software language processing. Various extensions have been proposed to abstract over common patterns in attribute grammar specifications. These include various forms of copy rules to support non-local dependencies, collection attributes, and expressing dependencies that are evaluated to a fixed point. Rather than implementing extensions natively in an attribute evaluator, we propose attribute decorators that describe an abstract evaluation mechanism for attributes, making it possible to provide such extensions as part of a library of decorators. Inspired by strategic programming, decorators are specified using generic traversal operators. To demonstrate their effectiveness, we describe how to employ decorators in name, type, and flow analysis. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_11" "technical report (pdf)": "http://www.lclnet.nl/publications/TUD-SERG-2008-038a.pdf" "project home page": "http://strategoxt.org/Stratego/Aster" tags: - "programming languages" - "rule-based" - "attribute grammars" - "program analysis" - "etaps" - "data-flow language" - "pattern language" - "generic programming" - "Stratego/XT" - "traversal" - "analysis" - "data-flow programming" - "data-flow" - "graph-rewriting" - "rules" - "C++" - "strategic programming" - "programming" - "rewriting" - "data-flow analysis" - "Aster" - "grammar" - "Stratego" researchr: "https://researchr.org/publication/KatsSV09" cites: 36 citedby: 1 pages: "142-157" booktitle: "Compiler Construction, 18th International Conference, CC 2009, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, York, UK, March 22-29, 2009. Proceedings" editor: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" volume: "5501" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00721-7" kind: "inproceedings" key: "KatsSV09" - title: "Growing a Language: The GLooPerspective" author: - name: "Markus Lumpe" link: "https://researchr.org/alias/markus-lumpe" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-78789-1_1" abstract: " The design of programming languages is, in general, geared towards accumulation rather than composition of features. However, by adding an ever-increasing number of built-in abstractions, any programming language is eventually at risk to reach a critical mass at which it may become increasingly difficult for designers to maintain and for developers to use an evolving language appropriately. To tackle this language design paradox, we have developed GLoo, a small open-ended dynamic language, whose design philosophy aims at a unified approach in which program and language evolution result directly from the definition of extensible domain sub-languages. Surprisingly, these extensible domain sub-languages not only provide a framework to capture domain expertise, but also give rise to a powerful compositional model for language extension. To demonstrate the effectiveness of this approach, we develop the Language of Namespaces and Traits in this paper. We define this extensible domain sub-language as an aggregate of various forms of object-oriented language support. Using the Language of Namespaces and Traits as example, we show that GLoo’s extension model plays a crucial role in achieving a flexible compositional approach for the design of readily-available and extensible programming abstractions. " links: doi: "http://dx.doi.org/10.1007/978-3-540-78789-1_1" tags: - "programming languages" - "object-oriented programming" - "meta programming" - "meta-model" - "language extension" - "growing a language" - "modeling language" - "language modeling" - "composition" - "language design" - "source-to-source" - "object-role modeling" - "programming" - "subject-oriented programming" - "abstraction" - "Meta-Environment" - "design" - "extensible language" - "systematic-approach" - "feature-oriented programming" - "open-source" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Lumpe08" cites: 0 citedby: 0 pages: "1-19" booktitle: "Software Composition, 7th International Symposium, SC 2008, Budapest, Hungary, March 29-30, 2008. Proceedings" editor: - name: "Cesare Pautasso" link: "http://www.pautasso.info/" - name: "Éric Tanter" link: "http://pleiad.dcc.uchile.cl/people/etanter" volume: "4954" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-78788-4" kind: "inproceedings" key: "Lumpe08" - title: "MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "René de Groot" link: "http://strategoxt.org/Main/ReneDeGroot" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "http://dx.doi.org/10.1007/11877028_10" abstract: "General-purpose programming languages provide limited facilities for expressing domain-specific concepts in a natural manner. All domain concepts need to be captured using the same generic syntactic and semantic constructs. Generative programming methods and program transformation techniques can be used to overcome this lack of abstraction in general-purpose languages. In this tutorial we describe the MetaBorg method for embedding domain-specific languages, tailored syntactically and semantically to the application domain at hand, in a general-purpose language. MetaBorg is based on Stratego/XT, a language and toolset for the implementation of program transformation systems, which is used for the definition of syntactic embeddings and assimilation of the embedded constructs into the surrounding code. We illustrate MetaBorg with three examples. JavaSwul is a custom designed language for implementing graphical user-interfaces, which provides high-level abstractions for component composition and event-handling. JavaRegex is a new embedding of regular expression matching and string rewriting. JavaJava is an embedding of Java in Java for generating Java code. For these cases we show how Java programs in these domains become dramatically more readable, and we give an impression of the implementation of the language embeddings. " links: doi: "http://dx.doi.org/10.1007/11877028_10" tags: - "generative programming" - "programming languages" - "rule-based" - "transformation engineering" - "Java" - "generic programming" - "assimilation" - "graph transformation" - "Stratego/XT" - "language engineering" - "domain-specific language embedding" - "transformation language" - "composition" - "MetaBorg" - "language design" - "graph-rewriting" - "transformation system" - "language embedding" - "DSL" - "programming" - "abstraction" - "language composition" - "rewriting" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerGV06" cites: 0 citedby: 3 pages: "297-311" booktitle: "Generative and Transformational Techniques in Software Engineering, International Summer School, GTTSE 2005, Braga, Portugal, July 4-8, 2005. Revised Papers" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" volume: "4143" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-45778-X" kind: "inproceedings" key: "BravenboerGV06" - title: "Preventing injection attacks with syntax embeddings" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Dolstra" link: "https://researchr.org/profile/eelcodolstra/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://doi.acm.org/10.1145/1289971.1289975" abstract: "Software written in one language often needs to construct sentences in another language, such as SQL queries, XML output, or shell command invocations. This is almost always done using unhygienic string manipulation, the concatenation of constants and client-supplied strings. A client can then supply specially crafted input that causes the constructed sentence to be interpreted in an unintended way, leading to an injection attack. We describe a more natural style of programming that yields code that is impervious to injections by construction. Our approach embeds the grammars of the guest languages (e.g., SQL) into that of the host language (e.g., Java) and automatically generates code that maps the embedded language to constructs in the host language that reconstruct the embedded sentences, adding escaping functions where appropriate. This approach is generic, meaning that it can be applied with relative ease to any combination of host and guest languages." links: doi: "http://doi.acm.org/10.1145/1289971.1289975" successor: "https://researchr.org/publication/BravenboerDV10" tags: - "programming languages" - "syntax embedding" - "Java" - "preventing injection attacks" - "generic programming" - "injection attack" - "SDF" - "XML" - "embedded software" - "XML Schema" - "SQL" - "security" - "language embedding" - "DSL" - "programming" - "systematic-approach" - "ASF+SDF" - "grammar" - "query language" researchr: "https://researchr.org/publication/BravenboerDV07" cites: 0 citedby: 4 pages: "3-12" booktitle: "Generative Programming and Component Engineering, 6th International Conference, GPCE 2007" editor: - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Julia L. Lawall" link: "http://www.diku.dk/hjemmesider/ansatte/julia/" address: "Salzburg, Austria" publisher: "ACM" isbn: "978-1-59593-855-8" kind: "inproceedings" key: "BravenboerDV07" - title: "Improving Domain-Specific Language Reuse with Software Product Line Techniques" author: - name: "Jules White" link: "https://researchr.org/alias/jules-white" - name: "James H. Hill" link: "https://researchr.org/alias/james-h.-hill" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Sumant Tambe" link: "https://researchr.org/alias/sumant-tambe" - name: "Aniruddha S. Gokhale" link: "https://researchr.org/alias/aniruddha-s.-gokhale" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2009.95" links: doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2009.95" tags: - "DSLsAndPLE" - "reuse" - "C++" - "software product line" - "product line" - "domain-specific language" researchr: "https://researchr.org/publication/WhiteHGTGS09" cites: 0 citedby: 0 journal: "IEEE Software" volume: "26" number: "4" pages: "47-53" kind: "article" key: "WhiteHGTGS09" - title: "DSL evolution through composition" author: - name: "Cazzola, Walter" link: "https://researchr.org/alias/cazzola%2C-walter" - name: "Poletti, Davide" link: "https://researchr.org/alias/poletti%2C-davide" year: "2010" doi: "http://doi.acm.org/10.1145/1890683.1890689" links: doi: "http://doi.acm.org/10.1145/1890683.1890689" "url": "http://doi.acm.org/10.1145/1890683.1890689" tags: - "composition" - "DSL" researchr: "https://researchr.org/publication/Cazzola%3A2010%3ADET%3A1890683.1890689" cites: 0 citedby: 0 booktitle: "Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution" series: "RAM-SE '10" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-4503-0536-5" kind: "inproceedings" key: "Cazzola:2010:DET:1890683.1890689" - title: "SQL DOM: compile time checking of dynamic SQL statements" author: - name: "Russell A. McClure" link: "https://researchr.org/alias/russell-a.-mcclure" - name: "Ingolf H. Krüger" link: "https://researchr.org/alias/ingolf-h.-kr%C3%BCger" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062487" links: doi: "http://doi.acm.org/10.1145/1062455.1062487" tags: - "SQL" - "compiler" researchr: "https://researchr.org/publication/McClureK05" cites: 0 citedby: 2 pages: "88-96" booktitle: "27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, Missouri, USA" editor: - name: "Gruia-Catalin Roman" link: "https://researchr.org/alias/gruia-catalin-roman" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" - name: "Bashar Nuseibeh" link: "https://researchr.org/alias/bashar-nuseibeh" publisher: "ACM" kind: "inproceedings" key: "McClureK05"