Eelco Visser's Profile

Advised Theses in YAML

publications:
- title: "Declarative Specification of Information System Data Models and Business Logic"
  author:
  - name: "Daco Harkes"
    link: "http://nl.linkedin.com/in/dcharkes"
  year: "2019"
  doi: "https://www.base-search.net/Record/8ed1529807591ce29158f438f054ba5a45f902739190f75831ceb28ae7e30590"
  note: "base-search.net (fttudelft:oai:tudelft.nl:uuid:5e9805ca-95d0-451e-a8f0-55decb26c94a)"
  links:
    doi: "https://www.base-search.net/Record/8ed1529807591ce29158f438f054ba5a45f902739190f75831ceb28ae7e30590"
    dblp: "http://dblp.uni-trier.de/rec/bibtex/phd/basesearch/Harkes19"
  researchr: "https://researchr.org/publication/Harkes19"
  cites: 0
  citedby: 0
  school: "Delft University of Technology, Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "phdthesis"
  key: "Harkes19"
- title: "Separate Compilation as a Separate Concern: A Framework for Language-Independent Selective Recompilation"
  author:
  - name: "Nathan Bruning"
    link: "http://swerl.tudelft.nl/bin/view/Main/WebHome"
  year: "2013"
  researchr: "https://researchr.org/publication/Bruning2013"
  cites: 0
  citedby: 0
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "mastersthesis"
  key: "Bruning2013"
- title: "Software Language Evolution"
  author:
  - name: "Sander Vermolen"
    link: "http://www.sandervermolen.nl"
  year: "2012"
  month: "October"
  abstract: "Software plays a critical role in our daily life. Vast amounts of money are spent on more and more complex systems. All software, regardless if it controls a plane or the game on your phone is never finished. Software changes when it contains bugs or when new functionality is added. This process of change is called software evolution. Despite what the name suggests, this is in practice a rapid process. Software is described in a software language. Not only software can evolve, also the language it is described in. When a software language evolves, the software becomes harder to read, or often times unreadable. To prevent loss of software it needs to evolve along with its language, which is a process known as coupled evolution. Coupled evolution occurs in various domains of computer science, such as in databases, in software models and in software code. This dissertation focuses on different aspects in the context of coupled evolution, such as evolution operators, reconstruction of evolution and the application of coupled evolution."
  links:
    "pdf": "http://repository.tudelft.nl/assets/uuid:93988a21-5be3-4181-b471-b5a941a3641b/thesis-final.pdf"
    "tud repository": "http://repository.tudelft.nl/view/ir/uuid%3A93988a21-5be3-4181-b471-b5a941a3641b/"
  tags:
  - "software evolution"
  researchr: "https://researchr.org/publication/Vermolen2012"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  address: "Delft, The Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Arie  van Deursen"
    link: "http://www.st.ewi.tudelft.nl/~arie/"
  kind: "phdthesis"
  key: "Vermolen2012"
- title: "Abstractions for Asynchronous User Interfaces in Web Applications"
  author:
  - name: "Michel Weststrate"
    link: "https://researchr.org/alias/michel-weststrate"
  year: "2009"
  doi: "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf"
  abstract: "The web has become a popular target platform for applications. The differences in user experience between browser based applications and desktop applications have become smaller due to the enriched user experience enabled by the Ajax technique. Nevertheless, developing Ajax based internet applications is a complex task and requires the developer to intertwine many standards and languages. This thesis presents the WebDSLx extension for the WebDSL compiler. The compiler and extension allows the developer to create rich internet applications in an intuitive way, since many details are taken care of by the abstractions provided in the model. WebDSLx allows to define a rich interaction pattern between user and application, based on the concepts of delta updates and reusable widgets. The abstractions provided are based on an analysis of proven successful abstractions in the development process of desktop applications. As a result, the WebDSLx extension provides a simple model based approach to a formerly tedious task."
  links:
    doi: "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf"
  tags:
  - "WebDSL"
  - "rule-based"
  - "pattern language"
  - "meta-model"
  - "modeling language"
  - "language modeling"
  - "AJAX"
  - "analysis"
  - "reuse"
  - "model-driven development"
  - "compiler"
  - "web applications"
  - "abstraction"
  - "Meta-Environment"
  - "model deltas"
  - "process modeling"
  - "systematic-approach"
  researchr: "https://researchr.org/publication/Weststrate2009"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  advisor:
  - name: "Danny M.  Groenewegen"
    link: "https://www.linkedin.com/in/dannygroenewegen/"
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "mastersthesis"
  key: "Weststrate2009"
- title: "Configurable Transformations for High-Quality Automatic Program Improvement. CobolX: a case study"
  author:
  - name: "Hedzer Westra"
    link: "https://researchr.org/alias/hedzer-westra"
  year: "2002"
  month: "February"
  links:
    "pdf": "http://www.cs.uu.nl/people/visser/ftp/Wes02.pdf"
  tags:
  - "case study"
  - "transformation"
  - "program transformation"
  researchr: "https://researchr.org/publication/Wes02"
  cites: 0
  citedby: 0
  school: "Utrecht University"
  address: "Utrecht, The Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "mastersthesis"
  key: "Wes02"
- title: "Declarative Specification of Template-Based Textual Editors"
  author:
  - name: "Tobi Vollebregt"
    link: "http://www.tobivollebregt.nl/"
  year: "2012"
  month: "April"
  doi: "http://resolver.tudelft.nl/uuid:8907468c-b102-4a35-aa84-d49bb2110541"
  abstract: "Syntax discoverability has been a crucial advantage of structure editors for new users of a language. Despite this advantage, structure editors have not been widely adopted. Nevertheless, the Cheetah system, developed at Capgemini, leverages a structure editor to aid domain experts modeling tax-benefit rules in a domain specific language. The structure editor suffers from a lack of free form editing and conversions from/to plain text. The Spoofax language workbench, developed at Delft University of Technology, uses a textual editor, which is syntax-aware due to immediate parsing and analyses. In this thesis we describe a migration from Cheetah to Spoofax, which aims to bring the advantages of text editing to the tax-benefit rule modeling language. During the migration, we experienced that current text-based language workbenches, such as Spoofax, require redundant specification of the ingredients for a template-based editor, which is detrimental to the quality of syntactic completion, as consistency and completeness of the definition cannot be guaranteed. We describe the design and implementation of a specification language for syntax definition based on templates. It unifies the specification of parser, pretty printer and template-based editor. We evaluate the template language by application to the tax-benefit rule modeling language and a language for mobile web applications."
  links:
    doi: "http://resolver.tudelft.nl/uuid:8907468c-b102-4a35-aa84-d49bb2110541"
    "pdf": "http://repository.tudelft.nl/assets/uuid:8907468c-b102-4a35-aa84-d49bb2110541/thesis-final.pdf"
    "tud repository": "http://resolver.tudelft.nl/uuid:8907468c-b102-4a35-aa84-d49bb2110541"
  tags:
  - "workbench"
  - "rule-based"
  - "syntax definition"
  - "completeness"
  - "model editor"
  - "meta-model"
  - "modeling language"
  - "modeling"
  - "language modeling"
  - "language design"
  - "rules"
  - "migration"
  - "web applications"
  - "consistency"
  - "language workbench"
  - "Spoofax"
  - "Meta-Environment"
  - "parsing"
  - "domain-specific language"
  researchr: "https://researchr.org/publication/Vollebregt2012"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  address: "Delft, The Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Lennart C. L. Kats"
    link: "http://www.lclnet.nl/"
  kind: "mastersthesis"
  key: "Vollebregt2012"
- title: "Language-parametric Techniques for Language-Specific Editors"
  author:
  - name: "Maartje  de Jonge"
    link: "https://researchr.org/profile/maartjedejonge/publications"
  year: "2014"
  month: "January"
  doi: "http://dx.doi.org/10.4233/uuid:5b485a4a-e502-42d9-8bd2-21c02226ed91"
  abstract: "The goal of this dissertation is to develop techniques that simplify the implementation of tool support for new languages. More specifically, we focus on language-parametric solutions for the implementation of language-specific editor support. In the first part of this dissertation we investigate generic techniques to recover from syntax errors that occur during interactive editing. In the second part we look into language-parametric techniques for the implementation of refactoring tools."
  links:
    doi: "http://dx.doi.org/10.4233/uuid:5b485a4a-e502-42d9-8bd2-21c02226ed91"
    "blog": "http://eelcovisser.org/post/271/language-parametric-techniques-for-language-specific-editors"
    "pdf": "http://repository.tudelft.nl/assets/uuid:5b485a4a-e502-42d9-8bd2-21c02226ed91/doc.pdf"
  researchr: "https://researchr.org/publication/DeJonge2014"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  address: "Delft, TheNetherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Arie  van Deursen"
    link: "http://www.st.ewi.tudelft.nl/~arie/"
  kind: "phdthesis"
  key: "DeJonge2014"
- title: "LabBack: An extendible platform for secure and robust in-the-cloud automatic assessment of student programs"
  author:
  - name: "Vlad Vergu"
    link: "http://www.bitbang.nl"
  year: "2012"
  month: "November"
  researchr: "https://researchr.org/publication/Vergu2012"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "mastersthesis"
  key: "Vergu2012"
- title: "Methods and Techniques for the Design and Implementation of Domain-Specific Languages"
  author:
  - name: "Zef  Hemel"
    link: "http://zef.me"
  year: "2012"
  month: "January"
  abstract: "The promise of model-driven engineering is to reduce the development and maintenance effort of software by developing at a higher-level of abstraction through the use of domain-specific languages (DSLs). Domain-specific languages, as opposed to general-purpose languages, are software languages that focus on a specific problem domain, e.g. insurance, database querying, grammars or workflow. The research in this thesis is conducted as part of the MoDSE (Model- Driven Software Evolution) project. The goal of the MoDSE project is to develop a systematic approach to model-driven software development using domain-specific languages. This approach includes methods, techniques, and underlying tool support. The group in which the research is conducted (the Software Engineering Research Group at Delft University of Technology) is building and evolving tools to simplify the development of domain-specific languages, including SDF [Heering et al., 1989] and SGLR [Visser, 1997a] for parsing, Stratego/XT [Visser, 2004, Bravenboer et al., 2008] for program transformation and Spoofax [Kats and Visser, 2010a] for building IDE (Integrated Development Environment) plug-ins for the developed languages. The goal of the research is to explore the DSL design space and to develop techniques to simplify the implementation of DSLs. The research is conducted through case studies in DSL design, using tools developed as part of the MoDSE project."
  links:
    "pdf": "http://zef.me/thesis.pdf"
  tags:
  - "programming languages"
  - "model-to-model transformation"
  - "transformation engineering"
  - "meta programming"
  - "case study"
  - "SDF"
  - "meta-model"
  - "modeling language"
  - "language engineering"
  - "transformation language"
  - "software language engineering"
  - "language modeling"
  - "design research"
  - "language design"
  - "model-driven development"
  - "software evolution"
  - "source-to-source"
  - "maintenance"
  - "software engineering"
  - "model-driven engineering"
  - "model transformation"
  - "DSL"
  - "database"
  - "abstraction"
  - "Spoofax"
  - "Meta-Environment"
  - "workflow"
  - "higher-order transformations"
  - "parsing"
  - "design"
  - "systematic-approach"
  - "ASF+SDF"
  - "SGLR"
  - "transformation"
  - "grammar"
  - "Stratego"
  - "query language"
  - "program transformation"
  - "domain-specific language"
  researchr: "https://researchr.org/publication/Hemel2012"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  address: "Delft, The Netherlands"
  advisor:
  - name: "Arie  van Deursen"
    link: "http://www.st.ewi.tudelft.nl/~arie/"
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "phdthesis"
  key: "Hemel2012"
- title: "A Constraint-based Approach to Name Binding and Type Checking using Scope Graphs"
  author:
  - name: "Hendrik van Antwerpen"
    link: "https://nl.linkedin.com/in/hendrikvanantwerpen"
  year: "2016"
  month: "January"
  abstract: "Recently scope graphs were introduced as a formalism to specify the name binding structure of a program and do name resolution independent of the abstract syntax tree of a program. In this thesis we show how to use a constraint language based on scope graphs to do static analysis of programs. We do this by extracting constraints from a program, that specify name binding and typing. We treat binding and typing as separate building blocks, but our approach allows language constructs – such as access of record fields – where name and type resolution are mutually dependent. By using scope graphs for name resolution, our approach supports a wide range of name binding patterns that are not easily supported in existing constraint-based approaches. We present a formal semantics for our constraint language, as well as a solver algorithm, for which we discuss soundness, termination and completeness of the solver. We evaluate our approach by expressing the static semantics of PCF and Featherweight Java with our constraints, and we implemented the solver algorithm, as well as static analysis for both languages, in the Spoofax language workbench."
  note: "Available at \\url{http://resolver.tudelft.nl/uuid:7a555c92-ee75-4e64-b58b-d8f09662f412}."
  researchr: "https://researchr.org/publication/VanAntwerpen2016"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "mastersthesis"
  key: "VanAntwerpen2016"
- title: "Exercises in free syntax. Syntax definition, parsing, and assimilation of language conglomerates"
  author:
  - name: "Martin  Bravenboer"
    link: "http://martin.bravenboer.name/"
  year: "2008"
  month: "January"
  links:
    "thesis": "http://martin.bravenboer.name/thesis.html"
  tags:
  - "syntax definition"
  - "assimilation"
  - "parsing"
  researchr: "https://researchr.org/publication/Bra08"
  cites: 168
  citedby: 1
  school: "Utrecht University"
  address: "Utrecht, The Netherlands"
  advisor:
  - name: "S. Doaitse Swierstra"
    link: "http://www.cs.uu.nl/staff/doaitse.html"
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "phdthesis"
  key: "Bra08"
- title: "Language-Parametric Methods for Developing Interactive Programming Systems"
  author:
  - name: "Gabriël Konat"
    link: "http://nl.linkedin.com/in/gabrielkonat"
  year: "2019"
  doi: "https://doi.org/10.4233/uuid:03d70c5d-596d-4c8c-92da-0398dd8221cb"
  links:
    doi: "https://doi.org/10.4233/uuid:03d70c5d-596d-4c8c-92da-0398dd8221cb"
    dblp: "http://dblp.uni-trier.de/rec/bibtex/phd/basesearch/Konat19"
  researchr: "https://researchr.org/publication/KonatDissertation"
  cites: 0
  citedby: 0
  school: "Delft University of Technology, Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Sebastian Erdweg"
    link: "http://www.informatik.uni-marburg.de/~seba/"
  kind: "phdthesis"
  key: "KonatDissertation"
- title: "Supporting Language Extension and Separate Compilation by Mixing Java and Bytecode"
  author:
  - name: "Lennart C. L. Kats"
    link: "http://www.lclnet.nl/"
  year: "2007"
  month: "August"
  abstract: "Language extensions, such as embedded domain-specific languages, are often implemented by  assimilating (rewriting) the extended language constructs to the host language. The result can then be  compiled by a standard compiler. This approach is limited by the host language, which may not be  designed with code generation in mind. An example of this is Java, which provides insufficient  protection against name capture of host language identifiers, and does not provide the same low-level  primitives that exist in the underlying Java Virtual Machine. For example, it does not provide equivalents  for a jump or jump subroutine instruction, unbalanced synchronization, stack manipulation, or  specification of debugging information. Code generated from a language that does not match Java’s  structure can therefore require inefficient or laborious alternatives instead.    We propose a new open compiler model to provide generators direct access to the underlying compiled  code. With conventional open compilers, leveraging the bytecode-generating back-end is an intricate  process, requiring adaptations tangled throughout the system. The result is hard to develop, understand,  and maintain. By providing a mixed source language of Java and the underlying bytecode instruction  language, we can provide access to the back-end at the source-level. Compiled instructions can be used  in place of statements or expressions, which can aid language extensions but also applications of separate  compilation. For example, it can simplify aspect weavers by enabling direct composition of source code  aspects with compiled classes, or vice versa. As such, we also introduce a Java traits compiler that allows  operation on classes and traits in both source and compiled form."
  note: "INF/SCR-07-02"
  links:
    "pdf": "http://www.lclnet.nl/publications/kats-mastersthesis.pdf"
    "project home page": "http://www.strategoxt.org/Stratego/TheDryadCompiler"
  tags:
  - "Java"
  - "synchronization"
  - "language extension"
  - "modeling language"
  - "language modeling"
  - "composition"
  - "language design"
  - "source-to-source"
  - "graph-rewriting"
  - " direct manipulation"
  - "C++"
  - "code generation"
  - "debugging"
  - "compiler"
  - "language embedding"
  - "information models"
  - "language composition"
  - "rewriting"
  - "compilers"
  - "process modeling"
  - "systematic-approach"
  - "open-source"
  - "domain-specific language"
  researchr: "https://researchr.org/publication/Kats07"
  cites: 0
  citedby: 1
  school: "Utrecht University"
  address: "Utrecht, The Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Martin  Bravenboer"
    link: "http://martin.bravenboer.name/"
  kind: "mastersthesis"
  key: "Kats07"
- title: "The Purely Functional Software Deployment Model"
  author:
  - name: "Eelco  Dolstra"
    link: "https://researchr.org/profile/eelcodolstra/publications"
  year: "2006"
  month: "January"
  abstract: "Software deployment is the set of activities related to getting software components to work on the machines of end users. It includes activities such as installation, upgrading, uninstallation, and so on. Many tools have been developed to support deployment, but they all have serious limitations with respect to correctness. For instance, the installation of a component can lead to the failure of previously installed components; a component might require other components that are not present; and it is generally difficult to undo deployment actions. The fundamental causes of these problems are a lack of isolation between components, the difficulty in identifying the dependencies between components, and incompatibilities between versions and variants of components. This thesis describes a better approach based on a purely functional deployment model, implemented in a deployment system called Nix. Components are stored in isolation from each other in a Nix store. Each component has a name that contains a cryptographic hash of all inputs that contributed to its build process, and the content of a component never changes after it has been built. Hence the model is purely functional. This storage scheme provides several important advantages. First, it ensures isolation between components: if two components differ in any way, they will be stored in different locations and will not overwrite each other. Second, it allows us to identify component dependencies. Undeclared build time dependencies are prevented due to the absence of “global” component directories used in other deployment systems. Runtime dependencies can be found by scanning for cryptographic hashes in the binary contents of components, a technique analogous to conservative garbage collection in programming language implementation. Since dependency information is complete, complete deployment can be performed by copying closures of components under the dependency relation. Developers and users are not confronted with components’ cryptographic hashes directly. Components are built automatically from Nix expressions, which describe how to build and compose arbitrary software components; hashes are computed as part of this process. Components are automatically made available to users through “user environments”, which are synthesised sets of activated components. User environments enable atomic upgrades and rollbacks, as well as different sets of activated components for different users. Nix expressions provide a source-based deployment model. However, source-based deployment can be transparently optimised into binary deployment by making pre-built binaries (keyed on their cryptographic hashes) available in a shared location such as a network server. This is referred to as transparent source/binary deployment. The purely functional deployment model has been validated by applying it to the deployment of more than 278 existing Unix packages. In addition, this thesis shows that the model can be applied naturally to the related activities of continuous integration using build farms, service deployment and build management."
  tags:
  - "programming languages"
  - "rule-based"
  - "deployment"
  - "completeness"
  - "meta programming"
  - "software components"
  - "meta-model"
  - "modeling language"
  - "modeling"
  - "language modeling"
  - "functional programming"
  - "software component"
  - "source-to-source"
  - "information models"
  - "programming"
  - "Meta-Environment"
  - "process modeling"
  - "systematic-approach"
  - "open-source"
  researchr: "https://researchr.org/publication/Dolstra2006"
  cites: 0
  citedby: 0
  school: "Utrecht University"
  address: "Utrecht, The Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "S. Doaitse Swierstra"
    link: "http://www.cs.uu.nl/staff/doaitse.html"
  kind: "phdthesis"
  key: "Dolstra2006"
- title: "Declarative Syntax Definition for Modern Language Workbenches"
  author:
  - name: "Luis Eduardo de Souza Amorim"
    link: "https://www.linkedin.com/profile/view?id=136481548"
  year: "2019"
  doi: "https://www.base-search.net/Record/261b6c9463c1d4fe309e3c6104cd4d80fbc9d3cc8fbc66006f34130f481b506f"
  note: "base-search.net (fttudelft:oai:tudelft.nl:uuid:43d7992a-7077-47ba-b38f-113f5011d07f)"
  links:
    doi: "https://www.base-search.net/Record/261b6c9463c1d4fe309e3c6104cd4d80fbc9d3cc8fbc66006f34130f481b506f"
    dblp: "http://dblp.uni-trier.de/rec/bibtex/phd/basesearch/Amorim19"
  researchr: "https://researchr.org/publication/Amorim2019"
  cites: 0
  citedby: 0
  school: "Delft University of Technology, Netherlands"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Sebastian Erdweg"
    link: "http://www.informatik.uni-marburg.de/~seba/"
  kind: "phdthesis"
  key: "Amorim2019"
- title: "Constructs & Concepts: Language Design for Flexibility and Reliability"
  author:
  - name: "Anya Helene Bagge"
    link: "http://www.ii.uib.no/~anya/"
  year: "2009"
  month: "November"
  tags:
  - "language design"
  - "reliability"
  - "design"
  researchr: "https://researchr.org/publication/Bagge09phd"
  cites: 0
  citedby: 0
  school: "Research School in Information and Communication Technology, Department of Informatics, University of Bergen, Norway"
  address: "PB 7803, 5020 Bergen, Norway"
  advisor:
  - name: "Magne Haveraaen"
    link: "http://www.ii.uib.no/~magne/"
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  kind: "phdthesis"
  key: "Bagge09phd"
- title: "Building Blocks for Language Workbenches"
  author:
  - name: "Lennart C. L. Kats"
    link: "http://www.lclnet.nl/"
  year: "2011"
  abstract: "This dissertation presents research on techniques, methods, and tool support for domain-specific language engineering. Domain-specific language engineering is the discipline of designing, developing, and maintaining domain-specific programming languages. The focus of this thesis is the architecture of language workbenches their underlying technologies. Language workbenches are tools that make language engineering more efficient by providing an integrated development environment for language engineering tasks. In particular, we introduce the Spoofax language workbench, and describe its techniques for high-level, portable language definitions, language composition, interactive support for defining languages, and language testing. Our research focuses on three main themes: applying domain-specific languages for declarative specification of languages and IDEs; supporting declarative syntax definition for generating a parser-based, interactive development environment; and providing interactive meta-tooling support, exploring the application of modern IDE technology to DSL engineering. "
  links:
    "pdf": "http://lclnet.nl/thesis"
  tags:
  - "programming languages"
  - "workbench"
  - "rule-based"
  - "syntax definition"
  - "meta programming"
  - "meta-model"
  - "language engineering"
  - "architecture"
  - "composition"
  - "testing"
  - "model-driven development"
  - "model-driven engineering"
  - "C++"
  - "DSL"
  - "programming"
  - "language workbench"
  - "Spoofax"
  - "Meta-Environment"
  - "parsing"
  - "meta-objects"
  - "domain-specific language"
  researchr: "https://researchr.org/publication/Kats2011"
  cites: 0
  citedby: 0
  school: "Delft University of Technology"
  advisor:
  - name: "Eelco Visser"
    link: "http://eelcovisser.org"
  - name: "Arie  van Deursen"
    link: "http://www.st.ewi.tudelft.nl/~arie/"
  kind: "phdthesis"
  key: "Kats2011"