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: "ACM Transactions on Programming Languages and Systems" 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 News" 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: "2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering, CSMR-WCRE 2014, Antwerp, Belgium, February 3-6, 2014" editor: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Dave Binkley" link: "https://researchr.org/alias/dave-binkley" - name: "Filippo Ricca" link: "https://researchr.org/alias/filippo-ricca" publisher: "IEEE" 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: "Fundamental Approaches to Software Engineering, Second Internationsl Conference, FASE 99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 99, Amsterdam, The Netherlands, March 22-28, 1999, Proceedings" editor: - name: "Jean-Pierre Finance" link: "https://researchr.org/alias/jean-pierre-finance" volume: "1577" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65718-5" 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: "Fifth Workshop on Refactoring Tools 2012, WRT '12, Rapperswil, Switzerland, June 1, 2012" editor: - name: "Peter Sommerlad" link: "https://researchr.org/alias/peter-sommerlad" publisher: "ACM" isbn: "978-1-4503-1500-5" 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: "Software Composition, 8th International Conference, SC 2009, Zurich, Switzerland, July 2-3, 2009. Proceedings" editor: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Johan Fabry" link: "https://researchr.org/alias/johan-fabry" volume: "5634" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-02654-6" 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: "Software: Practice and Experience" 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" note: "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: "Proceedings of the 2003 OOPSLA Workshop on Eclipse Technology eXchange, October 2003, Anaheim, CA, USA" editor: - name: "Michael G. Burke" link: "https://researchr.org/alias/michael-g.-burke" publisher: "ACM" 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 Notices" 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: "Compiler Construction, 10th International Conference, CC 2001 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2001 Genova, Italy, April 2-6, 2001, Proceedings" editor: - name: "Reinhard Wilhelm" link: "https://researchr.org/alias/reinhard-wilhelm" volume: "2027" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41861-X" kind: "inproceedings" key: "BrandDHJ01" - title: "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: "Journal of Symbolic Computation" 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: "Processes, Terms and Cycles: Steps on the Road to Infinity, Essays Dedicated to Jan Willem Klop, on the Occasion of His 60th Birthday" editor: - name: "Aart Middeldorp" link: "http://cl-informatik.uibk.ac.at/~ami/" - name: "Vincent van Oostrom" link: "https://researchr.org/alias/vincent-van-oostrom" - name: "Femke van Raamsdonk" link: "https://researchr.org/alias/femke-van-raamsdonk" - name: "Roel C. de Vrijer" link: "https://researchr.org/alias/roel-c.-de-vrijer" volume: "3838" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-30911-X" 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: "Software Language Engineering, First International Conference, SLE 2008, Toulouse, France, September 29-30, 2008. Revised Selected Papers" editor: - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "5452" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00433-9" kind: "inproceedings" key: "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: "IFIP Congress" 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: "ACM Transactions on Programming Languages and Systems" 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: "IEEE Trans. Software Eng." 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: "Science of Computer Programming" 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: "Communications of the ACM" 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 News" 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: "Journal of the ACM" 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: "Electronic Notes in Theoretical Computer Science" 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: "ACM Transactions on Software Engineering Methodology" 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: "Compiler Construction, 8th International Conference, CC 99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 99, Amsterdam, The Netherlands, 22-28 March, 1999, Proceedings" editor: - name: "Stefan Jähnichen" link: "https://researchr.org/alias/stefan-j%C3%A4hnichen" volume: "1575" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65717-7" 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: "11th International Workshop on Program Comprehension (IWPC 2003), May 10-11, 2003, Portland, Oregon, USA" publisher: "IEEE Computer Society" 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: "Data \\& Knowledge Engineering" 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: "Software: Practice and Experience" 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 Notices" 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)" volume: "6940" series: "LNCS" publisher: "Springer" 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)" volume: "6940" series: "LNCS" publisher: "Springer" 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: "Software Language Engineering, 5th International Conference, SLE 2012, Dresden, Germany, September 26-28, 2012, Revised Selected Papers" editor: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" volume: "7745" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-36089-3" 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: "Science of Computer Programming" 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: "Science of Computer Programming" 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: "Systems Implementation 2000, IFIP TC2 WG2.4 Working Conference on Systems Implementation 2000: Languages, methods and tools, 23-26 February 1998, Berlin, Germay" editor: - name: "R. Nigel Horspool" link: "https://researchr.org/alias/r.-nigel-horspool" volume: "117" series: "IFIP Conference Proceedings" publisher: "Chapman & Hall" isbn: "0-412-83530-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: "Ninth IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2009, Edmonton, Alberta, Canada, September 20-21, 2009" publisher: "IEEE Computer Society" isbn: "978-0-7695-3793-1" 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: "Electronic Notes in Theoretical Computer Science" 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: "Information \\& Software Technology" 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 Proceedings - Software" 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: "Algebraic Methods II: Theory, Tools and Applications [papers from a workshop in Mierlo, The Netherlands, September 1989]" editor: - name: "Jan A. Bergstra" link: "http://staff.science.uva.nl/~janb/" - name: "Loe M. G. Feijs" link: "https://researchr.org/alias/loe-m.-g.-feijs" volume: "490" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-53912-3" 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: "Journal of Software Maintenance" 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: "Software Language Engineering - 4th International Conference, SLE 2011, Braga, Portugal, July 3-4, 2011, Revised Selected Papers" editor: - name: "Anthony M. Sloane" link: "https://researchr.org/alias/anthony-m.-sloane" - name: "Uwe Aßmann" link: "https://researchr.org/alias/uwe-a%C3%9Fmann" volume: "6940" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-28829-6" 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: "Software Language Engineering - 4th International Conference, SLE 2011, Braga, Portugal, July 3-4, 2011, Revised Selected Papers" editor: - name: "Anthony M. Sloane" link: "https://researchr.org/alias/anthony-m.-sloane" - name: "Uwe Aßmann" link: "https://researchr.org/alias/uwe-a%C3%9Fmann" volume: "6940" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-28829-6" 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: "Generative and Transformational Techniques in Software Engineering III - International Summer School, GTTSE 2009, Braga, Portugal, July 6-11, 2009. Revised Papers" editor: - name: "Joao M. Fernandes" link: "https://researchr.org/alias/joao-m.-fernandes" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "6491" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-18022-4" 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: "Algebraic Methodology and Software Technology, 5th International Conference, AMAST 96, Munich, Germany, July 1-5, 1996, Proceedings" editor: - name: "Martin Wirsing" link: "https://researchr.org/alias/martin-wirsing" - name: "Maurice Nivat" link: "https://researchr.org/alias/maurice-nivat" volume: "1101" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61463-X" 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 Languages and Models, First International Conference, COORDINATION 96, Cesena, Italy, April 15-17, 1996, Proceedings" editor: - name: "Paolo Ciancarini" link: "https://researchr.org/alias/paolo-ciancarini" - name: "Chris Hankin" link: "https://researchr.org/alias/chris-hankin" volume: "1061" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61052-9" 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: "2013 IEEE International Conference on Software Maintenance, Eindhoven, The Netherlands, September 22-28, 2013" publisher: "IEEE" 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: "1st IEEE International Workshop on Software Analytics, SWAN 2015, Montreal, QC, Canada, March 2, 2015" editor: - name: "Olga Baysal" link: "https://researchr.org/alias/olga-baysal" - name: "Latifa Guerrouj" link: "https://researchr.org/alias/latifa-guerrouj" publisher: "IEEE" 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: "Algebraic Methodology and Software Technology, 12th International Conference, AMAST 2008, Urbana, IL, USA, July 28-31, 2008, Proceedings" editor: - name: "José Meseguer" link: "http://formal.cs.uiuc.edu/meseguer/" - name: "Grigore Rosu" link: "http://fsl.cs.uiuc.edu/~grosu/" volume: "5140" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-79979-5" 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: "Fundamentals of Software Engineering, Third IPM International Conference, FSEN 2009, Kish Island, Iran, April 15-17, 2009, Revised Selected Papers" editor: - name: "Farhad Arbab" link: "https://researchr.org/alias/farhad-arbab" - name: "Marjan Sirjani" link: "https://researchr.org/alias/marjan-sirjani" volume: "5961" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-11622-3" 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/." note: "to appear" 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: "Proceedings of the 3rd International Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE'09)" series: "LNCS" publisher: "Springer" 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 96: Theory and Practice of Informatics, 23rd Seminar on Current Trends in Theory and Practice of Informatics, Milovy, Czech Republic, November 23-30, 1996, Proceedings" editor: - name: "Keith G. Jeffery" link: "https://researchr.org/alias/keith-g.-jeffery" - name: "Jaroslav Král" link: "https://researchr.org/alias/jaroslav-kr%C3%A1l" - name: "Miroslav Bartosek" link: "https://researchr.org/alias/miroslav-bartosek" volume: "1175" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61994-1" 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: "Algebraic Methodology and Software Technology, 5th International Conference, AMAST 96, Munich, Germany, July 1-5, 1996, Proceedings" editor: - name: "Martin Wirsing" link: "https://researchr.org/alias/martin-wirsing" - name: "Maurice Nivat" link: "https://researchr.org/alias/maurice-nivat" volume: "1101" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61463-X" 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: "Software: Practice and Experience" 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: "Electronic Notes in Theoretical Computer Science" 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: "Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings" editor: - name: "Martin Erwig" link: "https://researchr.org/alias/martin-erwig" - name: "Richard F. Paige" link: "https://researchr.org/alias/richard-f.-paige" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "8225" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-02653-4" kind: "inproceedings" key: "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: "Electronic Notes in Theoretical Computer Science" 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: "Rewriting Logic and Its Applications - 9th International Workshop, WRLA 2012, Held as a Satellite Event of ETAPS, Tallinn, Estonia, March 24-25, 2012, Revised Selected Papers" editor: - name: "Franciso Durán" link: "https://researchr.org/alias/franciso-dur%C3%A1n" volume: "7571" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-34004-8" 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: "Compiler Construction, 18th International Conference, CC 2009, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, York, UK, March 22-29, 2009. Proceedings" editor: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" volume: "5501" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00721-7" kind: "inproceedings" key: "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: "Theory and Practice of Model Transformations - 9th International Conference, ICMT 2016, Held as Part of STAF 2016, Vienna, Austria, July 4-5, 2016, Proceedings" editor: - name: "Pieter Van Gorp" link: "https://researchr.org/alias/pieter-van-gorp" - name: "Gregor Engels" link: "https://researchr.org/alias/gregor-engels" volume: "9765" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-42063-9" 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: "International Symposium on Software Testing and Analysis, ISSTA '13, Lugano, Switzerland, July 15-20, 2013" editor: - name: "Mauro Pezzè" link: "https://researchr.org/alias/mauro-pezz%C3%A8" - name: "Mark Harman" link: "https://researchr.org/alias/mark-harman" publisher: "ACM" isbn: "978-1-4503-2159-4" 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: "ACM Transactions on Software Engineering Methodology" 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: "ACM Transactions on Software Engineering Methodology" 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: "Practical Aspects of Declarative Languages - 15th International Symposium, PADL 2013, Rome, Italy, January 21-22, 2013. Proceedings" editor: - name: "Konstantinos F. Sagonas" link: "https://researchr.org/alias/konstantinos-f.-sagonas" volume: "7752" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-45283-3" 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: "Formal Methods for Components and Objects, First International Symposium, FMCO 2002, Leiden, The Netherlands, November 5-8, 2002, Revised Lectures" editor: - name: "Frank S. de Boer" link: "https://researchr.org/alias/frank-s.-de-boer" - name: "Marcello M. Bonsangue" link: "https://researchr.org/alias/marcello-m.-bonsangue" - name: "Susanne Graf" link: "https://researchr.org/alias/susanne-graf" - name: "Willem P. de Roever" link: "https://researchr.org/alias/willem-p.-de-roever" volume: "2852" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-20303-6" 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: "11th European Conference on Software Maintenance and Reengineering, Software Evolution in Complex Software Intensive Systems, CSMR 2007, 21-23 March 2007, Amsterdam, The Netherlands" editor: - name: "René L. Krikhaar" link: "https://researchr.org/alias/ren%C3%A9-l.-krikhaar" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" - name: "Giuseppe A. Di Lucca" link: "https://researchr.org/alias/giuseppe-a.-di-lucca" publisher: "IEEE Computer Society" isbn: "0-7695-2802-3" 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: "Proceedings of the of the Tenth Workshop on Language Descriptions, Tools and Applications, LDTA 2010, Paphos, Cyprus, March 28-29, 2010 - satellite event of ETAPS" editor: - name: "Claus Brabrand" link: "https://researchr.org/alias/claus-brabrand" - name: "Pierre-Etienne Moreau" link: "https://researchr.org/alias/pierre-etienne-moreau" publisher: "ACM" isbn: "978-1-4503-0063-6" 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: "19th International Working Conference on Source Code Analysis and Manipulation, SCAM 2019, Cleveland, OH, USA, September 30 - October 1, 2019" publisher: "IEEE" isbn: "978-1-7281-4937-0" 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: "Algebraic Methodology and Software Technology, 5th International Conference, AMAST 96, Munich, Germany, July 1-5, 1996, Proceedings" editor: - name: "Martin Wirsing" link: "https://researchr.org/alias/martin-wirsing" - name: "Maurice Nivat" link: "https://researchr.org/alias/maurice-nivat" volume: "1101" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61463-X" 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: "Software Language Engineering - 4th International Conference, SLE 2011, Braga, Portugal, July 3-4, 2011, Revised Selected Papers" editor: - name: "Anthony M. Sloane" link: "https://researchr.org/alias/anthony-m.-sloane" - name: "Uwe Aßmann" link: "https://researchr.org/alias/uwe-a%C3%9Fmann" volume: "6940" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-28829-6" 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 Notices" 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: "Theoretical Computer Science" 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" address: "Milano, Italy" publisher: "Tech. Rep. 126--1994, Dipartimento di Scienze dell'Informazione, Universit\\`a di Milano" 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 Notices" 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" series: "TOOLS" 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: "ACM Transactions on Programming Languages and Systems" 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: "ACM Transactions on Programming Languages and Systems" 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 Notices" 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: "Entertainment Computing - ICEC 2012 - 11th International Conference, ICEC 2012, Bremen, Germany, September 26-29, 2012. Proceedings" editor: - name: "Marc Herrlich" link: "https://researchr.org/alias/marc-herrlich" - name: "Rainer Malaka" link: "https://researchr.org/alias/rainer-malaka" - name: "Maic Masuch" link: "https://researchr.org/alias/maic-masuch" volume: "7522" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-33541-9" 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" note: "informal publication" 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: "ACM/IEEE International Conference on Automated Software Engineering, ASE '14, Vasteras, Sweden - September 15 - 19, 2014" editor: - name: "Ivica Crnkovic" link: "https://researchr.org/alias/ivica-crnkovic" - name: "Marsha Chechik" link: "https://researchr.org/alias/marsha-chechik" - name: "Paul Grünbacher" link: "https://researchr.org/alias/paul-gr%C3%BCnbacher" publisher: "ACM" isbn: "978-1-4503-3013-8" 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: "Science of Computer Programming" 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" note: "informal publication" 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"