publications: - title: "Compiling language definitions: the ASF+SDF compiler" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Pieter A. Olivier" link: "https://researchr.org/alias/pieter-a.-olivier" year: "2002" doi: "http://doi.acm.org/10.1145/567097.567099" links: doi: "http://doi.acm.org/10.1145/567097.567099" tags: - "SDF" - "compiler" - "ASF+SDF" researchr: "https://researchr.org/publication/BrandHKO02" cites: 1 citedby: 0 journal: "TOPLAS" volume: "24" number: "4" pages: "334-368" kind: "article" key: "BrandHKO02" - title: "Incremental Generation of Parsers" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jan Rekers" link: "http://www.cwi.nl" year: "1989" tags: - "parsing" - "incremental" researchr: "https://researchr.org/publication/HeeringKR89" cites: 0 citedby: 0 pages: "179-191" booktitle: "PLDI" kind: "inproceedings" key: "HeeringKR89" - 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: "TOPLAS" volume: "7" number: "2" pages: "183-213" kind: "article" key: "HeeringK85" - 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" 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: "Minitrack Introduction" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" year: "2002" doi: "http://csdl.computer.org/comp/proceedings/hicss/2002/1435/09/14350279.pdf" links: doi: "http://csdl.computer.org/comp/proceedings/hicss/2002/1435/09/14350279.pdf" researchr: "https://researchr.org/publication/HeeringM02" cites: 0 citedby: 0 pages: "279" booktitle: "hicss" kind: "inproceedings" key: "HeeringM02" - title: "Toward a Complete Transformational Toolkit for Compilers" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "T. B. Dinesh" link: "https://researchr.org/alias/t.-b.-dinesh" - name: "John Field" link: "http://www.research.ibm.com/people/j/jfield/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "1997" doi: "http://doi.acm.org/10.1145/265943.265944" links: doi: "http://doi.acm.org/10.1145/265943.265944" tags: - "completeness" - "compiler" - "transformation" researchr: "https://researchr.org/publication/BergstraDFH97" cites: 0 citedby: 0 journal: "TOPLAS" volume: "19" number: "5" pages: "639-684" kind: "article" key: "BergstraDFH97" - title: "Application Software, Domain-Specific Languages, and Language Design Assistants" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "2000" doi: "http://arxiv.org/abs/cs.PL/0005002" links: doi: "http://arxiv.org/abs/cs.PL/0005002" tags: - "language design" - "design" - "domain-specific language" researchr: "https://researchr.org/publication/cs-PL-0005002" cites: 0 citedby: 0 journal: "corr" volume: "cs.PL/0005002" kind: "article" key: "cs-PL-0005002" - title: "Which Data Types have omega-complete Initial Algebra Specifications?" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "1994" tags: - "completeness" - "data-flow" - "algebraic specification" - " algebra" researchr: "https://researchr.org/publication/BergstraH94" cites: 0 citedby: 0 journal: "TCS" volume: "124" number: "1" pages: "149-168" kind: "article" key: "BergstraH94" - title: "Semantics of Programming Languages: A Tool-Oriented Approach" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1999" doi: "http://arxiv.org/abs/cs.PL/9911001" links: doi: "http://arxiv.org/abs/cs.PL/9911001" tags: - "programming languages" - "object-oriented programming" - "semantics" - "programming" - "subject-oriented programming" - "systematic-approach" - "feature-oriented programming" researchr: "https://researchr.org/publication/cs-PL-9911001" cites: 0 citedby: 0 journal: "corr" volume: "cs.PL/9911001" kind: "article" key: "cs-PL-9911001" - title: "Incremental Generation of Lexical Scanners" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jan Rekers" link: "http://www.cwi.nl" year: "1992" doi: "http://doi.acm.org/10.1145/133233.133240" links: doi: "http://doi.acm.org/10.1145/133233.133240" tags: - "incremental" researchr: "https://researchr.org/publication/HeeringKR92" cites: 0 citedby: 1 journal: "TOPLAS" volume: "14" number: "4" pages: "490-520" kind: "article" key: "HeeringKR92" - 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 Comput. Surv." volume: "37" number: "4" pages: "316-344" kind: "article" key: "MernikHS05" - title: "Homomorphism Preserving Algebraic Specifications Require Hidden Sorts" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "1995" month: "May" tags: - "algebraic specification" - " algebra" researchr: "https://researchr.org/publication/BergstraH95" cites: 0 citedby: 0 journal: "iandc" volume: "119" number: "1" pages: "119-123" kind: "article" key: "BergstraH95" - title: "A Complete Transformational Toolkit for Compilers" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "T. B. Dinesh" link: "https://researchr.org/alias/t.-b.-dinesh" - name: "John Field" link: "http://www.research.ibm.com/people/j/jfield/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "1996" tags: - "completeness" - "compiler" - "transformation" researchr: "https://researchr.org/publication/BergstraDFH96" cites: 0 citedby: 0 pages: "92-107" booktitle: "ESOP" kind: "inproceedings" key: "BergstraDFH96" - title: "Compiling Language Definitions: The ASF+SDF Compiler" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Pieter A. Olivier" link: "https://researchr.org/alias/pieter-a.-olivier" year: "2000" doi: "http://arxiv.org/abs/cs.PL/0007008" links: doi: "http://arxiv.org/abs/cs.PL/0007008" tags: - "SDF" - "compiler" - "ASF+SDF" researchr: "https://researchr.org/publication/cs-PL-0007008" cites: 0 citedby: 0 journal: "corr" volume: "cs.PL/0007008" kind: "article" key: "cs-PL-0007008" - title: "Semantics of Programming Languages: A Tool-Oriented Approach" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2000" tags: - "programming languages" - "object-oriented programming" - "semantics" - "programming" - "subject-oriented programming" - "systematic-approach" - "feature-oriented programming" researchr: "https://researchr.org/publication/HeeringK00" cites: 0 citedby: 0 journal: "SIGPLAN" volume: "35" number: "3" pages: "39-48" kind: "article" key: "HeeringK00" - title: "Incremental Generation of Parsers" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jan Rekers" link: "http://www.cwi.nl" year: "1990" doi: "http://www.computer.org/tse/ts1990/e1344abs.htm" links: doi: "http://www.computer.org/tse/ts1990/e1344abs.htm" tags: - "parsing" - "incremental" researchr: "https://researchr.org/publication/HeeringKR90" cites: 0 citedby: 1 journal: "TSE" volume: "16" number: "12" pages: "1344-1351" kind: "article" key: "HeeringKR90" - 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" volume: "24" number: "11" pages: "43-75" kind: "article" key: "HeeringHKR89" - title: "Equations as a Uniform Framework for Partial Evaluation and Abstract Interpretation" author: - name: "John Field" link: "http://www.research.ibm.com/people/j/jfield/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "T. B. Dinesh" link: "https://researchr.org/alias/t.-b.-dinesh" year: "1998" doi: "http://doi.acm.org/10.1145/289121.289123" links: doi: "http://doi.acm.org/10.1145/289121.289123" tags: - "partial evaluation" researchr: "https://researchr.org/publication/FieldHD98" cites: 0 citedby: 0 journal: "ACM Comput. Surv." volume: "30" number: "3es" pages: "2" kind: "article" key: "FieldHD98" - title: "Partial Evaluation and omega-Completeness of Algebraic Specifications" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "1986" tags: - "completeness" - "algebraic specification" - " algebra" - "partial evaluation" researchr: "https://researchr.org/publication/Heering86" cites: 0 citedby: 0 journal: "TCS" volume: "43" pages: "149-167" kind: "article" key: "Heering86" - title: "Quantification of structural information: on a question raised by Brooks" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" year: "2003" doi: "http://doi.acm.org/10.1145/773126.773141" links: doi: "http://doi.acm.org/10.1145/773126.773141" researchr: "https://researchr.org/publication/Heering03" cites: 0 citedby: 0 journal: "sigsoft" volume: "28" number: "3" pages: "6" kind: "article" key: "Heering03" - 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: "2000" tags: - "optimization" - " algebra" - "programming" - "program optimization" researchr: "https://researchr.org/publication/DineshHH00" cites: 0 citedby: 0 journal: "sp" volume: "8" number: "4" pages: "247-259" kind: "article" key: "DineshHH00" - title: "Lazy and Incremental Program Generation" author: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jan Rekers" link: "http://www.cwi.nl" year: "1994" doi: "http://doi.acm.org/10.1145/177492.177750" links: doi: "http://doi.acm.org/10.1145/177492.177750" tags: - "laziness" - "incremental" researchr: "https://researchr.org/publication/HeeringKR94" cites: 0 citedby: 1 journal: "TOPLAS" volume: "16" number: "3" pages: "1010-1023" kind: "article" key: "HeeringKR94" - 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: "CC" kind: "inproceedings" key: "BrandDHJ01" - title: "Module Algebra" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1990" month: "April" doi: "http://doi.acm.org/10.1145/77600.77621" abstract: "An axiomatic algebraic calculus of modules is given that is based on the operators combination/union, export, renaming, and taking the visible signature. Four different models of module algebra are discussed and compared." links: doi: "http://doi.acm.org/10.1145/77600.77621" tags: - "rule-based" - "meta-model" - "modeling" - " algebra" - "Meta-Environment" researchr: "https://researchr.org/publication/BergstraHK90" cites: 0 citedby: 0 journal: "JACM" volume: "37" number: "2" pages: "335-372" kind: "article" key: "BergstraHK90" - title: "Higher-Order Algebra, Logic, and Term Rewriting, First International Workshop, HOA 93, Amsterdam, The Netherlands, September 23-24, 1993, Selected Papers" year: "1994" tags: - "term rewriting" - "graph-rewriting" - " algebra" - "logic" - "rewriting logic" - "rewriting" researchr: "https://researchr.org/publication/hoa%3A1993" cites: 0 citedby: 0 booktitle: "Higher-Order Algebra, Logic, and Term Rewriting, First International Workshop, HOA 93, Amsterdam, The Netherlands, September 23-24, 1993, Selected Papers" conference: "hoa" editor: - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Karl Meinke" link: "https://researchr.org/alias/karl-meinke" - name: "Bernhard Möller" link: "https://researchr.org/alias/bernhard-m%C3%B6ller" - name: "Tobias Nipkow" link: "https://researchr.org/alias/tobias-nipkow" volume: "816" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-58233-9" kind: "proceedings" key: "hoa:1993" - title: "Algebraic and Logic Programming, 6th International Joint Conference, ALP 97 - HOA 97, Southampton, U.K., Spetember 3-5, 1997, Proceedings" year: "1997" tags: - "logic programming" - " algebra" - "programming" - "logic" researchr: "https://researchr.org/publication/alp%3A1997" cites: 0 citedby: 0 booktitle: "Algebraic and Logic Programming, 6th International Joint Conference, ALP 97 - HOA 97, Southampton, U.K., Spetember 3-5, 1997, Proceedings" conference: "icalp" editor: - name: "Michael Hanus" link: "https://researchr.org/alias/michael-hanus" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Karl Meinke" link: "https://researchr.org/alias/karl-meinke" volume: "1298" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-63459-2" kind: "proceedings" key: "alp:1997" - title: "Higher-Order Algebra, Logic, and Term Rewriting, Second International Workshop, HOA 95, Paderborn, Germany, September 21-22, 1995, Selected Papers" year: "1996" tags: - "term rewriting" - "graph-rewriting" - " algebra" - "logic" - "rewriting logic" - "rewriting" researchr: "https://researchr.org/publication/hoa%3A1995" cites: 0 citedby: 0 booktitle: "Higher-Order Algebra, Logic, and Term Rewriting, Second International Workshop, HOA 95, Paderborn, Germany, September 21-22, 1995, Selected Papers" conference: "hoa" editor: - name: "Gilles Dowek" link: "https://researchr.org/alias/gilles-dowek" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Karl Meinke" link: "https://researchr.org/alias/karl-meinke" - name: "Bernhard Möller" link: "https://researchr.org/alias/bernhard-m%C3%B6ller" volume: "1074" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61254-8" kind: "proceedings" key: "hoa:1995" - 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"