publications: - title: "Reconstructing Complex Metamodel Evolution" author: - name: "Sander Vermolen" link: "http://www.sandervermolen.nl" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" month: "August" abstract: "Metamodel evolution requires model migration. To correctly migrate models, evolution needs to be made explicit. Manually describing evolution is error-prone and redundant. Metamodel matching offers a solution by automatically detecting evolution, yet detects primitive evolution steps only. In practice, primitive evolution steps are jointly applied to form a complex evolution step, which has the same effect on a metamodel as the sum of its parts, yet generally has a different effect in migration. Detection of complex evolution is therefore needed. In this paper we present an approach to reconstructing complex evolution between two metamodel versions, using a matching result as input. It supports operator dependencies and mixed, overlapping and incorrectly ordered complex operator components. It also supports interference between operators, where the effect of one operator, is partially, or completely hidden from the target metamodel by other operators." links: published: "https://researchr.org/publication/VermolenWV11sle" tags: - "meta-model" - "migration" - "Meta-Environment" - "systematic-approach" researchr: "https://researchr.org/publication/VermolenWachsmuthVisser-TUD-SERG-2011-026" cites: 0 citedby: 0 institution: "Delft University of Technology" number: "TUD-SERG-2011-026" address: "Delft, The Netherlands" kind: "techreport" key: "VermolenWachsmuthVisser-TUD-SERG-2011-026" - title: "A Theory of Name Resolution with extended Coverage and Proofs" author: - name: "Pierre Neron" link: "http://www.lix.polytechnique.fr/~neron/" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2015" month: "January" abstract: "We describe a language-independent theory for name binding and resolution, suitable for programming languages with complex scoping rules including both lexical scoping and modules. We formulate name resolution as a two stage problem. First a language-independent scope graph is constructed using language-specific rules from an abstract syntax tree. Then references in the scope graph are resolved to corresponding declarations using a language-independent resolution process. We introduce a resolution calculus as a concise, declarative, and language-independent specification of name resolution. We develop a resolution algorithm that is sound and complete with respect to the calculus. Based on the resolution calculus we develop language-independent definitions of alpha-equivalence and rename refactoring. We illustrate the approach using a small example language with modules. In addition, we show how our approach provides a model for a range of name binding patterns in existing languages." note: "Extended version of ESOP 2015 paper \"A Theory of Name Resolution\"" links: published: "https://researchr.org/publication/NeronTVW15" "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2015-001.pdf" researchr: "https://researchr.org/publication/TUD-SERG-2015-001" cites: 0 citedby: 0 institution: "Software Engineering Research Group. Delft University of Technology" type: "Technical Report" number: "TUD-SERG-2015-001" kind: "techreport" key: "TUD-SERG-2015-001" - title: "Evaluating and comparing language workbenches: Existing results and benchmarks for the future" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Markus Völter" link: "http://www.voelter.de/" - name: "Laurence Tratt" link: "https://researchr.org/alias/laurence-tratt" - name: "Remi Bosman" link: "https://researchr.org/alias/remi-bosman" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Albert Gerritsen" link: "https://researchr.org/alias/albert-gerritsen" - name: "Angelo Hulshout" link: "https://researchr.org/alias/angelo-hulshout" - name: "Steven Kelly" link: "http://www.metacase.com/stevek.html" - name: "Alex Loh" link: "https://researchr.org/alias/alex-loh" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Pedro J. Molina" link: "https://researchr.org/alias/pedro-j.-molina" - name: "Martin Palatnik" link: "https://researchr.org/alias/martin-palatnik" - name: "Risto Pohjonen" link: "https://researchr.org/alias/risto-pohjonen" - name: "Eugen Schindler" link: "https://researchr.org/alias/eugen-schindler" - name: "Klemens Schindler" link: "https://researchr.org/alias/klemens-schindler" - name: "Riccardo Solmi" link: "https://researchr.org/alias/riccardo-solmi" - name: "Vlad A. Vergu" link: "https://researchr.org/alias/vlad-a.-vergu" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Kevin van der Vlist" link: "https://researchr.org/alias/kevin-van-der-vlist" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jimi van der Woning" link: "https://researchr.org/alias/jimi-van-der-woning" year: "2015" doi: "http://dx.doi.org/10.1016/j.cl.2015.08.007" abstract: "Language workbenches are environments for simplifying the creation and use of computer languages. The annual Language Workbench Challenge (LWC) was launched in 2011 to allow the many academic and industrial researchers in this area an opportunity to quantitatively and qualitatively compare their approaches. We first describe all four LWCs to date, before focussing on the approaches used, and results generated, during the third LWC. We give various empirical data for ten approaches from the third LWC. We present a generic feature model within which the approaches can be understood and contrasted. Finally, based on our experiences of the existing LWCs, we propose a number of benchmark problems for future LWCs." links: doi: "http://dx.doi.org/10.1016/j.cl.2015.08.007" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/cl/ErdwegSVTBCGH0L15" researchr: "https://researchr.org/publication/ErdwegSVTBCGH0L15" cites: 0 citedby: 0 journal: "Computer Languages, Systems \\& Structures" volume: "44" pages: "24-47" kind: "article" key: "ErdwegSVTBCGH0L15" - title: "Declarative Name Binding and Scope Rules" author: - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_18" abstract: "In textual software languages, names are used to reference elements like variables, methods, classes, etc. Name resolution analyses these names in order to establish references between definition and use sites of elements. In this paper, we identify recurring patterns for name bindings in programming languages and introduce a declarative metalanguage for the specification of name bindings in terms of namespaces, definition sites, use sites, and scopes. Based on such declarative name binding specifications, we provide a language-parametric algorithm for static name resolution during compile-time. We discuss the integration of the algorithm into the Spoofax Language Workbench and show how its results can be employed in semantic editor services like reference resolution, constraint checking, and content completion." links: doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_18" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/KonatKWV12" researchr: "https://researchr.org/publication/KonatKWV12" cites: 0 citedby: 0 pages: "311-331" 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: "KonatKWV12" - title: "A Language Independent Task Engine for Incremental Name and Type Analysis" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2013" month: "October" abstract: "IDEs depend on incremental name and type analysis for responsive feedback for large projects. In this paper, we present a language-independent approach for incremental name and type analysis. Analysis consists of two phases. The first phase analyzes lexical scopes and binding instances and creates deferred analysis tasks. A task captures a single name resolution or type analysis step. Tasks might depend on other tasks and are evaluated in the second phase. Incrementality is supported on file and task level. When a file changes, only this file is recollected and only those tasks are reevaluated, which are affected by the changes in the collected data. The analysis does neither re-parse nor re-traverse unchanged files, even if they are affected by changes in other files. We implemented the approach as part of the Spoofax Language Workbench and evaluated it for the WebDSL web programming language. " links: published: "https://researchr.org/publication/WachsmuthKVGV13" "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2013-014.pdf" researchr: "https://researchr.org/publication/TUD-SERG-2013-018" cites: 0 citedby: 0 institution: "Delft University of Technology" number: "TUD-SERG-2013-018" address: "Delft, The Netherlands" kind: "techreport" key: "TUD-SERG-2013-018" - title: "A Language Independent Task Engine for Incremental Name and Type Analysis" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_15" abstract: "IDEs depend on incremental name and type analysis for responsive feedback for large projects. In this paper, we present a language-independent approach for incremental name and type analysis. Analysis consists of two phases. The first phase analyzes lexical scopes and binding instances and creates deferred analysis tasks. A task captures a single name resolution or type analysis step. Tasks might depend on other tasks and are evaluated in the second phase. Incrementality is supported on file and task level. When a file changes, only this file is recollected and only those tasks are reevaluated, which are affected by the changes in the collected data. The analysis does neither re-parse nor re-traverse unchanged files, even if they are affected by changes in other files. We implemented the approach as part of the Spoofax Language Workbench and evaluated it for the WebDSL web programming language. " links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_15" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/WachsmuthKVGV13" technicalreport: "https://researchr.org/publication/TUD-SERG-2013-018" researchr: "https://researchr.org/publication/WachsmuthKVGV13" cites: 0 citedby: 0 pages: "260-280" 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: "WachsmuthKVGV13" - title: "Facilitating Twitter data analytics: Platform, language and functionality" author: - name: "Ke Tao" link: "https://researchr.org/alias/ke-tao" - name: "Claudia Hauff" link: "https://researchr.org/alias/claudia-hauff" - name: "Geert-Jan Houben" link: "https://researchr.org/alias/geert-jan-houben" - name: "Fabian Abel" link: "https://researchr.org/alias/fabian-abel" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2014" doi: "http://dx.doi.org/10.1109/BigData.2014.7004259" links: doi: "http://dx.doi.org/10.1109/BigData.2014.7004259" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/bigdataconf/TaoHHAW14" researchr: "https://researchr.org/publication/TaoHHAW14" cites: 0 citedby: 0 pages: "421-430" booktitle: "2014 IEEE International Conference on Big Data, Big Data 2014, Washington, DC, USA, October 27-30, 2014" editor: - name: "Jimmy Lin" link: "https://researchr.org/alias/jimmy-lin" - name: "Jian Pei" link: "https://researchr.org/alias/jian-pei" - name: "Xiaohua Hu" link: "https://researchr.org/alias/xiaohua-hu" - name: "Wo Chang" link: "https://researchr.org/alias/wo-chang" - name: "Raghunath Nambiar" link: "https://researchr.org/alias/raghunath-nambiar" - name: "Charu Aggarwal" link: "https://researchr.org/alias/charu-aggarwal" - name: "Nick Cercone" link: "https://researchr.org/alias/nick-cercone" - name: "Vasant Honavar" link: "https://researchr.org/alias/vasant-honavar" - name: "Jun Huan" link: "https://researchr.org/alias/jun-huan" - name: "Bamshad Mobasher" link: "https://researchr.org/alias/bamshad-mobasher" - name: "Saumyadipta Pyne" link: "https://researchr.org/alias/saumyadipta-pyne" publisher: "IEEE" isbn: "978-1-4799-5665-4" kind: "inproceedings" key: "TaoHHAW14" - title: "Prototyping Visual Interpreters and Debuggers for Domain-Specific Modelling Languages" author: - name: "Daniel A. Sadilek" link: "http://www2.informatik.hu-berlin.de/~sadilek/Homepage/Home.html" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69100-6_5" abstract: "This paper is about visual and executable domain-specific modelling languages (DSMLs) that are used at the platform independent level of the Model-Driven Architecture. We deal with DSMLs that are new or evolve rapidly and, as a consequence, have to be prototyped cheaply. We argue that for prototyping a DSML on the platform independent level, its semantics should not only be described in a transformational but also in an operational fashion. For this, we use standard modelling means, i.e. MOF and QVT Relations. We combine operational semantics descriptions with existing metamodel-based editor creation technology. This allows for cheap prototyping of visual interpreters and debuggers. We exemplify our approach with a language for Petri nets and assess the manual work necessary. Finally, we present EProvide, an implementation of our approach based on the Eclipse platform, and we identify missing features in the Eclipse tools we used." links: doi: "http://dx.doi.org/10.1007/978-3-540-69100-6_5" tags: - "model-to-model transformation" - "semantics" - "rule-based" - "transformation engineering" - "GMF" - "Eclipse" - "software architecture" - "model editor" - "QVT Transformations" - "QVT" - "meta-model" - "interpreter" - "modeling language" - "language engineering" - "transformation language" - "software language engineering" - "architecture" - "language modeling" - "model execution" - "source-to-source" - "software engineering" - "model-driven engineering" - "prototyping" - "debugging" - "model transformation" - "operational semantics" - "Meta-Environment" - "QVT Relations" - "modelware" - "systematic-approach" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/SadilekW08" cites: 21 citedby: 1 pages: "63-78" booktitle: "Model Driven Architecture - Foundations and Applications, 4th European Conference, ECMDA-FA 2008, Berlin, Germany, June 9-13, 2008. Proceedings" editor: - name: "Ina Schieferdecker" link: "https://researchr.org/alias/ina-schieferdecker" - name: "Alan Hartman" link: "https://researchr.org/alias/alan-hartman" volume: "5095" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-69095-5" kind: "inproceedings" key: "SadilekW08" - title: "Language Design with the Spoofax Language Workbench" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2014" doi: "http://dx.doi.org/10.1109/MS.2014.100" abstract: "IDEs are essential for programming language developers, and state-of-the-art IDE support is mandatory for programming languages to be successful. Although IDE features for mainstream programming languages are typically implemented manually, this often isn't feasible for programming languages that must be developed with significantly fewer resources. The Spoofax language workbench is a platform for developing textual programming languages with state-of-the-art IDE support. Spoofax is a comprehensive environment that integrates syntax definition, name binding, type analysis, program transformation, code generation, and declarative specification of IDE components. It also provides high-level languages for each of these aspects. These languages are highly declarative, abstracting over the implementation of IDE features and letting engineers focus on language design." links: doi: "http://dx.doi.org/10.1109/MS.2014.100" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/software/WachsmuthKV14" researchr: "https://researchr.org/publication/WachsmuthKV14" cites: 0 citedby: 0 journal: "IEEE Software" volume: "31" number: "5" pages: "35-43" kind: "article" key: "WachsmuthKV14" - title: "The Spoofax Name Binding Language" author: - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" doi: "https://doi.org/10.1145/2384716.2384748" abstract: "In textual software languages, names are used to identify program elements such as variables, methods, and classes. Name analysis algorithms resolve names in order to establish references between definitions and uses of names. In this poster, we present the Spoofax Name Binding Language (NBL), a declarative meta-language for the specification of name binding and scope rules, which departs from the programmatic encodings of name binding provided by regular approaches. NBL aspires to become the universal language for name binding, which can be used next to BNF definitions in reference manuals, as well as serve the generation of implementations." links: doi: "https://doi.org/10.1145/2384716.2384748" "url": "https://doi.org/10.1145/2384716.2384748" tags: - "C++" - "Spoofax" researchr: "https://researchr.org/publication/KonatVKWV2012" cites: 0 citedby: 0 booktitle: "Companion to the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2012, Tucson, AR, USA, October 19 - 26, 2012" publisher: "ACM" kind: "inproceedings" key: "KonatVKWV2012" - title: "Modelling the Operational Semantics of Domain-Specific Modelling Languages" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_16" abstract: "Domain-specific modelling languages provide modelling means tailored to a particular domain. In Model-driven Engineering, it is common practice to specify such languages by modelling means as well. In this paper, we investigate structural operational semantics for domain-specific modelling languages. Thereby, we rely completely on standard modelling means as provided by the Object Management Group. As examples, we specify structural operational semantics for Petri nets as well as for a stream-oriented language from the domain of earthquake detection. The approach is useful to provide prototypical tool support for domain-specific modelling languages. It can be instrumented to specify interpreters and debuggers in a generic way." links: doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_16" tags: - "semantics" - "QVT" - "meta-model" - "interpreter" - "modeling language" - "modeling" - " structural operational semantics" - "language engineering" - "language modeling" - "model execution" - "model-driven engineering" - "object-role modeling" - "debugging" - "DSL" - "operational semantics" - "Meta-Environment" - "QVT Relations" - "modelware" - "systematic-approach" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Wachsmuth07%3A0" cites: 27 citedby: 0 pages: "506-520" booktitle: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "5235" series: "Lecture Notes in Computer Science" address: "Braga, Portugal" publisher: "Springer" isbn: "978-3-540-88642-6" kind: "inproceedings" key: "Wachsmuth07:0" - title: "Robust Real-Time Synchronization between Textual and Graphical Editors" author: - name: "Oskar van Rest" link: "https://researchr.org/alias/oskar-van-rest" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jim R. H. Steel" link: "https://researchr.org/alias/jim-r.-h.-steel" - name: "Jörn Guy Süß" link: "https://researchr.org/alias/j%C3%B6rn-guy-s%C3%BC%C3%9F" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-642-38883-5_11" abstract: "In modern Integrated Development Environments (IDEs), textual editors are interactive and can handle intermediate, incomplete, or otherwise erroneous texts while still providing editor services such as syntax highlighting, error marking, outline views, and hover help. In this paper, we present an approach for the robust synchronization of interactive textual and graphical editors. The approach recovers from errors during parsing and text-to-model synchronization, preserves textual and graphical layout in the presence of erroneous texts and models, and provides synchronized editor services such as selection sharing and navigation between editors. It was implemented for synchronizing textual editors generated by the Spoofax language workbench and graphical editors generated by the Graphical Modeling Framework." links: doi: "http://dx.doi.org/10.1007/978-3-642-38883-5_11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icmt/RestWSSV13" technicalreport: "https://researchr.org/publication/preprint-VanRestWSSV2013" researchr: "https://researchr.org/publication/RestWSSV13" cites: 0 citedby: 0 pages: "92-107" booktitle: "Theory and Practice of Model Transformations - 6th International Conference, ICMT 2013, Budapest, Hungary, June 18-19, 2013. Proceedings" editor: - name: "Keith Duddy" link: "https://researchr.org/alias/keith-duddy" - name: "Gerti Kappel" link: "https://researchr.org/alias/gerti-kappel" volume: "7909" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-38882-8" kind: "inproceedings" key: "RestWSSV13" - title: "A Constraint Language for Static Semantic Analysis based on Scope Graphs with Proofs" author: - name: "Hendrik van Antwerpen" link: "https://nl.linkedin.com/in/hendrikvanantwerpen" - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2015" month: "September" abstract: "In previous work, we introduced scope graphs as a formalism for describing program binding structure and performing name resolution in an AST-independent way. In this paper, we show how to use scope graphs to build static semantic analyzers. We use constraints extracted from the AST to specify facts about binding, typing, and initialization. We treat name and type resolution as separate building blocks, but our approach can handle language constructs—such as record field access—for which binding and typing are mutually dependent. We also refine and extend our previous scope graph theory to address practical concerns including ambiguity checking and support for a wider range of scope relationships. We describe the details of constraint generation for a model language that illustrates many of the interesting static analysis issues associated with modules and records." note: "Available at \\url{http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2015-009.pdf}" links: "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2015-009.pdf" researchr: "https://researchr.org/publication/TUD-SERG-2015-009" cites: 0 citedby: 0 institution: "Software Engineering Research Group, Delft University of Technology" number: "TUD-SERG-2015-009" kind: "techreport" key: "TUD-SERG-2015-009" - title: "A Language Designer's Workbench: A One-Stop-Shop for Implementation and Verification of Language Designs" author: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Augusto Passalaqua" link: "http://www.linkedin.com/pub/augusto-passalaqua/9/829/b29" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" year: "2014" doi: "http://doi.acm.org/10.1145/2661136.2661149" abstract: "The realization of a language design requires multiple artifacts that redundantly encode the same information. This entails significant effort for language implementors, and often results in late detection of errors in language definitions. In this paper we present a proof-of-concept language designer's workbench that supports generation of IDEs, interpreters, and verification infrastructure from a single source. This constitutes a first milestone on the way to a system that fully automates language implementation and verification. " links: doi: "http://doi.acm.org/10.1145/2661136.2661149" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/VisserWTNVPK14" "pdf": "http://dl.acm.org/ft_gateway.cfm?id=2661149&ftid=1505232&dwn=1&CFID=550125770&CFTOKEN=54358949" researchr: "https://researchr.org/publication/VisserOnward14" cites: 0 citedby: 0 pages: "95-111" booktitle: "Onward! 2014, Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, part of SPLASH '14, Portland, OR, USA, October 20-24, 2014" editor: - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" - name: "Shriram Krishnamurthi" link: "http://www.cs.brown.edu/~sk/" - name: "Bernd Bruegge" link: "https://researchr.org/alias/bernd-bruegge" - name: "Joseph N. Ruskiewicz" link: "https://researchr.org/alias/joseph-n.-ruskiewicz" publisher: "ACM" isbn: "978-1-4503-3210-1" kind: "inproceedings" key: "VisserOnward14" - title: "Language Evolution in Practice: The History of GMF" author: - name: "Markus Herrmannsdörfer" link: "http://www4.in.tum.de/~herrmama/" - name: "Daniel Ratiu" link: "http://www4.in.tum.de/~ratiu/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_3" abstract: "In consequence of changing requirements and technological progress, software languages are subject to change. The changes affect the language's specification, which in turn affects language processors as well as existing language utterances. Unfortunately, little is known about how software languages evolve in practice. This paper presents a case study on the evolution of four modeling languages provided by the Graphical Modeling Framework. It investigates the following research questions: (1) What is the impact of language changes on related software artifacts?, (2) What activities are performed to implement language changes? and (3) What kinds of adaptations capture the language changes? We found out that the language changes affect various kinds of related artifacts; the distribution of the activities performed to evolve the languages mirrors the classical software maintenance activities, and most language changes can be captured by a small suite of operators that can also be used to migrate the language utterances. " links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_3" tags: - "GMF" - "Eclipse" - "case study" - "graphical modeling framework" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "coupled evolution" - "software language engineering" - "language modeling" - "requirements engineering" - "little language" - "software evolution" - "maintenance" - "software engineering" - "model-driven engineering" - "history" - "Meta-Environment" - "modelware" - "process modeling" - "language evolution" researchr: "https://researchr.org/publication/HerrmannsdoerferRW09" cites: 0 citedby: 1 pages: "3-22" booktitle: "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" volume: "5969" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-12106-7" kind: "inproceedings" key: "HerrmannsdoerferRW09" - title: "Aspect-oriented Prolog in a language processing context" author: - name: "Wolfgang Lohmann" link: "http://www.informatik.uni-rostock.de/~wlohmann/" - name: "Günter Riedewald" link: "http://www.informatik.uni-rostock.de/psuet/griedew.html" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2008" doi: "http://dx.doi.org/10.1049/iet-sen:20070064" abstract: "Language processors can be derived from logic grammars. That several concerns in the processor such as parsing, several kinds of analysis or transformations, can be specified as aspects of the logic grammar is demonstred. For that purpose, the authors bring the concepts of aspect-oriented programming to Prolog in a systematic way, based on established Prolog technology. The authors illustrate that typical Prolog programming techniques can be described as generic aspects and provided in a library to support reusable concerns. A domain-specific language (DSL) is developed to improve readability of aspect-oriented specifications." links: doi: "http://dx.doi.org/10.1049/iet-sen:20070064" tags: - "programming languages" - "object-oriented programming" - "Prolog" - "rule-based" - "program analysis" - "generic programming" - "transformation language" - "domain analysis" - "analysis" - "reuse" - "logic programming" - "aspect oriented programming" - "DSL" - "programming" - "subject-oriented programming" - "context-aware" - "logic" - "parsing" - "systematic-approach" - "feature-oriented programming" - "transformation" - "grammar" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/lohmann%3A2008" cites: 0 citedby: 0 journal: "IEE Proceedings - Software" volume: "2" number: "3" kind: "article" key: "lohmann:2008" - title: "Using Grammarware Languages to Define Operational Semantics of Modelled Languages" author: - name: "Daniel A. Sadilek" link: "http://www2.informatik.hu-berlin.de/~sadilek/Homepage/Home.html" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02571-6_20" abstract: "Abstract State Machines, Prolog, and Scheme are well-established for language engineering in the technological space of grammarware. In this paper, we show how they can be integrated into the technological space of modelware to describe operational semantics of modelled languages. Integration is based on three bridges: a physical, a logical, and a pragmatical bridge between grammarware language and modelling framework. We applied our approach to integrate Abstract State Machines, Prolog, and Scheme as description languages in EProvide 2.0, an extensible, unified framework for prototyping operational semantics of modelled languages. In this paper, we discuss in detail the bridging of Abstract State Machines as well as an industrial case study based on this." links: doi: "http://dx.doi.org/10.1007/978-3-642-02571-6_20" tags: - "semantics" - "Prolog" - "rule-based" - "Eclipse" - "case study" - " ASMs" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "software language engineering" - "language modeling" - "model execution" - "software engineering" - "model-driven engineering" - "prototyping" - "operational semantics" - "Meta-Environment" - "state machines" - "grammarware" - "abstract machine" - "modelware" - "Scheme" - "extensible language" - "systematic-approach" researchr: "https://researchr.org/publication/SadilekW09" cites: 0 citedby: 0 booktitle: "Objects, Components, Models and Patterns, 47th International Conference, TOOLS EUROPE 2009, Zurich, Switzerland, June 29-July 3, 2009. Proceedings" editor: - name: "Manuel Oriol" link: "https://researchr.org/alias/manuel-oriol" - name: "Bertrand Meyer" link: "https://researchr.org/alias/bertrand-meyer" volume: "33" series: "Lecture Notes in Business Information Processing" publisher: "Springer" isbn: "978-3-642-02570-9" kind: "inproceedings" key: "SadilekW09" - title: "DSL Engineering - Designing, Implementing and Using Domain-Specific Languages" author: - name: "Markus Völter" link: "http://www.voelter.de/" - name: "Sebastian Benz" link: "http://" - name: "Christian Dietrich" link: "https://researchr.org/alias/christian-dietrich" - name: "Birgit Engelmann" link: "https://researchr.org/alias/birgit-engelmann" - name: "Mats Helander" link: "https://researchr.org/alias/mats-helander" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2013" doi: "http://www.dslbook.org" abstract: "This book covers DSL Design, Implementation and Use of DSL in detail. It consists of four parts. Part 1 introduces DSLs in general and discusses their advantages and drawbacks. It also defines important terms and concepts and introduces the case studies used in the most of the re-mainder of the book. Part 2 discusses the design of DSLs – independent of implementation techniques. It discusses seven design dimensions, explains a number of reusable language paradigms and points out a number of process-related issues. Part 3 provides details about the implementation of DSLs with lots of code. It uses three state-of-the-art but quite different language workbenches: Jet-Brains MPS, Eclipse Xtext and TU Delft’s Spoofax. Part 4 discusses the use of DSLs for requirements, architecture, implementation and product line engineering, as well as their roles as a developer utility and for implementing business logic." links: doi: "http://www.dslbook.org" dblp: "http://dblp.uni-trier.de/rec/bibtex/books/daglib/0030751" researchr: "https://researchr.org/publication/DslEngineering2013" cites: 0 citedby: 0 publisher: "dslbook.org" isbn: "978-1-4812-1858-0" kind: "book" key: "DslEngineering2013" - title: "The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Markus Völter" link: "http://www.voelter.de/" - name: " Meinte Boersma" link: "https://researchr.org/alias/meinte-boersma" - name: "Remi Bosman" link: "https://researchr.org/alias/remi-bosman" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Albert Gerritsen" link: "https://researchr.org/alias/albert-gerritsen" - name: "Angelo Hulshout" link: "https://researchr.org/alias/angelo-hulshout" - name: "Steven Kelly" link: "https://researchr.org/alias/steven-kelly" - name: "Alex Loh" link: "https://researchr.org/alias/alex-loh" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Pedro J. Molina" link: "https://researchr.org/alias/pedro-j.-molina" - name: "Martin Palatnik" link: "https://researchr.org/alias/martin-palatnik" - name: "Risto Pohjonen" link: "https://researchr.org/alias/risto-pohjonen" - name: "Eugen Schindler" link: "https://researchr.org/alias/eugen-schindler" - name: "Klemens Schindler" link: "https://researchr.org/alias/klemens-schindler" - name: "Riccardo Solmi" link: "https://researchr.org/alias/riccardo-solmi" - name: "Vlad A. Vergu" link: "https://researchr.org/alias/vlad-a.-vergu" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Kevin van der Vlist" link: "https://researchr.org/alias/kevin-van-der-vlist" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jimi van der Woning" link: "https://researchr.org/alias/jimi-van-der-woning" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" abstract: "Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches." links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/ErdwegSVBBCGHKLKMPPSSSVVVWW13" researchr: "https://researchr.org/publication/ErdwegSV13" cites: 0 citedby: 0 pages: "197-217" booktitle: "Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings" editor: - name: "Martin Erwig" link: "https://researchr.org/alias/martin-erwig" - name: "Richard F. Paige" link: "https://researchr.org/alias/richard-f.-paige" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "8225" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-02653-4" kind: "inproceedings" key: "ErdwegSV13" - title: "A Constraint Language for Static Semantic Analysis based on Scope Graphs with Proofs" author: - name: "Hendrik van Antwerpen" link: "https://nl.linkedin.com/in/hendrikvanantwerpen" - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2015" month: "November" abstract: "In previous work, we introduced scope graphs as a formalism for describing program binding structure and performing name resolution in an AST-independent way. In this paper, we show how to use scope graphs to build static semantic analyzers. We use constraints extracted from the AST to specify facts about binding, typing, and initialization. We treat name and type resolution as separate building blocks, but our approach can handle language constructs -- such as record field access -- for which binding and typing are mutually dependent. We also refine and extend our previous scope graph theory to address practical concerns including ambiguity checking and support for a wider range of scope relationships. We describe the details of constraint generation for a model language that illustrates many of the interesting static analysis issues associated with modules and records." note: "Available at \\url{http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2015-012.pdf}" links: published: "https://researchr.org/publication/VanAntwerpenNTVWPEPM2016" researchr: "https://researchr.org/publication/TUD-SERG-2015-012" cites: 0 citedby: 0 institution: "Software Engineering Research Group, Delft University of Technology" number: "TUD-SERG-2015-012" kind: "techreport" key: "TUD-SERG-2015-012" - title: "Transformation of SDF syntax definitions in the ASF+SDF Meta-Environment" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2001" doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#004" abstract: "We describe FST - a Framework for SDF Transformation. FST supports the adaptation (in a broad sense) of grammars based on the syntax definition formalism SDF. The executable specification of FST is based on the ASF+SDF Meta-Environment. Grammar transformations form an important concept of grammar reengineering, implementation, recovery and others. Tool support for grammar transformations is essential to automate the corresponding processes. We have chosen SDF as target language for grammar transformations because it is an expressive syntax definition formalism which does not just cover BNF and extended BNF but also constructs for modularisation and disambiguation. The algebraic specification of the framework is immediately operational in the ASF+SDF Meta-Environment." links: doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#004" tags: - "model-to-model transformation" - "rule-based" - "syntax definition" - "SDF" - "meta-model" - "transformation language" - "disambiguation" - "process algebra" - "software evolution" - "source-to-source" - "algebraic specification" - "model transformation" - " algebra" - "Meta-Environment" - "grammarware" - "ASF+SDF" - "language evolution" - "meta-objects" - "transformation" - "grammar" researchr: "https://researchr.org/publication/LammelW01" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "44" number: "2" pages: "9-33" kind: "article" key: "LammelW01" - title: "FlowSpec: A Declarative Specification Language for Intra-Procedural Flow-Sensitive Data-Flow Analysis" author: - name: "Jeff Smits" link: "https://www.jeffsmits.net/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2020" doi: "https://doi.org/10.1016/j.cola.2019.100924" abstract: "Data-flow analysis is the static analysis of programs to estimate their approximate run-time behavior or approximate intermediate run-time values. It is an integral part of modern language specifications and compilers. In the specification of static semantics of programming languages, the concept of data-flow allows the description of well-formedness such as definite assignment of a local variable before its first use. In the implementation of compiler back-ends, data-flow analyses inform optimizations. Data-flow analysis has an established theoretical foundation. What lags behind is implementations of data-flow analysis in compilers, which are usually ad-hoc. This makes such implementations difficult to extend and maintain. In previous work researchers have proposed higher-level formalisms suitable for whole-program analysis in a separate tool, incremental analysis within editors, or bound to a specific intermediate representation. In this paper, we present FlowSpec, an executable formalism for specification of data-flow analysis. FlowSpec is a domain-specific language that enables direct and concise specification of data-flow analysis for programming languages, designed to express flow-sensitive, intra-procedural analyses. We define the formal semantics of FlowSpec in terms of monotone frameworks. We describe the design of FlowSpec using examples of standard analyses. We also include a description of our implementation of FlowSpec. In a case study we evaluate FlowSpec with the static analyses for Green-Marl, a domain-specific programming language for graph analytics." links: doi: "https://doi.org/10.1016/j.cola.2019.100924" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/vlc/SmitsWV20" researchr: "https://researchr.org/publication/SmitsWV20" cites: 0 citedby: 0 journal: "Journal of Computer Languages" volume: "57" pages: "100924" kind: "article" key: "SmitsWV20" - title: "Principled syntactic code completion using placeholders" author: - name: "Luis Eduardo de Souza Amorim" link: "https://www.linkedin.com/profile/view?id=136481548" - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2016" doi: "http://dx.doi.org/10.1145/2997364.2997374" abstract: "Principled syntactic code completion enables developers to change source code by inserting code templates, thus increasing developer efficiency and supporting language exploration. However, existing code completion systems are ad-hoc and neither complete nor sound. They are not complete and only provide few code templates for selected programming languages. They also are not sound and propose code templates that yield invalid programs when inserted.This paper presents a generic framework that automatically derives complete and sound syntactic code completion from the syntax definition of arbitrary languages. A key insight of our work is to provide an explicit syntactic representation for incomplete programs using placeholders. This enables us to address the following challenges for code completion separately: (i) completing incomplete programs by replacing placeholders with code templates, (ii) injecting placeholders into complete programs to make them incomplete, and (iii) introducing lexemes and placeholders into incorrect programs through error-recovery parsing to make them correct so we can apply one of the previous strategies. We formalize our framework and provide an implementation in the Spoofax Language Workbench. " links: doi: "http://dx.doi.org/10.1145/2997364.2997374" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/AmorimEWV16" researchr: "https://researchr.org/publication/AmorimEWV16" cites: 0 citedby: 0 pages: "163-175" booktitle: "Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, Amsterdam, The Netherlands, October 31 - November 1, 2016" editor: - name: "Tijs van der Storm" link: "https://researchr.org/alias/tijs-van-der-storm" - name: "Emilie Balland" link: "https://researchr.org/alias/emilie-balland" - name: "Dániel Varró" link: "https://researchr.org/alias/d%C3%A1niel-varr%C3%B3" publisher: "ACM" isbn: "978-1-4503-4447-0" kind: "inproceedings" key: "AmorimEWV16" - title: "Coupled Evolution of Software Metamodels and Models" author: - name: "Markus Herrmannsdörfer" link: "http://www4.in.tum.de/~herrmama/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2014" doi: "http://dx.doi.org/10.1007/978-3-642-45398-4_2" links: doi: "http://dx.doi.org/10.1007/978-3-642-45398-4_2" dblp: "http://dblp.uni-trier.de/rec/bibtex/books/sp/ess14/HerrmannsdorferW14" researchr: "https://researchr.org/publication/HerrmannsdorferW14" cites: 0 citedby: 0 pages: "33-63" booktitle: "Evolving Software Systems" editor: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Alexander Serebrenik" link: "http://www.win.tue.nl/~aserebre/" - name: "Anthony Cleve" link: "https://researchr.org/alias/anthony-cleve" publisher: "Springer" isbn: "978-3-642-45397-7" kind: "incollection" key: "HerrmannsdorferW14" - title: "Online estimation of time-varying torque characteristics of automotive clutches using a control oriented model" author: - name: "Alex Tarasow" link: "https://researchr.org/alias/alex-tarasow" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Joseph Lemieux" link: "https://researchr.org/alias/joseph-lemieux" - name: "Roland Serway" link: "https://researchr.org/alias/roland-serway" - name: "Christian Bohn" link: "https://researchr.org/alias/christian-bohn" year: "2013" doi: "http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=6580900" links: doi: "http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=6580900" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/amcc/TarasowWLSB13" researchr: "https://researchr.org/publication/TarasowWLSB13" cites: 0 citedby: 0 pages: "6752-6757" booktitle: "American Control Conference, ACC 2013, Washington, DC, USA, June 17-19, 2013" publisher: "IEEE" isbn: "978-1-4799-0177-7" kind: "inproceedings" key: "TarasowWLSB13" - title: "A Formal Way from Text to Code Templates" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00593-0_8" abstract: "We present an approach to define template languages for generating syntactically correct code. In the first part of the paper, we define the syntax and semantics of a template language for text generation. We use Natural Semantics for expressing both the static and the dynamic semantics of the language. In the second part, we deal with template languages for code generation in a particular target language. We provide construction steps for the syntax and semantics of such languages. The approach is generic and can be applied to any target language." links: doi: "http://dx.doi.org/10.1007/978-3-642-00593-0_8" tags: - "model-to-model transformation" - "semantics" - "transformation engineering" - "formal semantics" - "model-to-text transformation" - "language engineering" - "transformation language" - "composition" - "source-to-source" - "model-driven engineering" - "code generation" - "model transformation" - "natural semantics" - "language composition" - "grammarware" - "modelware" - "systematic-approach" - "open-source" - "transformation" researchr: "https://researchr.org/publication/Wachsmuth09" cites: 0 citedby: 0 pages: "109-123" booktitle: "Fundamental Approaches to Software Engineering, 12th International Conference, FASE 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: "Marsha Chechik" link: "https://researchr.org/alias/marsha-chechik" - name: "Martin Wirsing" link: "https://researchr.org/alias/martin-wirsing" volume: "5503" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00592-3" kind: "inproceedings" key: "Wachsmuth09" - title: "An Extensive Catalog of Operators for the Coupled Evolution of Metamodels and Models" author: - name: "Markus Herrmannsdörfer" link: "http://www4.in.tum.de/~herrmama/" - name: "Sander Vermolen" link: "http://www.sandervermolen.nl" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_10" abstract: "Modeling languages and thus their metamodels are subject to change. When a metamodel is evolved, existing models may no longer conform to it. Manual migration of these models in response to metamodel evolution is tedious and error-prone. To significantly automate model migration, operator-based approaches provide reusable coupled operators that encapsulate both metamodel evolution and model migration. The success of an operator-based approach highly depends on the library of reusable coupled operators it provides. In this paper, we thus present an extensive catalog of coupled operators that is based both on a literature survey as well as real-life case studies. The catalog is organized according to a number of criteria to ease assessing the impact on models as well as selecting the right operator for a metamodel change at hand." links: doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_10" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/HerrmannsdoerferVW10" tags: - "case study" - "meta-model" - "modeling language" - "modeling" - "coupled evolution" - "language modeling" - "reuse" - "survey" - "migration" - "Meta-Environment" - "systematic-approach" researchr: "https://researchr.org/publication/HerrmannsdoerferVW10" cites: 0 citedby: 0 pages: "163-182" booktitle: "Software Language Engineering - Third International Conference, SLE 2010, Eindhoven, The Netherlands, October 12-13, 2010, Revised Selected Papers" editor: - name: "Brian A. Malloy" link: "https://researchr.org/alias/brian-a.-malloy" - name: "Steffen Staab" link: "https://researchr.org/alias/steffen-staab" - name: "Mark van den Brand" link: "https://researchr.org/alias/mark-van-den-brand" volume: "6563" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-19439-9" kind: "inproceedings" key: "HerrmannsdoerferVW10" - title: "Metamodel Adaptation and Model Co-adaptation" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-73589-2_28" abstract: "Like other software artefacts, metamodels evolve over time. We propose a transformational approach to assist metamodel evolution by stepwise adaptation. In the first part of the paper, we adopt ideas from grammar engineering to define several semantics- and instance preservation properties in terms of metamodel relations. This part is not restricted to any metamodel formalism. In the second part, we present a library of QVT Relations for the stepwise adaptation of MOF compliant metamodels. Transformations from this library separate preservation properties. We distinguish three kinds of adaptation according to these properties; namely refactoring, construction, and destruction. Co-adaptation of model instances is discussed with respect to of instance-preservation. In most cases, co-adaptation is achieved automatically. Finally, we point out applications in the areas of metamodel design, implementation, refinement, maintenance, and recovery." links: doi: "http://dx.doi.org/10.1007/978-3-540-73589-2_28" tags: - "model-to-model transformation" - "semantics" - "transformation engineering" - "QVT Transformations" - "QVT" - "meta-model" - "modeling language" - "refinement" - "model refactoring" - "refactoring" - "language engineering" - "transformation language" - "coupled evolution" - "software language engineering" - "language modeling" - "coupled transformation" - "language design" - "software evolution" - "source-to-source" - "maintenance" - "software engineering" - "model-driven engineering" - "model transformation" - "Meta-Environment" - "QVT Relations" - "modelware" - "design" - "systematic-approach" - "language evolution" - "transformation" - "grammar" researchr: "https://researchr.org/publication/Wachsmuth07" cites: 0 citedby: 4 pages: "600-624" booktitle: "ECOOP 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30 - August 3, 2007, Proceedings" editor: - name: "Erik Ernst" link: "http://person.au.dk/eernst@cs" volume: "4609" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-73588-5" kind: "inproceedings" key: "Wachsmuth07" - title: "A Theory of Name Resolution" author: - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2015" doi: "http://dx.doi.org/10.1007/978-3-662-46669-8_9" abstract: "We describe a language-independent theory for name binding and resolution, suitable for programming languages with complex scoping rules including both lexical scoping and modules. We formulate name resolution as a two-stage problem. First a language-independent scope graph is constructed using language-specific rules from an abstract syntax tree. Then references in the scope graph are resolved to corresponding declarations using a language-independent resolution process. We introduce a resolution calculus as a concise, declarative, and languageindependent specification of name resolution. We develop a resolution algorithm that is sound and complete with respect to the calculus. Based on the resolution calculus we develop language-independent definitions of α-equivalence and rename refactoring. We illustrate the approach using a small example language with modules. In addition, we show how our approach provides a model for a range of name binding patterns in existing languages." links: doi: "http://dx.doi.org/10.1007/978-3-662-46669-8_9" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/esop/NeronTVW15" technicalreport: "https://researchr.org/publication/TUD-SERG-2015-001" researchr: "https://researchr.org/publication/NeronTVW15" cites: 0 citedby: 0 pages: "205-231" booktitle: "Programming Languages and Systems - 24th European Symposium on Programming, ESOP 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11-18, 2015. Proceedings" editor: - name: "Jan Vitek" link: "https://researchr.org/alias/jan-vitek" volume: "9032" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-662-46668-1" kind: "inproceedings" key: "NeronTVW15" - title: "Generating database migrations for evolving web applications" author: - name: "Sander Vermolen" link: "http://www.sandervermolen.nl" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "http://doi.acm.org/10.1145/2047862.2047876" abstract: "WebDSL is a domain-specific language for the implementation of dynamic web applications with a rich data model. It provides developers with object-oriented data modeling concepts but abstracts over implementation details for persisting application data in relational databases. When the underlying data model of an application evolves, persisted application data has to be migrated. While implementing migration at the database level breaks the abstractions provided by WebDSL, an implementation at the data model level requires to intermingle migration with application code. In this paper, we present a domain-specific language for the coupled evolution of data models and application data. It allows to specify data model evolution as a separate concern at the data model level and can be compiled to migration code at the database level. Its linguistic integration with WebDSL enables static checks for evolution validity and correctness." links: doi: "http://doi.acm.org/10.1145/2047862.2047876" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/gpce/VermolenWV11" researchr: "https://researchr.org/publication/VermolenWV11" cites: 0 citedby: 0 pages: "83-92" booktitle: "Generative Programming And Component Engineering, Proceedings of the 10th International Conference on Generative Programming and Component Engineering, GPCE 2011, Portland, Oregon, USA, October 22-24, 2011" editor: - name: "Ewen Denney" link: "https://researchr.org/alias/ewen-denney" - name: "Ulrik Pagh Schultz" link: "https://researchr.org/alias/ulrik-pagh-schultz" publisher: "ACM" isbn: "978-1-4503-0689-8" kind: "inproceedings" key: "VermolenWV11" - title: "Reconstructing Complex Metamodel Evolution" author: - name: "Sander Vermolen" link: "http://www.sandervermolen.nl" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_11" abstract: "Metamodel evolution requires model migration. To correctly migrate models, evolution needs to be made explicit. Manually describing evolution is error-prone and redundant. Metamodel matching offers a solution by automatically detecting evolution, but is only capable of detecting primitive evolution steps. In practice, primitive evolution steps are jointly applied to form a complex evolution step, which has the same effect on a metamodel as the sum of its parts, yet generally has a different effect in migration. Detection of complex evolution is therefore needed. In this paper, we present an approach to reconstruct complex evolution between two metamodel versions, using a matching result as input. It supports operator dependencies and mixed, overlapping, and incorrectly ordered complex operator components. It also supports interference between operators, where the effect of one operator is partially or completely hidden from the target metamodel by other operators." links: doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/VermolenWV11" technicalreport: "https://researchr.org/publication/VermolenWachsmuthVisser-TUD-SERG-2011-026" researchr: "https://researchr.org/publication/VermolenWV11sle" cites: 0 citedby: 0 pages: "201-221" 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: "VermolenWV11sle" - title: "An Adaptation Browser for MOF" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2007" doi: "http://netfiles.uiuc.edu/dig/RefactoringWorkshop/" links: doi: "http://netfiles.uiuc.edu/dig/RefactoringWorkshop/" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ecoop/Wachsmuth07a" researchr: "https://researchr.org/publication/Wachsmuth07a" cites: 0 citedby: 1 pages: "64-65" booktitle: "1st Workshop on Refactoring Tools, WRT 2007, in conjunction with 21st European Conference on Object-Oriented Programming, July 30 - August 03, 2007, Berlin, Proceedings" editor: - name: "Danny Dig" link: "https://researchr.org/alias/danny-dig" kind: "inproceedings" key: "Wachsmuth07a" - title: "Pure and declarative syntax definition: paradise lost and regained" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2010" doi: "http://doi.acm.org/10.1145/1869459.1869535" abstract: "Syntax definitions are pervasive in modern software systems, and serve as the basis for language processing tools like parsers and compilers. Mainstream parser generators pose restrictions on syntax definitions that follow from their implementation algorithm. They hamper evolution, maintainability, and compositionality of syntax definitions. The pureness and declarativity of syntax definitions is lost. We analyze how these problems arise for different aspects of syntax definitions, discuss their consequences for language engineers, and show how the pure and declarative nature of syntax definitions can be regained." links: doi: "http://doi.acm.org/10.1145/1869459.1869535" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/KatsVW10" "pdf (tech report)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2010-019.pdf" tags: - "parsing algorithm" - "syntax definition" - "composition" - "software evolution" - "C++" - "compiler" - "parsing" researchr: "https://researchr.org/publication/KatsVW10" cites: 0 citedby: 1 pages: "918-932" booktitle: "Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, October 17-21, 2010, Reno/Tahoe, Nevada, USA" editor: - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Siobhán Clarke" link: "https://www.cs.tcd.ie/Siobhan.Clarke/" - name: "Martin C. Rinard" link: "https://researchr.org/alias/martin-c.-rinard" address: "Reno/Tahoe, Nevada" publisher: "ACM" isbn: "978-1-4503-0203-6" kind: "inproceedings" key: "KatsVW10" - title: "Language-Independent Type-Dependent Name Resolution" author: - name: "Hendrik van Antwerpen" link: "https://nl.linkedin.com/in/hendrikvanantwerpen" - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2015" month: "July" abstract: "We extend and combine two existing declarative formalisms, the scope graphs of Neron et al. and type constraint systems, to build a language-independent theory that can describe both name and type resolution for realistic languages with complex scope and typing rules. Unlike conventional static semantics presentations, our approach maintains a clear separation between scoping and typing concerns, while still be- ing able to handle language constructs, such as class field access, for which name and type resolution are necessarily intertwined. We define a constraint scheme that can express both typing and name binding constraints, and give a for- mal notion of constraint satisfiability together with a sound algorithm for finding solutions in important special cases. We describe the details of constraint generation for a model language that illustrates many of the interesting resolution issues associated with modules, classes, and records. Our constraint generator and solver have been implemented in the Spoofax Language Workbench." links: "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2015-006.pdf" researchr: "https://researchr.org/publication/TUD-SERG-2015-006" cites: 0 citedby: 0 institution: "Delft University of Technology, Software Engineering Research Group" number: "TUD-SERG-2015-006" address: "Delft, The Netherlands" kind: "techreport" key: "TUD-SERG-2015-006" - title: "Robust Real-Time Synchronization between Textual and Graphical Editors" author: - name: "Oskar van Rest" link: "http://www.linkedin.com/profile/view?id=111151073" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jim Steel" link: "http://jimsteel.googlepages.com" - name: " Jörn Guy Süss" link: "https://researchr.org/alias/jo%CC%88rn-guy-su%CC%88ss" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2013" month: "June" abstract: "In modern Integrated Development Environments (IDEs), textual editors are interactive and can handle intermediate, incomplete, or otherwise erroneous texts while still providing editor services such as syntax highlighting, error marking, outline views, and hover help. In this paper, we present an approach for the robust synchronization of interactive textual and graphical editors. The approach recovers from errors during parsing and text-to-model synchronization, preserves textual and graphical layout in the presence of erroneous texts and models, and provides synchronized editor services such as selection sharing and navigation between editors. It was implemented for synchronizing textual editors generated by the Spoofax language workbench and graphical editors generated by the Graphical Modeling Framework." links: published: "https://researchr.org/publication/RestWSSV13" researchr: "https://researchr.org/publication/preprint-VanRestWSSV2013" cites: 0 citedby: 0 type: "Preprint" kind: "techreport" key: "preprint-VanRestWSSV2013" - title: "Ideen der Aspektorientierung in Prolog" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2006" month: "April" abstract: "Some software properties can not be implemented as separated modules using common concepts of modern programming languages. Instead implementations of those properties tend to crosscut modular implementations of other properties. This decreases understanding, maintainibility, extensibility, and reusability of software components. Aspect-oriented programming overcomes this problem by introducing aspects as a new concept to implement these crosscutting concerns in isolation. This work investigates the adaption of those ideas to Prolog. It is shown that crosscutting concerns occur in Prolog programs and can not be modularised by the use of predicates and clauses. Existing solutions addressing this problem for Prolog programs like port annotations and the method of stepwise enhancement are presented, compared to aspect-oriented concepts, and evaluated subsequently. Based on those reflections a model for aspect-oriented programming in Prolog is developed. The model is used to formalise programming techniques in a generic manner. Furthermore, a generic approach to assist aspect-oriented developing of language processors is presented." note: "Ideas of Aspect-Orientation in Prolog" links: successor: "https://researchr.org/publication/lohmann%3A2008" tags: - "programming languages" - "object-oriented programming" - "reusable components" - "Prolog" - "rule-based" - "meta programming" - "generic programming" - "software components" - "meta-model" - "modeling language" - "language modeling" - "software component" - "reuse" - "object-role modeling" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "reflection" - "process modeling" - "extensible language" - "systematic-approach" - "feature-oriented programming" researchr: "https://researchr.org/publication/wachsmuth%3Adiplomathesis" cites: 0 citedby: 0 school: "University of Rostock" address: "Germany" advisor: - name: "Günter Riedewald" link: "http://www.informatik.uni-rostock.de/psuet/griedew.html" - name: "Wolfgang Lohmann" link: "http://www.informatik.uni-rostock.de/~wlohmann/" kind: "mastersthesis" key: "wachsmuth:diplomathesis" - title: "A constraint language for static semantic analysis based on scope graphs" author: - name: "Hendrik van Antwerpen" link: "https://nl.linkedin.com/in/hendrikvanantwerpen" - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2016" doi: "http://doi.acm.org/10.1145/2847538.2847543" abstract: "In previous work, we introduced scope graphs as a formalism for describing program binding structure and performing name resolution in an AST-independent way. In this paper, we show how to use scope graphs to build static semantic analyzers. We use constraints extracted from the AST to specify facts about binding, typing, and initialization. We treat name and type resolution as separate building blocks, but our approach can handle language constructs -- such as record field access -- for which binding and typing are mutually dependent. We also refine and extend our previous scope graph theory to address practical concerns including ambiguity checking and support for a wider range of scope relationships. We describe the details of constraint generation for a model language that illustrates many of the interesting static analysis issues associated with modules and records. " links: doi: "http://doi.acm.org/10.1145/2847538.2847543" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pepm/AntwerpenNTVW16" researchr: "https://researchr.org/publication/AntwerpenNTVW16" cites: 0 citedby: 0 pages: "49-60" booktitle: "Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2016, St. Petersburg, FL, USA, January 20 - 22, 2016" editor: - name: "Martin Erwig" link: "https://researchr.org/alias/martin-erwig" - name: "Tiark Rompf" link: "https://researchr.org/alias/tiark-rompf" publisher: "ACM" isbn: "978-1-4503-4097-7" kind: "inproceedings" key: "AntwerpenNTVW16"