publications: - 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: "A One-Stop-Shop for Software Evolution Tool Construction" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://ercim-news.ercim.eu/en88/special/a-one-stop-shop-for-software-evolution-tool-construction" links: doi: "http://ercim-news.ercim.eu/en88/special/a-one-stop-shop-for-software-evolution-tool-construction" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ercim/HillsKSV12" researchr: "https://researchr.org/publication/HillsKSV12" cites: 0 citedby: 0 journal: "ercim" volume: "2012" number: "88" kind: "article" key: "HillsKSV12" - title: "PHP AiR: Analyzing PHP systems with Rascal" author: - name: "Mark Hills" link: "https://researchr.org/alias/mark-hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2014" doi: "http://dx.doi.org/10.1109/CSMR-WCRE.2014.6747217" links: doi: "http://dx.doi.org/10.1109/CSMR-WCRE.2014.6747217" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/csmr/HillsK14" researchr: "https://researchr.org/publication/HillsK14" cites: 0 citedby: 0 pages: "454-457" booktitle: "CSMR" kind: "inproceedings" key: "HillsK14" - title: "Research Issues in the Renovation of Legacy Systems" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "1999" researchr: "https://researchr.org/publication/DeursenKV99" cites: 0 citedby: 0 pages: "1-21" booktitle: "FASE" kind: "inproceedings" key: "DeursenKV99" - title: "Scripting a refactoring with Rascal and Eclipse" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://doi.acm.org/10.1145/2328876.2328882" links: doi: "http://doi.acm.org/10.1145/2328876.2328882" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/HillsKV12" researchr: "https://researchr.org/publication/HillsKV12-1" cites: 0 citedby: 0 pages: "40-49" booktitle: "ICSE" kind: "inproceedings" key: "HillsKV12-1" - title: "Language Design for Meta-programming in the Software Composition Domain" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02655-3_1" links: doi: "http://dx.doi.org/10.1007/978-3-642-02655-3_1" tags: - "programming languages" - "meta programming" - "meta-model" - "composition" - "language design" - "programming" - "Meta-Environment" - "design" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/KlintVS09" cites: 0 citedby: 0 pages: "1-4" booktitle: "SC" kind: "inproceedings" key: "KlintVS09" - 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: "1992" links: published: "https://researchr.org/publication/DeursenKT93" researchr: "https://researchr.org/publication/DeursenKlintTip1992" cites: 0 citedby: 1 kind: "techreport" key: "DeursenKlintTip1992" - title: "Guidelines for Software Portability" author: - name: "Andrew S. Tanenbaum" link: "https://researchr.org/alias/andrew-s.-tanenbaum" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "A. P. Wim Böhm" link: "https://researchr.org/alias/a.-p.-wim-b%C3%B6hm" year: "1978" researchr: "https://researchr.org/publication/TanenbaumKB78" cites: 0 citedby: 0 journal: "SPE" volume: "8" number: "6" pages: "681-698" kind: "article" key: "TanenbaumKB78" - title: "Using Filters for the Disambiguation of Context-free Grammars" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1994" month: "October" abstract: "An ambiguous context-free grammar defines a language in which some sentences have multiple interpretations. For conciseness, ambiguous context-free grammars are frequently used to define even completely unambiguous languages and numerous disambiguation methods exist for specifying which interpretation is the intended one for each sentence. The existing methods can be divided in `parser specific' methods that describe how some parsing technique deals with ambiguous sentences and `logical' methods that describe the intended interpretation without reference to a specific parsing technique. We propose a framework of \\em filters\\/ to describe and compare a wide range of disambiguation problems in a parser-independent way. A filter is a function that selects from a set of parse trees (the canonical representation of the interpretations of a sentence) the intended trees. The framework enables us to define several general properties of disambiguation methods. The expressive power of filters is illustrated by several case studies. Finally, a start is made with the study of efficient implementation techniques for filters by exploiting the commutativity of parsing steps and filter steps for certain classes of filters." links: published: "https://researchr.org/publication/KlintV94" tags: - "case study" - "disambiguation" - "context-aware" - "parsing" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/KlintV94-P9426" cites: 0 citedby: 0 institution: "Programming Research Group, University of Amsterdam" type: "Technical Report" number: "P9426" kind: "techreport" key: "KlintV94-P9426" - title: "The Rascal Tutor" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" month: "october" abstract: "The Rascal Tutor is an interactive documentation environment for learning about meta programming with Rascal: http://tutor.rascal-mpl.org" tags: - "rascal" - "meta programming" - "meta-model" - "manual" - "programming" - "metaprogramming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/and-Jurgen-Vinju-and-Tijs-van-der-Storm2011" cites: 0 citedby: 0 organization: "Centrum Wiskunde & Informatica" edition: "first" kind: "manual" key: "and-Jurgen-Vinju-and-Tijs-van-der-Storm2011" - title: "Towards a One-Stop-Shop for Analysis, Transformation and Visualization of Software" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Bert Lisser" link: "https://researchr.org/alias/bert-lisser" - name: "Atze van der Ploeg" link: "https://researchr.org/alias/atze-van-der-ploeg" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_1" links: doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_1" tags: - "transformation" researchr: "https://researchr.org/publication/DBLP%3Aconf-sle-KlintLP11" cites: 0 citedby: 0 pages: "1-18" booktitle: "SLE" kind: "inproceedings" key: "DBLP:conf-sle-KlintLP11" - title: "A language development environment for Eclipse" 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: "A. Taeke Kooiker" link: "https://researchr.org/alias/a.-taeke-kooiker" year: "2003" doi: "http://doi.acm.org/10.1145/965660.965672" links: doi: "http://doi.acm.org/10.1145/965660.965672" tags: - "Eclipse" - "meta-model" - "model-driven development" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/BrandJKK03" cites: 0 citedby: 0 pages: "55-59" booktitle: "OOPSLA" kind: "inproceedings" key: "BrandJKK03" - 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" volume: "35" number: "6" pages: "26-36" kind: "article" key: "DeursenKV00" - 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: "Rascal: From Algebraic Specification to Meta-Programming" author: - name: "Jeroen van den Bos" link: "http://jvdb.org/" - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" tags: - "meta programming" - "meta-model" - "algebraic specification" - " algebra" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/ammse11" cites: 0 citedby: 0 pages: "15-32" booktitle: "Proceedings Second International Workshop on Algebraic Methods in Model-based Software Engineering (AMMSE), Zurich, Switzerland, June 30, 2011" kind: "inproceedings" key: "ammse11" - 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: "JSC" volume: "15" number: "5/6" pages: "523-545" kind: "article" key: "DeursenKT93" - title: "Term Rewriting Meets Aspect-Oriented Programming" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2005" doi: "http://dx.doi.org/10.1007/11601548_8" abstract: "We explore the connection between term rewriting systems (TRS) and aspect-oriented programming (AOP). Term rewriting is a para\\-digm that is used in fields such as program transformation and theorem proving. AOP is a method for decomposing software, complementary to the usual separation into programs, classes, functions, etc. An aspect represents code that is scattered across the components of an otherwise orderly decomposed system. Using AOP, such code can be modularized into aspects and then automatically weaved into a system. Aspect weavers are available for only a handful of languages. Term rewriting can offer a method for the rapid prototyping of weavers for more languages. We explore this claim by presenting a simple weaver implemented as a TRS. We also observe that TRS can benefit from AOP. For example, their flexibility can be enhanced by factoring out hardwired code for tracing and logging rewrite rules. We explore methods for enhancing TRS with aspects and present one application: automatically connecting an interactive debugger to a language specification. " links: doi: "http://dx.doi.org/10.1007/11601548_8" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "software components" - "graph transformation" - "transformation language" - "term rewriting" - "software component" - "weaving" - "graph-rewriting" - "rules" - "debugging" - "transformation system" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "rewriting" - "feature-oriented programming" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/KlintSV05" cites: 0 citedby: 0 pages: "88-105" booktitle: "BIRTHDAY" kind: "inproceedings" key: "KlintSV05" - title: "DeFacto: Language-Parametric Fact Extraction from Source Code" author: - name: "Bas Basten" link: "http://homepages.cwi.nl/~basten" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_17" abstract: "Abstract. Extracting facts from software source code forms the foundation for any software analysis. Experience shows, however, that extracting facts from programs written in a wide range of programming and application languages is labour-intensive and error-prone. We present DeFacto, a new technique for fact extraction. It amounts to annotating the context-free grammar of a language of interest with fact annotations that describe how to extract elementary facts for language elements such as, for instance, a declaration or use of a variable, a procedure or method call, or control flow statements. Once the elementary facts have been extracted, we use relational techniques to further enrich them and to perform the actual software analysis. We motivate and describe our approach, sketch a prototype implementation and assess it using various examples. A comparison with other fact extraction methods indicates that our fact extraction descriptions are considerably smaller than those of competing methods" links: doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_17" tags: - "programming languages" - "program analysis" - "points-to analysis" - "analysis" - "source-to-source" - "programming" - "context-aware" - "systematic-approach" - "open-source" - "grammar" researchr: "https://researchr.org/publication/BastenK08" cites: 0 citedby: 0 pages: "265-284" booktitle: "SLE" kind: "inproceedings" key: "BastenK08" - title: "The Intermediate Language for Pictures" author: - name: "Teus Hagen" link: "https://researchr.org/alias/teus-hagen" - name: "Paul J. W. ten Hagen" link: "https://researchr.org/alias/paul-j.-w.-ten-hagen" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Han Noot" link: "https://researchr.org/alias/han-noot" year: "1977" researchr: "https://researchr.org/publication/HagenHKN77" cites: 0 citedby: 0 pages: "173-178" booktitle: "ifip11-9" kind: "inproceedings" key: "HagenHKN77" - 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: "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: "About trivial software patents: The IsNot case" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2007" doi: "http://dx.doi.org/10.1016/j.scico.2006.09.003" abstract: "So-called “trivial” software patents undermine the patenting system and are detrimental for innovation. In this paper we use a case-based approach to get a better understanding of this phenomenon. First, we establish a baseline for studying the relation between software development and intellectual property rights by formulating a life cycle for the patenting system as well as three variations of the software life cycle: the defensive patent-aware software life cycle that prevents patent infringements, the more offensive patent-based software life cycle that aims both at preventing infringements and at creating new patents, and the IPR-based software life cycle that considers all forms of protection of intellectual property rights including copyright and secrecy. Next, we study an application for a software patent concerning the inequality operator and a granted European patent on memory management. We also briefly mention other examples of trivial patents. These examples serve to clarify the issues that arise when integrating patents in the software life cycle. In an extensive discussion, we cover the difference between expression and idea, the role of patent claims, software patents versus computer implemented inventions, the role of prior art, implications of software patents for open source software, for education, and for government-funded research. We conclude the discussion with the formulation of an “integrity axiom” for software patent authors and owners and sketch an agenda for software patent research. We conclude that patents are too important to be left to lawyers and economists and that a complete reinterpretation of the patenting system from a software engineering perspective is necessary to understand all ramifications of software patents. We end with explicit conclusions and policy recommendations." links: doi: "http://dx.doi.org/10.1016/j.scico.2006.09.003" tags: - "rule-based" - "completeness" - "case study" - "memory management" - "source-to-source" - "software engineering" - "context-aware" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/BergstraK07" cites: 0 citedby: 0 journal: "SCP" volume: "64" number: "3" pages: "264-285" kind: "article" key: "BergstraK07" - title: "Line Numbers Made Cheap" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1979" researchr: "https://researchr.org/publication/Klint79" cites: 0 citedby: 0 journal: "CACM" volume: "22" number: "10" pages: "557-559" kind: "article" key: "Klint79" - title: "The ToolBus: A Service-Oriented Architecture for Language-Processing Tools" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2007" doi: "http://ercim-news.ercim.eu/the-toolbus-a-service-oriented-architecture-for-language-processing-tools" links: doi: "http://ercim-news.ercim.eu/the-toolbus-a-service-oriented-architecture-for-language-processing-tools" tags: - "architecture" researchr: "https://researchr.org/publication/Klint07" cites: 0 citedby: 0 journal: "ercim" volume: "2007" number: "70" kind: "article" key: "Klint07" - 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: "Term Rewriting with Type-safe Traversal Functions" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2002" doi: "http://dx.doi.org/10.1016/S1571-0661(04)80602-9" abstract: "Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting. In this paper, many-sorted first-order term rewriting is extended with automatic tree traversal by adding two primitive tree traversal strategies and complementing them with three types of traversals. These so-called traversal functions can be either top-down or bottom-up. They can be sort preserving, mapping to a single sort, or a combination of these two. Traversal functions have a simple design, their application is type-safe in a first-order many-sorted setting and can be implemented efficiently. We describe the operational semantics of traversal functions and discuss applications." links: doi: "http://dx.doi.org/10.1016/S1571-0661(04)80602-9" tags: - "types" - "semantics" - "program analysis" - "graph transformation" - "traversal" - "term rewriting" - "analysis" - "graph-rewriting" - "operational semantics" - "higher-order transformations" - "rewriting" - "design" - "rewriting strategies" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/BrandKV02" cites: 0 citedby: 0 journal: "ENTCS" volume: "70" number: "6" pages: "100-117" kind: "article" key: "BrandKV02" - 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: "TOSEM" volume: "14" number: "3" pages: "331-380" kind: "article" key: "KlintLV05" - title: "Compilation and Memory Management for ASF+SDF" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Pieter A. Olivier" link: "https://researchr.org/alias/pieter-a.-olivier" year: "1999" tags: - "SDF" - "memory management" - "ASF+SDF" researchr: "https://researchr.org/publication/BrandKO99" cites: 0 citedby: 0 pages: "198-213" booktitle: "cc" kind: "inproceedings" key: "BrandKO99" - title: "A Study in String Processing Languages" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1985" researchr: "https://researchr.org/publication/Klint85" cites: 0 citedby: 0 volume: "205" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-16041-8" kind: "book" key: "Klint85" - title: "How Understanding and Restructuring Differ from Compiling - A Rewriting Perspective" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2003" doi: "http://computer.org/proceedings/iwpc/1883/18830002abs.htm" links: doi: "http://computer.org/proceedings/iwpc/1883/18830002abs.htm" tags: - "graph-rewriting" - "compiler" - "rewriting" researchr: "https://researchr.org/publication/Klint03" cites: 0 citedby: 0 pages: "2" booktitle: "IWPC" kind: "inproceedings" key: "Klint03" - title: "Enabling the creation of knowledge about software assets" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "2002" doi: "http://dx.doi.org/10.1016/S0169-023X(02)00038-1" links: doi: "http://dx.doi.org/10.1016/S0169-023X(02)00038-1" researchr: "https://researchr.org/publication/KlintV02" cites: 0 citedby: 0 journal: "DKE" volume: "41" number: "2-3" pages: "141-158" kind: "article" key: "KlintV02" - 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: "SPE" volume: "30" number: "3" pages: "259-291" kind: "article" key: "BrandJKO00" - title: "Re-engineering Needs Generic Programming Language Technology" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "1997" tags: - "programming languages" - "generic programming" - "language engineering" - "programming" researchr: "https://researchr.org/publication/BrandKV97" cites: 0 citedby: 0 journal: "SIGPLAN" volume: "32" number: "2" pages: "54-61" kind: "article" key: "BrandKV97" - title: "Ambiguity Detection : Scaling to Scannerless" author: - name: "Bas Basten" link: "http://homepages.cwi.nl/~basten" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" month: "July" researchr: "https://researchr.org/publication/BastenKlintVinjuSLE2011" cites: 0 citedby: 0 booktitle: "Proceedings of the Fourth International Conference on Software Language Engineering (SLE 2011)" kind: "inproceedings" key: "BastenKlintVinjuSLE2011" - title: "RLSRunner: Linking Rascal with K for Program Analysis" author: - name: "Hills, Mark" link: "https://researchr.org/alias/hills%2C-mark" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" month: "July" abstract: "The Rascal meta-programming language provides a number of features supporting the development of program analysis tools. However, sometimes the analysis to be developed is already implemented by another system. In this case, Rascal can provide a useful front-end for this system, handling the parsing of the input program, any transformation (if needed) of this program into individual analysis tasks, and the display of the results generated by the analysis. In this paper we describe a tool, RLSRunner, which provides this integration with static analysis tools defined using the K framework, a rewriting-based framework for defining the semantics of programming languages." tags: - "programming languages" - "model-to-model transformation" - "semantics" - "rule-based" - "program analysis" - "meta programming" - "graph transformation" - "meta-model" - "transformation language" - "points-to analysis" - "analysis" - "static analysis" - "model-driven development" - "graph-rewriting" - "transformation system" - "model transformation" - "programming" - "Meta-Environment" - "rewriting" - "parsing" - "meta-objects" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/BastenKlintVinjuSLE2011-0" cites: 0 citedby: 0 booktitle: "Proceedings of the Fourth International Conference on Software Language Engineering (SLE 2011)" kind: "inproceedings" key: "BastenKlintVinjuSLE2011-0" - title: "Meta-language Support for Type-Safe Access to External Resources" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_21" links: doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_21" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/HillsKV12" researchr: "https://researchr.org/publication/HillsKV12" cites: 0 citedby: 0 pages: "372-391" booktitle: "SLE" kind: "inproceedings" key: "HillsKV12" - title: "An Overview of the Summer Programming Language" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1980" tags: - "programming languages" - "programming" researchr: "https://researchr.org/publication/Klint80" cites: 0 citedby: 0 pages: "47-55" booktitle: "POPL" kind: "inproceedings" key: "Klint80" - title: "Modular language implementation in Rascal - experience report" author: - name: "Bas Basten" link: "https://researchr.org/alias/bas-basten" - name: "Jeroen van den Bos" link: "https://researchr.org/alias/jeroen-van-den-bos" - name: "Mark Hills 0001" link: "https://researchr.org/alias/mark-hills-0001" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Arnold Lankamp" link: "https://researchr.org/alias/arnold-lankamp" - name: "Bert Lisser" link: "https://researchr.org/alias/bert-lisser" - name: "Atze van der Ploeg" link: "https://researchr.org/alias/atze-van-der-ploeg" - name: "Tijs van der Storm" link: "https://researchr.org/alias/tijs-van-der-storm" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2015" doi: "http://dx.doi.org/10.1016/j.scico.2015.11.003" links: doi: "http://dx.doi.org/10.1016/j.scico.2015.11.003" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/scp/BastenB0KLLPSV15" researchr: "https://researchr.org/publication/BastenB0KLLPSV15" cites: 0 citedby: 0 journal: "SCP" volume: "114" pages: "7-19" kind: "article" key: "BastenB0KLLPSV15" - title: "The Discrete Time TOOLBUS - A Software Coordination Architecture" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1998" tags: - "software architecture" - "architecture" researchr: "https://researchr.org/publication/BergstraK98" cites: 0 citedby: 0 journal: "SCP" volume: "31" number: "2-3" pages: "205-229" kind: "article" key: "BergstraK98" - title: "Evolutionary software engineering: a component-based approach" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "1998" tags: - "rule-based" - "software components" - "software component" - "software engineering" - "systematic-approach" researchr: "https://researchr.org/publication/KlintV98" cites: 0 citedby: 0 pages: "1-18" booktitle: "ifip2-4" kind: "inproceedings" key: "KlintV98" - 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: "RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.28" abstract: "Many automated software engineering tools require tight integration of techniques for source code analysis and manipulation. State-of-the-art tools exist for both, but the domains have remained notoriously separate because different computational paradigms fit each domain best. This impedance mismatch hampers the development of new solutions because the desired functionality and scalability can only be achieved by repeated and ad hoc integration of different techniques. Rascal is a domain-specific language that takes away most of this boilerplate by integrating source code analysis and manipulation at the conceptual, syntactic, semantic and technical level. We give an overview of the language and assess its merits by implementing a complex refactoring." links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.28" tags: - "refactoring" - "language engineering" - "software language engineering" - "points-to analysis" - "domain analysis" - "analysis" - "source-to-source" - "software engineering" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/KlintSV09" cites: 0 citedby: 1 pages: "168-177" booktitle: "SCAM" kind: "inproceedings" key: "KlintSV09" - title: "Collaborative Development of Interactive Language Processing Tools" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2001" doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#002" links: doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#002" researchr: "https://researchr.org/publication/Klint01" cites: 0 citedby: 0 journal: "ENTCS" volume: "44" number: "2" pages: "1-2" kind: "article" key: "Klint01" - title: "ATerms for manipulation and exchange of structured data: It's all about sharing" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2007" doi: "http://dx.doi.org/10.1016/j.infsof.2006.08.009" links: doi: "http://dx.doi.org/10.1016/j.infsof.2006.08.009" tags: - "data-flow" researchr: "https://researchr.org/publication/BrandK07" cites: 1 citedby: 0 journal: "INFSOF" volume: "49" number: "1" pages: "55-64" kind: "article" key: "BrandK07" - title: "Language definitions and tool generation" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2005" doi: "http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1425314" links: doi: "http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1425314" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/iee/Klint05" researchr: "https://researchr.org/publication/Klint05" cites: 0 citedby: 0 journal: "iee" volume: "152" number: "2" pages: "53" kind: "article" key: "Klint05" - title: "A Meta-Environment for Generating Programming Environments" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1989" tags: - "generative programming" - "meta programming" - "meta-model" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Klint89" cites: 0 citedby: 0 pages: "105-124" booktitle: "am" kind: "inproceedings" key: "Klint89" - 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: "SMR" volume: "10" number: "2" pages: "75-92" kind: "article" key: "DeursenK98" - title: "Ambiguity Detection: Scaling to Scannerless" author: - name: "Hendrikus J. S. Basten" link: "https://www.cwi.nl/people/2119" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_17" links: doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_17" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/BastenKV11" researchr: "https://researchr.org/publication/BastenKV11" cites: 0 citedby: 0 pages: "303-323" booktitle: "SLE" kind: "inproceedings" key: "BastenKV11" - title: "Towards a One-Stop-Shop for Analysis, Transformation and Visualization of Software" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Bert Lisser" link: "https://researchr.org/alias/bert-lisser" - name: "Atze van der Ploeg" link: "https://researchr.org/alias/atze-van-der-ploeg" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_1" links: doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_1" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/KlintLP11" researchr: "https://researchr.org/publication/KlintLP11" cites: 0 citedby: 0 pages: "1-18" booktitle: "SLE" kind: "inproceedings" key: "KlintLP11" - title: "EASY Meta-programming with Rascal" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-18023-1_6" abstract: "Rascal is a new language for meta-programming and is intended to solve problems in the domain of source code analysis and transformation. In this article we give a high-level overview of the language and illustrate its use by many examples. Rascal is a work in progress both regarding implementation and documentation. More information is available at http://www.rascal-mpl.org/." links: doi: "http://dx.doi.org/10.1007/978-3-642-18023-1_6" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/gttse/KlintSV09" tags: - "meta programming" - "meta-model" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/KlintSV09-GTTSE" cites: 0 citedby: 0 pages: "222-289" booktitle: "GTTSE" kind: "inproceedings" key: "KlintSV09-GTTSE" - title: "The TOOLBUS Coordination Architecture - A Demonstration" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Pieter A. Olivier" link: "https://researchr.org/alias/pieter-a.-olivier" year: "1996" tags: - "architecture" researchr: "https://researchr.org/publication/KlintO96" cites: 0 citedby: 0 pages: "575-578" booktitle: "amast" kind: "inproceedings" key: "KlintO96" - title: "The TOOLBUS Coordination Architecture" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1996" tags: - "architecture" researchr: "https://researchr.org/publication/BergstraK96%3A0" cites: 0 citedby: 0 pages: "75-88" booktitle: "coordination" kind: "inproceedings" key: "BergstraK96:0" - title: "Exploring the Limits of Domain Model Recovery" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Davy Landman" link: "http://www.cwi.nl/~landman" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2013" doi: "http://dx.doi.org/10.1109/ICSM.2013.23" links: doi: "http://dx.doi.org/10.1109/ICSM.2013.23" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icsm/KlintLV13" researchr: "https://researchr.org/publication/KlintLV13" cites: 0 citedby: 0 pages: "120-129" booktitle: "ICSM" kind: "inproceedings" key: "KlintLV13" - title: "M3: A general model for code analytics in rascal" author: - name: "Bas Basten" link: "https://researchr.org/alias/bas-basten" - name: "Mark Hills 0001" link: "https://researchr.org/alias/mark-hills-0001" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Davy Landman" link: "https://researchr.org/alias/davy-landman" - name: "Ashim Shahi" link: "https://researchr.org/alias/ashim-shahi" - name: "Michael J. Steindorfer" link: "http://michael.steindorfer.name" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2015" doi: "http://dx.doi.org/10.1109/SWAN.2015.7070485" links: doi: "http://dx.doi.org/10.1109/SWAN.2015.7070485" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/wcre/Basten0KLSSV15" researchr: "https://researchr.org/publication/Basten0KLSSV15" cites: 0 citedby: 0 pages: "25-28" booktitle: "WCRE" kind: "inproceedings" key: "Basten0KLSSV15" - title: "Towards Formal Verification of ToolBusScripts" author: - name: "Wan Fokkink" link: "http://www.cs.vu.nl/~wanf/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Bert Lisser" link: "https://researchr.org/alias/bert-lisser" - name: "Yaroslav S. Usenko" link: "https://researchr.org/alias/yaroslav-s.-usenko" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-79980-1_13" links: doi: "http://dx.doi.org/10.1007/978-3-540-79980-1_13" researchr: "https://researchr.org/publication/FokkinkKLU08" cites: 0 citedby: 0 pages: "160-166" booktitle: "amast" kind: "inproceedings" key: "FokkinkKLU08" - title: "Automated Translation and Analysis of a ToolBus Script for Auctions" author: - name: "Wan Fokkink" link: "http://www.cs.vu.nl/~wanf/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Bert Lisser" link: "https://researchr.org/alias/bert-lisser" - name: "Yaroslav S. Usenko" link: "https://researchr.org/alias/yaroslav-s.-usenko" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-11623-0_18" links: doi: "http://dx.doi.org/10.1007/978-3-642-11623-0_18" tags: - "translation" - "analysis" researchr: "https://researchr.org/publication/FokkinkKLU09" cites: 0 citedby: 0 pages: "308-323" booktitle: "fsen" kind: "inproceedings" key: "FokkinkKLU09" - title: "EASY Meta-Programming with Rascal. Leveraging the Extract-Analyze-SYnthesize Paradigm for Meta-Programming" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2010" abstract: "Rascal is a new language for meta-programming and is intended to solve problems in the domain of source code analysis and transformation. In this article we give a high-level overview of the language and illustrate its use by many examples. Rascal is a work in progress both regarding implementation and documentation. More information is available at http://www.rascal-mpl.org/." tags: - "rascal" - "programming languages" - "model-to-model transformation" - "program analysis" - "meta programming" - "meta-model" - "transformation language" - "points-to analysis" - "domain analysis" - "analysis" - "static analysis" - "source-to-source" - "programming paradigms" - "model transformation" - "programming" - "metaprogramming" - "Meta-Environment" - "open-source" - "meta-objects" - "transformation" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/RascalGTTSE" cites: 0 citedby: 0 booktitle: "GTTSE" kind: "inproceedings" key: "RascalGTTSE" - title: "Core Technologies for System Renovation" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "1996" researchr: "https://researchr.org/publication/BrandKV96" cites: 0 citedby: 0 pages: "235-254" booktitle: "sofsem" kind: "inproceedings" key: "BrandKV96" - title: "The Discrete Time TOOLBUS" author: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1996" researchr: "https://researchr.org/publication/BergstraK96" cites: 0 citedby: 0 pages: "286-305" booktitle: "amast" kind: "inproceedings" key: "BergstraK96" - title: "Interpretation Techniques" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1981" researchr: "https://researchr.org/publication/Klint81" cites: 0 citedby: 0 journal: "SPE" volume: "11" number: "9" pages: "963-973" kind: "article" key: "Klint81" - title: "Language Parametric Module Management for IDEs" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Taeke Kooiker" link: "http://www.cwi.nl" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.041" abstract: "An integrated development environment (IDE) monitors all the changes that a user makes to source code modules and responds accordingly by flagging errors, by reparsing, by rechecking, or by recompiling modules and by adjusting visualizations or other information derived from a module. A module manager is the central component of the IDE that is responsible for this behavior. Although the overall functionality of a module manager in a given IDE is fixed, its actual behavior strongly depends on the programming languages it has to support. What is a module? How do modules depend on each other? What is the effect of a change to a module? We propose a concise design for a language parametric module manager: a module manager that is parameterized with the module behavior of a specific language. We describe the design of our module manager and discuss some of its properties. We also report on the application of the module manager in the construction of IDEs for the specification language Asf+Sdf as well as for Java. Our overall goal is the rapid development (generation) of IDEs for programming languages and domain specific languages. The module manager presented here represents a next step in the creation of such generic language workbenches." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.041" tags: - "programming languages" - "workbench" - "Java" - "meta programming" - "generic programming" - "SDF" - "functional programming" - "language design" - "source-to-source" - "code generation" - "programming" - "language workbench" - "Meta-Environment" - "design" - "ASF+SDF" - "IDE" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/KlintKV08" cites: 0 citedby: 0 journal: "ENTCS" volume: "203" number: "2" pages: "3-19" kind: "article" key: "KlintKV08" - title: "Reflections on Feature Oriented Software Engineering" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" year: "2004" abstract: "Feature Oriented Software Engineering is an emerging discipline in which feature models are used to model the commonality and variability in a product family. It is our that view product family engineering of very large and highly variable systems cannot do without adequate tool support. When the number of variants that have to be delivered and maintained is exponential, automatization is not only desirable, but inevitable. " tags: - "meta-model" - "software engineering" - "model-driven engineering" - "Meta-Environment" - "reflection" researchr: "https://researchr.org/publication/KlintVanDerStorm04" cites: 0 citedby: 0 kind: "unpublished" key: "KlintVanDerStorm04" - title: "Micro-Machinations - A DSL for Game Economies" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Riemer van Rozen" link: "https://researchr.org/alias/riemer-van-rozen" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_3" links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_3" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/KlintR13" researchr: "https://researchr.org/publication/KlintR13" cites: 0 citedby: 0 pages: "36-55" booktitle: "SLE" kind: "inproceedings" key: "KlintR13" - title: "Term rewriting for sale" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" year: "1998" doi: "http://www.elsevier.com/gej-ng/31/29/23/39/23/show/Products/notes/index.htt#011" links: doi: "http://www.elsevier.com/gej-ng/31/29/23/39/23/show/Products/notes/index.htt#011" tags: - "term rewriting" - "graph-rewriting" - "rewriting" researchr: "https://researchr.org/publication/BrandKV98" cites: 0 citedby: 0 journal: "ENTCS" volume: "15" pages: "218-241" kind: "article" key: "BrandKV98" - title: "Program Analysis Scenarios in Rascal" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-34005-5_2" links: doi: "http://dx.doi.org/10.1007/978-3-642-34005-5_2" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/wrla/HillsKV12" researchr: "https://researchr.org/publication/HillsKV12-0" cites: 0 citedby: 0 pages: "10-30" booktitle: "WRLA" kind: "inproceedings" key: "HillsKV12-0" - title: "Language Prototyping: An Algebraic Specification Approach" author: - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Jan Heering" link: "https://researchr.org/alias/jan-heering" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "1996" doi: "http://dx.doi.org/10.1142/3163" links: doi: "http://dx.doi.org/10.1142/3163" dblp: "http://dblp.uni-trier.de/rec/bibtex/series/amast/DeursenHK96" researchr: "https://researchr.org/publication/amast-DeursenHK96" cites: 0 citedby: 0 volume: "5" series: "AMAST Series in Computing" publisher: "World Scientific" isbn: "978-981-4498-73-9" kind: "book" key: "amast-DeursenHK96" - title: "Faster Scannerless GLR Parsing" author: - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_10" abstract: "Analysis and renovation of large software portfolios requires syntax analysis of multiple, usually embedded, languages and this is beyond the capabilities of many standard parsing techniques. The traditional separation between lexer and parser falls short due to the limitations of tokenization based on regular expressions when handling multiple lexical grammars. In such cases scannerless parsing provides a viable solution. It uses the power of context-free grammars to be able to deal with a wide variety of issues in parsing lexical syntax. However, it comes at the price of less efficiency. The structure of tokens is obtained using a more powerful but more time and memory intensive parsing algorithm. Scannerless grammars are also more non-deterministic than their tokenized counterparts, increasing the burden on the parsing algorithm even further. In this paper we investigate the application of the Right-Nulled Generalized LR parsing algorithm (RNGLR) to scannerless parsing. We adapt the Scannerless Generalized LR parsing and filtering algorithm (SGLR) to implement the optimizations of RNGLR. We present an updated parsing and filtering algorithm, called SRNGLR, and analyze its performance in comparison to SGLR on ambiguous grammars for the programming languages C, Java, Python, SASL, and C++. Measurements show that SRNGLR is on average 33% faster than SGLR, but is 95% faster on the highly ambiguous SASL grammar. For the mainstream languages C, C++, Java and Python the average speedup is 16%. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_10" tags: - "parsing algorithm" - "programming languages" - "GLR parsing" - "optimization" - "rule-based" - "Java" - "program analysis" - "lexical syntax" - "embedded software" - "scannerless" - "GLR" - "analysis" - "C++" - "programming" - "context-aware" - "program optimization" - "parsing" - "scannerless parsing" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/EconomopoulosKV09" cites: 0 citedby: 0 pages: "126-141" booktitle: "CC" kind: "inproceedings" key: "EconomopoulosKV09" - title: "Model Transformation with Immutable Data" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "https://researchr.org/alias/tijs-van-der-storm" year: "2016" doi: "http://dx.doi.org/10.1007/978-3-319-42064-6_2" links: doi: "http://dx.doi.org/10.1007/978-3-319-42064-6_2" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icmt/KlintS16" researchr: "https://researchr.org/publication/KlintS16" cites: 0 citedby: 0 pages: "19-35" booktitle: "ICMT" kind: "inproceedings" key: "KlintS16" - title: "An empirical study of PHP feature usage: a static analysis perspective" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2013" doi: "http://doi.acm.org/10.1145/2483760.2483786" links: doi: "http://doi.acm.org/10.1145/2483760.2483786" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/issta/HillsKV13" researchr: "https://researchr.org/publication/HillsKV13" cites: 0 citedby: 0 pages: "325-335" booktitle: "ISSTA" kind: "inproceedings" key: "HillsKV13" - title: "Home Page" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" researchr: "https://researchr.org/publication/homepages-k-PaulKlint" cites: 0 citedby: 0 howpublished: "http://www.cwi.nl/~paulk/" kind: "misc" key: "homepages-k-PaulKlint" - title: "Term rewriting with traversal functions" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2003" doi: "http://doi.acm.org/10.1145/941566.941568" abstract: "Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting. We extend many-sorted, first-order term rewriting with traversal functions that automate tree traversal in a simple and type-safe way. Traversal functions can be bottom-up or top-down traversals and can either traverse all nodes in a tree or can stop the traversal at a certain depth as soon as a matching node is found. They can either define sort-preserving transformations or mappings to a fixed sort. We give small and somewhat larger examples of traversal functions and describe their operational semantics and implementation. An assessment of various applications and a discussion conclude the article." links: doi: "http://doi.acm.org/10.1145/941566.941568" tags: - "types" - "semantics" - "program analysis" - "graph transformation" - "traversal" - "term rewriting" - "analysis" - "type system" - "graph-rewriting" - "transformation system" - "operational semantics" - "higher-order transformations" - "rewriting" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/BrandKV03" cites: 0 citedby: 0 journal: "TOSEM" volume: "12" number: "2" pages: "152-190" kind: "article" key: "BrandKV03" - 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: "TOSEM" volume: "2" number: "2" pages: "176-201" kind: "article" key: "Klint93" - title: "A Library for Declarative Resolution-Independent 2D Graphics" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Atze van der Ploeg" link: "https://researchr.org/alias/atze-van-der-ploeg" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-642-45284-0_1" links: doi: "http://dx.doi.org/10.1007/978-3-642-45284-0_1" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/padl/KlintP13" researchr: "https://researchr.org/publication/KlintP13" cites: 0 citedby: 0 pages: "1-18" booktitle: "PADL" kind: "inproceedings" key: "KlintP13" - title: "ToolBus: The Next Generation" author: - name: "Hayco de Jong" link: "https://researchr.org/alias/hayco-de-jong" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2002" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2852&spage=220" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2852&spage=220" researchr: "https://researchr.org/publication/JongK02" cites: 0 citedby: 0 pages: "220-241" booktitle: "FMCO" kind: "inproceedings" key: "JongK02" - title: "Using The Meta-Environment for Maintenance and Renovation" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Magiel Bruntink" link: "http://homepages.cwi.nl/~bruntink/" - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" - name: "H. A. de Jong" link: "http://www.cwi.nl" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Taeke Kooiker" link: "http://www.cwi.nl" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2007.52" abstract: "The meta-environment is a flexible framework for language development, source code analysis and source code transformation. We highlight new features and demonstrate how the system supports key functionalities for software evolution: fact extraction, software analysis, visualization, and software transformation." links: doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2007.52" tags: - "model-to-model transformation" - "meta-model" - "transformation language" - "metrics" - "points-to analysis" - "analysis" - "static analysis" - "model-driven development" - "software evolution" - "source-to-source" - "maintenance" - "transformation system" - "model transformation" - "Meta-Environment" - "visualization" - "IDE" - "open-source" - "meta-objects" - "transformation" researchr: "https://researchr.org/publication/BrandBEJKKSV07" cites: 0 citedby: 0 pages: "331-332" booktitle: "CSMR" kind: "inproceedings" key: "BrandBEJKKSV07" - title: "On the impact of DSL tools on the maintainability of language implementations" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2010" doi: "http://doi.acm.org/10.1145/1868281.1868291" abstract: "The current rise of DSLs is often attributed to the existence of modern DSL tools that help to mitigate cost of ownership. Our main research goal is to investi- gate that non-trivial hypothesis. We present empirical results on the maintainability of six implementations of the same Domain Specific Language (DSL) using different languages (Java, JavaScript, C#) and DSL tools (ANTLR, OMeta, “M”). Our evaluation largely confirms that the maintainability of DSL implementations is higher when con- structed using DSL tools." links: doi: "http://doi.acm.org/10.1145/1868281.1868291" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ldta/KlintSV10" tags: - "empirical" - "JavaScript" - "Java" - "C++" - "DSL" - "domain-specific language" researchr: "https://researchr.org/publication/KlintSV10" cites: 0 citedby: 0 pages: "10" booktitle: "LDTA" kind: "inproceedings" key: "KlintSV10" - title: "Compiling Language Definitions: The ASF%2BSDF Compiler" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "J. Heering" link: "https://researchr.org/alias/j.-heering" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "P. A. Olivier" link: "https://researchr.org/alias/p.-a.-olivier" year: "1999" tags: - "SDF" - "compiler" - "ASF+SDF" researchr: "https://researchr.org/publication/Brand99compilinglanguage" cites: 0 citedby: 0 kind: "misc" key: "Brand99compilinglanguage" - title: "Rascal, 10 Years Later" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "https://researchr.org/alias/tijs-van-der-storm" - name: "Jurgen J. Vinju" link: "https://researchr.org/alias/jurgen-j.-vinju" year: "2019" doi: "https://doi.org/10.1109/SCAM.2019.00023" links: doi: "https://doi.org/10.1109/SCAM.2019.00023" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/scam/KlintSV19" researchr: "https://researchr.org/publication/KlintSV19" cites: 0 citedby: 0 pages: "139" booktitle: "SCAM" kind: "inproceedings" key: "KlintSV19" - title: "Industrial Applications of ASF+SDF" 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: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Steven Klusener" link: "http://www.cs.vu.nl/~steven/" - name: "Emma van der Meulen" link: "https://researchr.org/alias/emma-van-der-meulen" year: "1996" tags: - "SDF" - "ASF+SDF" researchr: "https://researchr.org/publication/BrandDKKM96" cites: 0 citedby: 0 pages: "9-18" booktitle: "amast" kind: "inproceedings" key: "BrandDKKM96" - title: "RLSRunner: Linking Rascal with K for Program Analysis" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_19" links: doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_19" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/HillsKV11" researchr: "https://researchr.org/publication/HillsKV11" cites: 0 citedby: 0 pages: "344-353" booktitle: "SLE" kind: "inproceedings" key: "HillsKV11" - title: "Programming environments: report on an international workshop at Dagstuhl Castle" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Thomas W. Reps" link: "http://pages.cs.wisc.edu/~reps/" - name: "Gregor Snelting" link: "https://researchr.org/alias/gregor-snelting" year: "1992" doi: "http://doi.acm.org/10.1145/141018.141058" links: doi: "http://doi.acm.org/10.1145/141018.141058" tags: - "meta programming" - "programming" - "Meta-Environment" researchr: "https://researchr.org/publication/KlintRS92" cites: 0 citedby: 0 journal: "SIGPLAN" volume: "27" number: "11" pages: "90-96" kind: "article" key: "KlintRS92" - title: "Is Strategic Programming a Viable Paradigm?" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" year: "2001" doi: "http://www.elsevier.nl/locate/entcs/volume57.html" links: doi: "http://www.elsevier.nl/locate/entcs/volume57.html" tags: - "programming paradigms" - "programming" researchr: "https://researchr.org/publication/Klint01%3A0" cites: 0 citedby: 0 journal: "TCS" volume: "57" pages: "196-200" kind: "article" key: "Klint01:0" - title: "Using Filters for the Disambiguation of Context-free Grammars" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1994" month: "October" abstract: "An ambiguous context-free grammar defines a language in which some sentences have multiple interpretations. For conciseness, ambiguous context-free grammars are frequently used to define even completely unambiguous languages and numerous disambiguation methods exist for specifying which interpretation is the intended one for each sentence. The existing methods can be divided in `parser specific' methods that describe how some parsing technique deals with ambiguous sentences and `logical' methods that describe the intended interpretation without reference to a specific parsing technique. We propose a framework of \\em filters\\/ to describe and compare a wide range of disambiguation problems in a parser-independent way. A filter is a function that selects from a set of parse trees (the canonical representation of the interpretations of a sentence) the intended trees. The framework enables us to define several general properties of disambiguation methods. The expressive power of filters is illustrated by several case studies. Finally, a start is made with the study of efficient implementation techniques for filters by exploiting the commutativity of parsing steps and filter steps for certain classes of filters." links: technicalreport: "https://researchr.org/publication/KlintV94-P9426" tags: - "case study" - "disambiguation" - "context-aware" - "parsing" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/KlintV94" cites: 0 citedby: 0 booktitle: "Proceedings of the ASMICS Workshop on Parsing Theory" kind: "inproceedings" key: "KlintV94" - 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: "A Case of Visitor versus Interpreter Pattern" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" abstract: "We compare the Visitor pattern with the Interpreter pattern, investigating a single case in point for the Java language. We have produced and compared two versions of an interpreter for a programming language. The first version makes use of the Visitor pattern. The second version was obtained by using an automated refactoring to transform uses of the Visitor pattern to uses of the Interpreter pattern. We compare these two nearly equivalent versions on their maintenance character- istics and execution efficiency. Using a tailored experimental research method we can highlight differences and the causes thereof. The contributions of this paper are that it isolates the choice between Visitor and Interpreter in a realistic software project and makes the difference experimentally observable." tags: - "programming languages" - "Java" - "pattern language" - "interpreter" - "refactoring" - "visitor" - "maintenance" - "programming" researchr: "https://researchr.org/publication/HillsKlintVinju2011" cites: 0 citedby: 0 booktitle: "Proceedings of the 49th International Conference on Objects, Models, Components and Patterns" kind: "inproceedings" key: "HillsKlintVinju2011" - 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: "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: "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: "Game Developers Need Lua AiR - Static Analysis of Lua Using Interface Models" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Loren Roosendaal" link: "https://researchr.org/alias/loren-roosendaal" - name: "Riemer van Rozen" link: "https://researchr.org/alias/riemer-van-rozen" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-33542-6_69" links: doi: "http://dx.doi.org/10.1007/978-3-642-33542-6_69" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icec/KlintRR12" researchr: "https://researchr.org/publication/KlintRR12" cites: 0 citedby: 0 pages: "530-535" booktitle: "iwec" kind: "inproceedings" key: "KlintRR12" - 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: "Static, lightweight includes resolution for PHP" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2014" doi: "http://doi.acm.org/10.1145/2642937.2643017" links: doi: "http://doi.acm.org/10.1145/2642937.2643017" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/kbse/HillsKV14" researchr: "https://researchr.org/publication/HillsKV14" cites: 0 citedby: 0 pages: "503-514" booktitle: "ASE" kind: "inproceedings" key: "HillsKV14" - title: "Enabling PHP software engineering research in Rascal" author: - name: "Mark Hills 0001" link: "https://researchr.org/alias/mark-hills-0001" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2017" doi: "http://dx.doi.org/10.1016/j.scico.2016.05.003" links: doi: "http://dx.doi.org/10.1016/j.scico.2016.05.003" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/scp/HillsKV17" researchr: "https://researchr.org/publication/HillsKV17" cites: 0 citedby: 0 journal: "SCP" volume: "134" pages: "37-46" kind: "article" key: "HillsKV17" - 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: "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"