% Bibliography downloaded from https://researchr.org/downloadbibtex/bibliography/metaborg-book @inproceedings{BrandDHJ01, title = {The {ASF+SDF} Meta-environment: A Component-Based Language Development Environment}, author = {Mark G. J. van den Brand and Arie van Deursen and Jan Heering and H. A. de Jong and Merijn de Jonge and Tobias Kuipers and Paul Klint and Leon Moonen and Pieter A. Olivier and Jeroen Scheerder and Jurgen J. Vinju and Eelco Visser and Joost Visser}, year = {2001}, doi = {10.1016/S1571-0661(04)80917-4}, url = {https://doi.org/10.1016/S1571-0661(04)80917-4}, tags = {programming languages, rule-based, meta programming, SDF, meta-model, architecture, model-driven development, source-to-source, DSL, metaprogramming, Meta-Environment, Cobol, ASF+SDF, open-source, meta-objects}, researchr = {https://researchr.org/publication/BrandDHJ01}, cites = {0}, citedby = {3}, pages = {365-370}, booktitle = {Compiler Construction, 10th International Conference, CC 2001 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2001 Genova, Italy, April 2-6, 2001, Proceedings}, editor = {Reinhard Wilhelm}, volume = {2027}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {3-540-41861-X}, } @inproceedings{BrandSVV02, title = {Disambiguation Filters for Scannerless Generalized {LR} Parsers}, author = {Mark G. J. van den Brand and Jeroen Scheerder and Jurgen J. Vinju and Eelco Visser}, year = {2002}, doi = {10.1007/3-540-45937-5_12}, url = {https://doi.org/10.1007/3-540-45937-5_12}, tags = {GLR parsing, syntax definition, SDF, lexical syntax, scannerless, disambiguation, GLR, context-aware, parsing, scannerless parsing, ASF+SDF, SGLR, grammar}, researchr = {https://researchr.org/publication/BrandSVV02}, cites = {0}, citedby = {4}, pages = {143-158}, booktitle = {Compiler Construction, 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, 2002, Proceedings}, editor = {R. Nigel Horspool}, volume = {2304}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {3-540-43369-4}, } @inproceedings{Jonge02, title = {Pretty-Printing for Software Reengineering}, author = {Merijn de Jonge}, year = {2002}, url = {http://computer.org/proceedings/icsm/1819/18190550abs.htm}, researchr = {https://researchr.org/publication/Jonge02}, cites = {0}, citedby = {0}, pages = {550-559}, booktitle = {18th International Conference on Software Maintenance (ICSM 2002), Maintaining Distributed Heterogeneous Systems, 3-6 October 2002, Montreal, Quebec, Canada}, publisher = {IEEE Computer Society}, isbn = {0-7695-1819-2}, } @inproceedings{BastenS10, title = {AMBIDEXTER: Practical Ambiguity Detection}, author = {Bas Basten and Tijs van der Storm}, year = {2010}, doi = {10.1109/SCAM.2010.21}, url = {http://dx.doi.org/10.1109/SCAM.2010.21}, researchr = {https://researchr.org/publication/BastenS10}, cites = {0}, citedby = {0}, pages = {101-102}, booktitle = {Tenth IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2010, Timisoara, Romania, 12-13 September 2010}, publisher = {IEEE Computer Society}, isbn = {978-0-7695-4178-5}, } @inproceedings{Tomita85, title = {An Efficient Context-Free Parsing Algorithm for Natural Languages}, author = {Masaru Tomita}, year = {1985}, tags = {parsing algorithm, context-aware, parsing}, researchr = {https://researchr.org/publication/Tomita85}, cites = {0}, citedby = {1}, pages = {756-764}, booktitle = {IJCAI}, } @inproceedings{VisserOnward14, title = {A Language Designer's Workbench: A One-Stop-Shop for Implementation and Verification of Language Designs}, author = {Eelco Visser and Guido Wachsmuth and Andrew P. Tolmach and Pierre Néron and Vlad A. Vergu and Augusto Passalaqua and Gabriël Konat}, year = {2014}, doi = {10.1145/2661136.2661149}, url = {http://doi.acm.org/10.1145/2661136.2661149}, 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 = {Andrew P. Black and Shriram Krishnamurthi and Bernd Bruegge and Joseph N. Ruskiewicz}, publisher = {ACM}, isbn = {978-1-4503-3210-1}, } @article{HemelKGV10, title = {Code generation by model transformation: a case study in transformation modularity}, author = {Zef Hemel and Lennart C. L. Kats and Danny M. Groenewegen and Eelco Visser}, year = {2010}, doi = {10.1007/s10270-009-0136-1}, tags = {model-to-model transformation, case study, meta-model, source-to-source, C++, code generation, model transformation, Meta-Environment, transformation}, researchr = {https://researchr.org/publication/HemelKGV10}, cites = {0}, citedby = {0}, journal = {Software and Systems Modeling}, volume = {9}, number = {3}, pages = {375-402}, } @inproceedings{KatsV10a, title = {The {Spoofax} language workbench}, author = {Lennart C. L. Kats and Eelco Visser}, year = {2010}, doi = {10.1145/1869542.1869592}, url = {http://doi.acm.org/10.1145/1869542.1869592}, tags = {programming languages, workbench, syntax definition, meta programming, transformation language, C++, code generation, language workbench, Spoofax, Meta-Environment, transformation, program transformation, domain-specific language}, researchr = {https://researchr.org/publication/KatsV10a}, cites = {0}, citedby = {0}, pages = {237-238}, booktitle = {Companion to the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, SPLASH/OOPSLA 2010, October 17-21, 2010, Reno/Tahoe, Nevada, USA}, editor = {William R. Cook and Siobhán Clarke and Martin C. Rinard}, publisher = {ACM}, isbn = {978-1-4503-0240-1}, } @inproceedings{Visser07, title = {{WebDSL}: {A} Case Study in Domain-Specific Language Engineering}, author = {Eelco Visser}, year = {2007}, doi = {10.1007/978-3-540-88643-3_7}, url = {http://dx.doi.org/10.1007/978-3-540-88643-3_7}, tags = {WebDSL, reusable components, DSL engineering, web application development, data-flow language, pattern language, case study, software components, SDF, meta-model, abstract syntax, modeling language, Stratego/XT, language engineering, software language engineering, language modeling, software component, web engineering, language design, reuse, model-driven development, data-flow, survey, software engineering, model-driven engineering, web applications, DSL, Meta-Environment, incremental, design, process modeling, systematic-approach, ASF+SDF, language, Stratego, domain-specific language}, researchr = {https://researchr.org/publication/Visser07}, cites = {0}, citedby = {9}, pages = {291-373}, booktitle = {Generative and Transformational Techniques in Software Engineering II, International Summer School, {GTTSE} 2007}, editor = {Ralf Lämmel and Joost Visser and João Saraiva}, volume = {5235}, series = {Lecture Notes in Computer Science}, address = {Braga, Portugal}, publisher = {Springer}, isbn = {978-3-540-88642-6}, } @article{BrandV96, title = {Generation of Formatters for Context-Free Languages}, author = {Mark G. J. van den Brand and Eelco Visser}, year = {1996}, doi = {10.1145/226155.226156}, url = {https://doi.org/10.1145/226155.226156}, tags = {programming languages, rule-based, translation, meta programming, SDF, interpreter, abstract syntax, language engineering, software language engineering, reuse, source-to-source, software engineering, rules, algebraic specification, source code formatting, code generation, pretty-printing, algebra, programming, context-aware, Meta-Environment, systematic-approach, ASF+SDF, open-source, grammar}, researchr = {https://researchr.org/publication/BrandV96}, cites = {46}, citedby = {12}, journal = {ACM Transactions on Software Engineering Methodology}, volume = {5}, number = {1}, pages = {1-41}, } @article{GroenewegenHV10, title = {Separation of Concerns and Linguistic Integration in {WebDSL}}, author = {Danny M. Groenewegen and Zef Hemel and Eelco Visser}, year = {2010}, doi = {10.1109/MS.2010.92}, url = {http://dx.doi.org/10.1109/MS.2010.92}, tags = {WebDSL, separation of concerns}, researchr = {https://researchr.org/publication/GroenewegenHV10}, cites = {0}, citedby = {0}, journal = {IEEE Software}, volume = {27}, number = {5}, pages = {31-37}, } @inproceedings{NeronTVW15, title = {A Theory of Name Resolution}, author = {Pierre Néron and Andrew P. Tolmach and Eelco Visser and Guido Wachsmuth}, year = {2015}, doi = {10.1007/978-3-662-46669-8_9}, url = {http://dx.doi.org/10.1007/978-3-662-46669-8_9}, 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 = {Jan Vitek}, volume = {9032}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-662-46668-1}, } @article{Klint93, title = {A Meta-Environment for Generating Programming Environments}, author = {Paul Klint}, year = {1993}, doi = {10.1145/151257.151260}, url = {http://doi.acm.org/10.1145/151257.151260}, tags = {programming languages, rule-based, translation, syntax definition, meta programming, SDF, meta-model, functional programming, design research, language design, model-driven development, programming, Meta-Environment, incremental, design, ASF+SDF, meta-objects}, researchr = {https://researchr.org/publication/Klint93}, cites = {33}, citedby = {40}, journal = {ACM Transactions on Software Engineering Methodology}, volume = {2}, number = {2}, pages = {176-201}, } @article{HemelGKV11, title = {Static consistency checking of web applications with {WebDSL}}, author = {Zef Hemel and Danny M. Groenewegen and Lennart C. L. Kats and Eelco Visser}, year = {2011}, doi = {10.1016/j.jsc.2010.08.006}, url = {https://doi.org/10.1016/j.jsc.2010.08.006}, tags = {model-to-model transformation, WebDSL, rule-based, application framework, model checking, XML, XML Schema, transformation language, points-to analysis, domain analysis, analysis, language design, static analysis, model-driven development, source-to-source, rules, C++, compiler, model transformation, web applications, consistency, abstraction, design, systematic-approach, open-source, transformation, Ruby on Rails, Stratego, Ruby, query language, domain-specific language}, researchr = {https://researchr.org/publication/HemelGKV11}, cites = {0}, citedby = {0}, journal = {Journal of Symbolic Computation}, volume = {46}, number = {2}, pages = {150-182}, } @inproceedings{KatsVV11a, title = {Testing domain-specific languages}, author = {Lennart C. L. Kats and Rob Vermaas and Eelco Visser}, year = {2011}, doi = {10.1145/2048147.2048160}, url = {http://doi.acm.org/10.1145/2048147.2048160}, researchr = {https://researchr.org/publication/KatsVV11a}, cites = {0}, citedby = {0}, pages = {25-26}, booktitle = {Companion to the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011}, editor = {Cristina Videira Lopes and Kathleen Fisher}, publisher = {ACM}, isbn = {978-1-4503-0942-4}, } @inproceedings{JongeV11, title = {An Algorithm for Layout Preservation in Refactoring Transformations}, author = {Maartje de Jonge and Eelco Visser}, year = {2011}, doi = {10.1007/978-3-642-28830-2_3}, url = {http://dx.doi.org/10.1007/978-3-642-28830-2_3}, researchr = {https://researchr.org/publication/JongeV11}, cites = {0}, citedby = {0}, pages = {40-59}, booktitle = {Software Language Engineering - 4th International Conference, SLE 2011, Braga, Portugal, July 3-4, 2011, Revised Selected Papers}, editor = {Anthony M. Sloane and Uwe Aßmann}, volume = {6940}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-642-28829-6}, } @article{JongeKVS12, title = {Natural and Flexible Error Recovery for Generated Modular Language Environments}, author = {Maartje de Jonge and Lennart C. L. Kats and Eelco Visser and Emma Söderberg}, year = {2012}, doi = {10.1145/2400676.2400678}, url = {http://doi.acm.org/10.1145/2400676.2400678}, researchr = {https://researchr.org/publication/JongeKVS12}, cites = {0}, citedby = {0}, journal = {ACM Transactions on Programming Languages and Systems}, volume = {34}, number = {4}, pages = {15}, } @inproceedings{BravenboerTV06, title = {Declarative, formal, and extensible syntax definition for {AspectJ}}, author = {Martin Bravenboer and Éric Tanter and Eelco Visser}, year = {2006}, doi = {10.1145/1167473.1167491}, url = {http://doi.acm.org/10.1145/1167473.1167491}, tags = {programming languages, AspectJ, object-oriented programming, Java, syntax definition, SDF, lexical syntax, design complexity, composition, design research, language design, aspect oriented programming, compiler, programming, subject-oriented programming, context-aware, language composition, parsing, design, scannerless parsing, extensible language, ASF+SDF, feature-oriented programming, SGLR, grammar}, researchr = {https://researchr.org/publication/BravenboerTV06}, cites = {0}, citedby = {1}, pages = {209-228}, booktitle = {Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006}, editor = {Peri L. Tarr and William R. Cook}, publisher = {ACM}, isbn = {1-59593-348-4}, } @article{HeeringHKR89, title = {The syntax definition formalism {SDF} - reference manual}, author = {Jan Heering and P. R. H. Hendriks and Paul Klint and Jan Rekers}, year = {1989}, doi = {10.1145/71605.71607}, url = {http://doi.acm.org/10.1145/71605.71607}, tags = {programming languages, syntax definition, SDF, lexical syntax, abstract syntax, disambiguation, language design, C++, programming, context-aware, incremental, design, ASF+SDF}, researchr = {https://researchr.org/publication/HeeringHKR89}, cites = {0}, citedby = {4}, journal = {SIGPLAN Notices}, volume = {24}, number = {11}, pages = {43-75}, } @inproceedings{KallebergV07, title = {Spoofax: An Interactive Development Environment for Program Transformation with Stratego/XT}, author = {Karl Trygve Kalleberg and Eelco Visser}, year = {2007}, month = {March}, url = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-018.pdf}, tags = {model-to-model transformation, meta programming, meta-model, model-driven development, model transformation, Spoofax, Meta-Environment, meta-objects, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/KallebergV07}, cites = {0}, citedby = {0}, booktitle = {Proceedings of the Seventh Workshop on Language Descriptions, Tools and Applications (LDTA 2007)}, series = {Electronic Notes in Theoretical Computer Science}, address = {Braga, Portugal}, publisher = {Elsevier}, } @inproceedings{ErdwegRKO12, title = {Layout-Sensitive Generalized Parsing}, author = {Sebastian Erdweg and Tillmann Rendel and Christian Kästner and Klaus Ostermann}, year = {2012}, doi = {10.1007/978-3-642-36089-3_14}, url = {http://dx.doi.org/10.1007/978-3-642-36089-3_14}, researchr = {https://researchr.org/publication/ErdwegRKO12}, cites = {0}, citedby = {0}, pages = {244-263}, booktitle = {Software Language Engineering, 5th International Conference, SLE 2012, Dresden, Germany, September 26-28, 2012, Revised Selected Papers}, editor = {Krzysztof Czarnecki and Görel Hedin}, volume = {7745}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-642-36089-3}, } @techreport{BrandV94, title = {From Box to {\TeX}: An algebraic approach to the generation of documentation tools}, author = {Eelco Visser and Mark G. J. van den Brand}, year = {1994}, month = {July}, url = {ftp://ftp.wins.uva.nl/pub/programming-research/reports/1994/P9420.ps.Z}, tags = {programming languages, model-to-model transformation, semantics, translation, meta programming, case study, SDF, meta-model, transformation language, process algebra, algebraic specification, code generation, model transformation, algebra, programming, Meta-Environment, systematic-approach, ASF+SDF, meta-objects, transformation, program transformation}, researchr = {https://researchr.org/publication/BrandV94}, cites = {0}, citedby = {0}, institution = {Programming Research Group, University of Amsterdam}, number = {P9420}, } @inproceedings{LuttikV97, title = {Specification of Rewriting Strategies}, author = {Bas Luttik and Eelco Visser}, year = {1997}, month = {November}, tags = {control systems, rule-based, case study, SDF, graph transformation, traversal, transformation language, term rewriting, composition, traversal combinators, graph-rewriting, rules, transformation system, rewriting, rewriting strategies, ASF+SDF, transformation, Stratego}, researchr = {https://researchr.org/publication/LuttikV97}, cites = {0}, citedby = {0}, booktitle = {2nd International Workshop on the Theory and Practice of Algebraic Specifications (ASF+SDF 1997)}, editor = {M. P. A. Sellink}, series = {Electronic Workshops in Computing}, address = {Berlin}, publisher = {Springer-Verlag}, } @inproceedings{ErdwegSV13, title = {The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge}, author = {Sebastian Erdweg and Tijs van der Storm and Markus Völter and Meinte Boersma and Remi Bosman and William R. Cook and Albert Gerritsen and Angelo Hulshout and Steven Kelly and Alex Loh and Gabriël Konat and Pedro J. Molina and Martin Palatnik and Risto Pohjonen and Eugen Schindler and Klemens Schindler and Riccardo Solmi and Vlad A. Vergu and Eelco Visser and Kevin van der Vlist and Guido Wachsmuth and Jimi van der Woning}, year = {2013}, doi = {10.1007/978-3-319-02654-1_11}, url = {http://dx.doi.org/10.1007/978-3-319-02654-1_11}, 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 = {Martin Erwig and Richard F. Paige and Eric {Van Wyk}}, volume = {8225}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-319-02653-4}, } @article{DolstraV02, title = {Building Interpreters with Rewriting Strategies}, author = {Eelco Dolstra and Eelco Visser}, year = {2002}, doi = {10.1016/S1571-0661(04)80427-4}, url = {https://doi.org/10.1016/S1571-0661(04)80427-4}, tags = {laziness, programming languages, optimization, semantics, rule-based, pattern language, dynamic rewrite rules, interpreter, Stratego/XT, dynamic rules, parallel programming, reuse, graph-rewriting, rules, pattern matching, programming, program optimization, rewriting, systematic-approach, rewriting strategies, interpreters, Stratego}, researchr = {https://researchr.org/publication/DolstraV02}, cites = {0}, citedby = {0}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {65}, number = {3}, pages = {57-76}, } @article{WachsmuthKV14, title = {Language Design with the Spoofax Language Workbench}, author = {Guido Wachsmuth and Gabriël Konat and Eelco Visser}, year = {2014}, doi = {10.1109/MS.2014.100}, url = {http://dx.doi.org/10.1109/MS.2014.100}, researchr = {https://researchr.org/publication/WachsmuthKV14}, cites = {0}, citedby = {0}, journal = {IEEE Software}, volume = {31}, number = {5}, pages = {35-43}, } @inproceedings{KlintV94, title = {Using Filters for the Disambiguation of Context-free Grammars}, author = {Paul Klint and Eelco Visser}, year = {1994}, month = {October}, tags = {case study, disambiguation, context-aware, parsing, grammar, domain-specific language}, researchr = {https://researchr.org/publication/KlintV94}, cites = {0}, citedby = {0}, booktitle = {Proceedings of the ASMICS Workshop on Parsing Theory}, address = {Milano, Italy}, publisher = {Tech. Rep. 126--1994, Dipartimento di Scienze dell'Informazione, Universit\`a di Milano}, } @article{BorovanskyKKMV96, title = {ELAN: A logical framework based on computational systems}, author = {Peter Borovanský and Claude Kirchner and Hélène Kirchner and Pierre-Etienne Moreau and Marian Vittek}, year = {1996}, url = {http://www.elsevier.com/gej-ng/31/29/23/29/23/show/Products/notes/index.htt#004}, tags = {rule-based}, researchr = {https://researchr.org/publication/BorovanskyKKMV96}, cites = {0}, citedby = {0}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {4}, pages = {35-50}, } @phdthesis{Visser97, title = {Syntax Definition for Language Prototyping}, author = {Eelco Visser}, year = {1997}, month = {September}, tags = {syntax definition, SDF, syntax definition formalism, disambiguation, testing, language design, graph-rewriting, algebraic specification, algebra, context-aware, rewriting, parsing, design, scannerless parsing, ASF+SDF, SGLR}, researchr = {https://researchr.org/publication/Visser97}, cites = {0}, citedby = {6}, school = {University of Amsterdam}, advisor = {Paul Klint}, } @phdthesis{Rekers1992, title = {Parser Generation for Interactive Environments}, author = {Jan Rekers}, year = {1992}, month = {January}, url = {https://homepages.cwi.nl/~paulk/dissertations/Rekers.pdf}, tags = {GLR parsing, GLR, Meta-Environment, parsing}, researchr = {https://researchr.org/publication/Rekers1992}, cites = {0}, citedby = {3}, school = {University of Amsterdam}, address = {Amsterdam, The Netherlands}, advisor = {Paul Klint}, } @article{BravenboerDOV06, title = {Program Transformation with Scoped Dynamic Rewrite Rules}, author = {Martin Bravenboer and Arthur van Dam and Karina Olmos and Eelco Visser}, year = {2006}, url = {https://content.iospress.com/articles/fundamenta-informaticae/fi69-1-2-06}, tags = {programming languages, semantics, rule-based, formal semantics, graph transformation, dynamic rewrite rules, Stratego/XT, transformation language, term rewriting, language design, graph-rewriting, rules, operational semantics, context-aware, access control, rewriting, design, role-based access control, rewriting strategies, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/BravenboerDOV06}, cites = {0}, citedby = {4}, journal = {Fundamenta Informaticae}, volume = {69}, number = {1-2}, pages = {123-178}, } @inproceedings{BravenboerV08, title = {Parse Table Composition}, author = {Martin Bravenboer and Eelco Visser}, year = {2009}, doi = {10.1007/978-3-642-00434-6_6}, url = {http://dx.doi.org/10.1007/978-3-642-00434-6_6}, tags = {parsing algorithm, programming languages, deployment, syntax definition, SDF, composition, source-to-source, parse table composition, compiler, programming, language composition, parsing, extensible language, ASF+SDF, open-source, grammar, domain-specific language}, researchr = {https://researchr.org/publication/BravenboerV08}, cites = {0}, citedby = {0}, pages = {74-94}, booktitle = {Software Language Engineering, First International Conference, SLE 2008, Toulouse, France, September 29-30, 2008. Revised Selected Papers}, editor = {Dragan Gasevic and Ralf Lämmel and Eric {Van Wyk}}, volume = {5452}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-642-00433-9}, } @inproceedings{Visser05-SCAM, title = {Transformations for Abstractions}, author = {Eelco Visser}, year = {2005}, month = {October}, doi = {10.1109/SCAM.2005.26}, url = {http://dx.doi.org/10.1109/SCAM.2005.26}, tags = {programming languages, meta programming, case study, Stratego/XT, transformation language, extensible languages, programming, abstraction, Meta-Environment, extensible language, interpreters, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/Visser05-SCAM}, cites = {0}, citedby = {1}, booktitle = {5th IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2005), 30 September - 1 October 2005, Budapest, Hungary}, publisher = {IEEE Computer Society}, isbn = {0-7695-2292-0}, } @manual{StrategoXTReferenceManual, title = {Stratego/XT Reference Manual}, author = {Martin Bravenboer and Karl Trygve Kalleberg and Rob Vermaas and Eelco Visser}, year = {2008}, url = {http://releases.strategoxt.org/strategoxt-manual/strategoxt-manual-0.17pre18721-8c3vml4h/manual/}, researchr = {https://researchr.org/publication/StrategoXTReferenceManual}, cites = {0}, citedby = {0}, } @article{BravenboerKVV08, title = {{Stratego/XT 0.17}. {A} language and toolset for program transformation}, author = {Martin Bravenboer and Karl Trygve Kalleberg and Rob Vermaas and Eelco Visser}, year = {2008}, doi = {10.1016/j.scico.2007.11.003}, url = {http://dx.doi.org/10.1016/j.scico.2007.11.003}, tags = {control systems, programming languages, object-oriented programming, concrete object syntax, reusable components, rule-based, completeness, meta programming, pattern language, graph transformation, Stratego/XT, transformation language, reuse, graph-rewriting, rules, transformation system, DSL, programming, subject-oriented programming, context-aware, abstraction, Meta-Environment, rewriting, rewriting strategies, feature-oriented programming, concrete syntax, meta-objects, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/BravenboerKVV08}, cites = {0}, citedby = {7}, journal = {Science of Computer Programming}, volume = {72}, number = {1-2}, pages = {52-70}, } @inproceedings{Visser01, title = {Stratego: A Language for Program Transformation Based on Rewriting Strategies}, author = {Eelco Visser}, year = {2001}, doi = {10.1007/3-540-45127-7_27}, url = {https://doi.org/10.1007/3-540-45127-7_27}, tags = {control systems, programming languages, optimization, object-oriented programming, rule-based, transformation engineering, pattern language, generic programming, graph transformation, Stratego/XT, traversal, refactoring, language engineering, transformation language, software language engineering, term rewriting, reuse, termination, graph-rewriting, software engineering, rules, programming paradigms, migration, transformation system, rule-based refactoring, compiler, subject-oriented programming, program optimization, higher-order transformations, rewriting, rewriting strategies, feature-oriented programming, transformation, Stratego, program transformation, domain-specific language}, researchr = {https://researchr.org/publication/Visser01}, cites = {0}, citedby = {1}, pages = {357-362}, booktitle = {Rewriting Techniques and Applications, 12th International Conference, RTA 2001, Utrecht, The Netherlands, May 22-24, 2001, Proceedings}, editor = {Aart Middeldorp}, volume = {2051}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {3-540-42117-3}, } @article{VisserB98, title = {A core language for rewriting}, author = {Eelco Visser and Zine-El-Abidine Benaissa}, year = {1998}, doi = {10.1016/S1571-0661(05)80027-1}, url = {http://dx.doi.org/10.1016/S1571-0661(05)80027-1}, tags = {rule-based, SDF, graph transformation, traversal, transformation language, term rewriting, graph-rewriting, rules, transformation system, abstraction, rewriting, rewriting strategies, ASF+SDF, transformation}, researchr = {https://researchr.org/publication/VisserB98}, cites = {0}, citedby = {1}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {15}, pages = {422-441}, } @book{Krishnamurthi2014, title = {Programming and Programming Languages}, author = {Shriram Krishnamurthi}, year = {2014}, researchr = {https://researchr.org/publication/Krishnamurthi2014}, cites = {0}, citedby = {0}, organization = {Brown University}, } @inproceedings{KatsVV11, title = {Integrated language definition testing: enabling test-driven language development}, author = {Lennart C. L. Kats and Rob Vermaas and Eelco Visser}, year = {2011}, doi = {10.1145/2048066.2048080}, url = {http://doi.acm.org/10.1145/2048066.2048080}, researchr = {https://researchr.org/publication/KatsVV11}, cites = {0}, citedby = {0}, pages = {139-154}, booktitle = {Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011}, editor = {Cristina Videira Lopes and Kathleen Fisher}, publisher = {ACM}, isbn = {978-1-4503-0940-0}, } @inproceedings{KatsBV08, title = {Mixing source and bytecode: a case for compilation by normalization}, author = {Lennart C. L. Kats and Martin Bravenboer and Eelco Visser}, year = {2008}, doi = {10.1145/1449764.1449772}, url = {http://doi.acm.org/10.1145/1449764.1449772}, tags = {compilation by normalization, rule-based, Java, synchronization, translation, meta-model, modeling language, Stratego/XT, language modeling, composition, constraints, source-to-source, C++, Dryad, security, compiler, Meta-Environment, extensible language, systematic-approach, open-source, Stratego, JavaFront, domain-specific language}, researchr = {https://researchr.org/publication/KatsBV08}, cites = {44}, citedby = {3}, pages = {91-108}, booktitle = {Proceedings of the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19-23, 2008, Nashville, TN, USA}, editor = {Gail E. Harris}, publisher = {ACM}, isbn = {978-1-60558-215-3}, } @inproceedings{VisserBT98, title = {Building Program Optimizers with Rewriting Strategies}, author = {Eelco Visser and Zine-El-Abidine Benaissa and Andrew P. Tolmach}, year = {1998}, doi = {10.1145/289423.289425}, url = {http://doi.acm.org/10.1145/289423.289425}, tags = {programming languages, optimization, semantics, rule-based, meta programming, graph transformation, variable binding, Stratego/XT, transformation language, term rewriting, composition, graph-rewriting, rules, C++, program optimization, Meta-Environment, higher-order transformations, rewriting, rewriting strategies, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/VisserBT98}, cites = {0}, citedby = {5}, pages = {13-26}, booktitle = {Proceedings of the third ACM SIGPLAN international conference on Functional programming}, editor = {Matthias Felleisen and Paul Hudak and Christian Queinnec}, address = {Baltimore, Maryland, United States}, publisher = {ACM}, } @inproceedings{VollebregtKV12, title = {Declarative specification of template-based textual editors}, author = {Tobi Vollebregt and Lennart C. L. Kats and Eelco Visser}, year = {2012}, doi = {10.1145/2427048.2427056}, url = {http://doi.acm.org/10.1145/2427048.2427056}, researchr = {https://researchr.org/publication/VollebregtKV12}, cites = {0}, citedby = {0}, pages = {1-7}, booktitle = {International Workshop on Language Descriptions, Tools, and Applications, LDTA '12, Tallinn, Estonia, March 31 - April 1, 2012}, editor = {Anthony Sloane and Suzana Andova}, publisher = {ACM}, isbn = {978-1-4503-1536-4}, } @inproceedings{Visser02, title = {Meta-programming with Concrete Object Syntax}, author = {Eelco Visser}, year = {2002}, doi = {10.1007/3-540-45821-2_19}, url = {https://doi.org/10.1007/3-540-45821-2_19}, tags = {programming languages, model-to-model transformation, object-oriented programming, concrete object syntax, syntax definition, meta programming, case study, SDF, meta-model, abstract syntax, Stratego/XT, transformation language, source-to-source, model transformation, programming, subject-oriented programming, Meta-Environment, parsing, scannerless parsing, systematic-approach, ASF+SDF, feature-oriented programming, concrete syntax, meta-objects, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/Visser02}, cites = {23}, citedby = {6}, pages = {299-315}, booktitle = {Generative Programming and Component Engineering, ACM SIGPLAN/SIGSOFT Conference, GPCE 2002, Pittsburgh, PA, USA, October 6-8, 2002, Proceedings}, editor = {Don S. Batory and Charles Consel and Walid Taha}, volume = {2487}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {3-540-44284-7}, } @inproceedings{KatsVW10, title = {Pure and declarative syntax definition: paradise lost and regained}, author = {Lennart C. L. Kats and Eelco Visser and Guido Wachsmuth}, year = {2010}, doi = {10.1145/1869459.1869535}, url = {http://doi.acm.org/10.1145/1869459.1869535}, 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}, editor = {William R. Cook and Siobhán Clarke and Martin C. Rinard}, address = {Reno/Tahoe, Nevada}, publisher = {ACM}, isbn = {978-1-4503-0203-6}, } @inproceedings{ErdwegRKO11, title = {SugarJ: library-based syntactic language extensibility}, author = {Sebastian Erdweg and Tillmann Rendel and Christian Kästner and Klaus Ostermann}, year = {2011}, doi = {10.1145/2048066.2048099}, url = {http://doi.acm.org/10.1145/2048066.2048099}, researchr = {https://researchr.org/publication/ErdwegRKO11}, cites = {0}, citedby = {0}, pages = {391-406}, booktitle = {Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011}, editor = {Cristina Videira Lopes and Kathleen Fisher}, publisher = {ACM}, isbn = {978-1-4503-0940-0}, } @inproceedings{Visser03, title = {Program Transformation with {Stratego/XT}: Rules, Strategies, Tools, and Systems in {Stratego/XT 0.9}}, author = {Eelco Visser}, year = {2003}, doi = {10.1007/978-3-540-25935-0_13}, url = {https://doi.org/10.1007/978-3-540-25935-0_13}, tags = {control systems, programming languages, rule-based, graph transformation, Stratego/XT, transformation language, composition, graph-rewriting, rules, programming paradigms, transformation system, abstraction, rewriting, parsing, rewriting strategies, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/Visser03}, cites = {0}, citedby = {4}, pages = {216-238}, booktitle = {Domain-Specific Program Generation, International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers}, editor = {Christian Lengauer and Don S. Batory and Charles Consel and Martin Odersky}, volume = {3016}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {3-540-22119-0}, } @article{JongeVV01, title = {{XT}: a bundle of program transformation tools}, author = {Merijn de Jonge and Eelco Visser and Joost Visser}, year = {2001}, doi = {10.1016/S1571-0661(04)80921-6}, url = {http://dx.doi.org/10.1016/S1571-0661(04)80921-6}, tags = {model-to-model transformation, rule-based, Stratego/XT, model-driven development, source-to-source, transformation system, model transformation, programming, open-source, transformation, Stratego, program transformation}, researchr = {https://researchr.org/publication/JongeVV01}, cites = {0}, citedby = {0}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {44}, number = {2}, pages = {79-86}, } @inproceedings{BravenboerV04, title = {Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions}, author = {Martin Bravenboer and Eelco Visser}, year = {2004}, doi = {10.1145/1028976.1029007}, url = {http://doi.acm.org/10.1145/1028976.1029007}, tags = {programming languages, object-oriented programming, concrete object syntax, syntax definition, meta programming, assimilation, SDF, XML, XML Schema, Stratego/XT, transformation language, composition, MetaBorg, language design, reuse, code generation, subject-oriented programming, abstraction, Meta-Environment, extensible language, ASF+SDF, feature-oriented programming, concrete syntax, meta-objects, transformation, Stratego, program transformation, domain-specific language}, researchr = {https://researchr.org/publication/BravenboerV04}, cites = {51}, citedby = {8}, pages = {365-383}, booktitle = {Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004}, editor = {John M. Vlissides and Douglas C. Schmidt}, address = {Vancouver, BC, Canada}, publisher = {ACM}, isbn = {1-58113-831-8}, } @inproceedings{KonatVKWV2012, title = {The {Spoofax} Name Binding Language}, author = {Gabriël Konat and Vlad A. Vergu and Lennart C. L. Kats and Guido Wachsmuth and Eelco Visser}, year = {2012}, doi = {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}, } @inproceedings{KatsV10, title = {The {Spoofax} language workbench: rules for declarative specification of languages and {IDEs}}, author = {Lennart C. L. Kats and Eelco Visser}, year = {2010}, doi = {10.1145/1869459.1869497}, url = {https://doi.org/10.1145/1869459.1869497}, tags = {programming languages, model-to-model transformation, workbench, semantics, rule-based, Eclipse, meta programming, model editor, graph transformation, meta-model, transformation language, architecture, reuse, model-driven development, graph-rewriting, rules, C++, code completion, code generation, model transformation, programming, language workbench, Spoofax, Meta-Environment, rewriting, parsing, meta-objects, transformation, program transformation, domain-specific language}, researchr = {https://researchr.org/publication/KatsV10}, cites = {0}, citedby = {2}, pages = {444-463}, booktitle = {Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010}, editor = {William R. Cook and Siobhán Clarke and Martin C. Rinard}, address = {Reno/Tahoe, Nevada}, publisher = {ACM}, isbn = {978-1-4503-0203-6}, } @inproceedings{WachsmuthKVGV13, title = {A Language Independent Task Engine for Incremental Name and Type Analysis}, author = {Guido Wachsmuth and Gabriël Konat and Vlad A. Vergu and Danny M. Groenewegen and Eelco Visser}, year = {2013}, doi = {10.1007/978-3-319-02654-1_15}, url = {http://dx.doi.org/10.1007/978-3-319-02654-1_15}, 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 = {Martin Erwig and Richard F. Paige and Eric {Van Wyk}}, volume = {8225}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-319-02653-4}, } @inproceedings{BravenboerV07, title = {Designing Syntax Embeddings and Assimilations for Language Libraries}, author = {Martin Bravenboer and Eelco Visser}, year = {2007}, doi = {10.1007/978-3-540-69073-3_5}, url = {http://dx.doi.org/10.1007/978-3-540-69073-3_5}, tags = {syntax embedding, syntax definition, assimilation, transformation language, architecture, language design, DSL, language libraries, design, transformation, domain-specific language}, researchr = {https://researchr.org/publication/BravenboerV07}, cites = {24}, citedby = {1}, pages = {34-46}, booktitle = {Models in Software Engineering, Workshops and Symposia at MoDELS 2007, Nashville, TN, USA, September 30 - October 5, 2007, Reports and Revised Selected Papers}, editor = {Holger Giese}, volume = {5002}, series = {Lecture Notes in Computer Science}, publisher = {Springer}, isbn = {978-3-540-69069-6}, } @article{BravenboerDV10, title = {Preventing injection attacks with syntax embeddings}, author = {Martin Bravenboer and Eelco Dolstra and Eelco Visser}, year = {2010}, doi = {10.1016/j.scico.2009.05.004}, url = {http://dx.doi.org/10.1016/j.scico.2009.05.004}, tags = {injection attack}, researchr = {https://researchr.org/publication/BravenboerDV10}, cites = {0}, citedby = {0}, journal = {Science of Computer Programming}, volume = {75}, number = {7}, pages = {473-495}, } @inproceedings{HemelV11, title = {Declaratively programming the mobile web with {Mobl}}, author = {Zef Hemel and Eelco Visser}, year = {2011}, doi = {10.1145/2048066.2048121}, url = {http://doi.acm.org/10.1145/2048066.2048121}, researchr = {https://researchr.org/publication/HemelV11}, cites = {0}, citedby = {0}, pages = {695-712}, booktitle = {Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011}, editor = {Cristina Videira Lopes and Kathleen Fisher}, publisher = {ACM}, isbn = {978-1-4503-0940-0}, } @article{BorovanskyKKMR98, title = {An overview of ELAN}, author = {Peter Borovanský and Claude Kirchner and Hélène Kirchner and Pierre-Etienne Moreau and Christophe Ringeissen}, year = {1998}, url = {http://www.elsevier.com/gej-ng/31/29/23/39/23/show/Products/notes/index.htt#022}, researchr = {https://researchr.org/publication/BorovanskyKKMR98}, cites = {0}, citedby = {0}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {15}, pages = {55-70}, } @techreport{Visser97-SGLR, title = {Scannerless Generalized-{LR} Parsing}, author = {Eelco Visser}, year = {1997}, month = {July}, tags = {parsing algorithm, GLR parsing, rule-based, SDF, lexical syntax, disambiguation, GLR, analysis, rules, context-aware, parsing, scannerless parsing, systematic-approach, ASF+SDF, SGLR, grammar}, researchr = {https://researchr.org/publication/Visser97-SGLR}, cites = {0}, citedby = {6}, institution = {Programming Research Group, University of Amsterdam}, number = {P9707}, } @techreport{Visser97-SDF, title = {A Family of Syntax Definition Formalisms}, author = {Eelco Visser}, year = {1997}, month = {August}, tags = {syntax definition, SDF, lexical syntax, scannerless, disambiguation, context-aware, parsing, design, scannerless parsing, ASF+SDF, grammar}, researchr = {https://researchr.org/publication/Visser97-SDF}, cites = {0}, citedby = {2}, institution = {Programming Research Group, University of Amsterdam}, number = {P9706}, } @article{Visser15, title = {Understanding software through linguistic abstraction}, author = {Eelco Visser}, year = {2015}, doi = {10.1016/j.scico.2013.12.001}, url = {http://dx.doi.org/10.1016/j.scico.2013.12.001}, researchr = {https://researchr.org/publication/Visser15}, cites = {0}, citedby = {0}, journal = {Science of Computer Programming}, volume = {97}, pages = {11-16}, }