@inproceedings{AA, author = {Mina Askari and Raihan Al-Ekram}, title = {Bringing Smalltalk Blocks to Java through Transformation Techniques}, booktitle = {}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, urlpdf = {http://swag.uwaterloo.ca/~rekram/publications/tpse2005--bringing-smalltalk-blocks-to-java-through-transformation.pdf}, project = {Stratego and XT}, urlbib = {AA.bib}, } @inproceedings{Avg07, author = {Pavel Avgustinov and Elnar Hajiyev and Neil Ongkingco and Oege de Moor and Damien Sereni and Julian Tibble and Mathieu Verbaere}, title = {Semantics of static pointcuts in {AspectJ}}, booktitle = {POPL'07}, optcrossref = {}, optkey = {}, optpages = {}, year = {2007}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, url = {http://progtools.comlab.ox.ac.uk/members/oege/publications/popl07abc}, project = {Stratego and XT}, urlbib = {Avg07.bib}, } @mastersthesis{Bag03.thesis, author = {Bagge, Otto Skrove}, title = {{CodeBoost}: {A} Framework for Transforming {C++} Programs}, year = {2003}, month = {March}, school = {University of Bergen}, address = {P.O.Box 7800, N-5020 Bergen, Norway}, project = {Stratego and XT and CodeBoost}, advisor = {Eelco Visser and Magne Haveraaen}, urlbib = {Bag03.thesis.bib}, } @techreport{BBKMV05, author = {Anya Helene Bagge and Martin Bravenboer and Karl Trygve Kalleberg and Koen Muilwijk and Eelco Visser}, title = {Adaptive Code Reuse by Aspects, Cloning and Renaming}, institution = {Department of Information and Computing Sciences, Universiteit Utrecht}, year = 2005, number = {UU-CS-2005-031}, address = {Utrecht, The Netherlands}, month = {August}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-031.pdf}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-031.html}, project = {Stratego and XT and TraCE and TFA}, category = {technical report}, pubcat = {technical report}, class = {Wet non}, urlbib = {BBKMV05.bib}, } @inproceedings{BBV07, author = {Eric Bouwers and Martin Bravenboer and Eelco Visser}, title = {Grammar Engineering Support for Precedence Rule Recovery and Compatibility Checking}, booktitle = {Seventh Workshop on Language Descriptions, Tools, and Applications (LDTA 2007)}, pages = {85--101}, year = {2008}, editor = {A. Sloane and A. Johnstone}, volume = {203}, number = {2}, series = {Electronic Notes in Theoretical Computer Science}, address = {Braga, Portugal}, month = {March}, publisher = {Elsevier}, issn = {1571-0661}, urldoi = {http://dx.doi.org/10.1016/j.entcs.2008.03.046}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-004.pdf}, project = {Stratego and XT and TraCE and SDF}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {BBV07.bib}, } @inproceedings{BDD, author = {Alexandre Borghi and Valentin David and Akim Demaille}, title = {C-Transformers: A Framework to Write C Program Transformations}, booktitle = {}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {BDD.bib}, } @inproceedings{BDHK06, author = {Anya Helene Bagge and Valentin David and Magne Haveraaen and Karl Trygve Kalleberg}, title = {Stayin' alert: moulding failure and exceptions to your needs}, booktitle = {GPCE'06}, optcrossref = {}, optkey = {}, optpages = {}, year = {2006}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {BDHK06.bib}, } @article{BDOV06, author = {Martin Bravenboer and Arthur van Dam and Karina Olmos and Eelco Visser}, title = {Program Transformation with Scoped Dynamic Rewrite Rules}, journal = {Fundamenta Informaticae}, year = 2006, volume = 69, number = {1--2}, pages = {123--178}, pubcat = {journal}, project = {Stratego and TraCE and TFA}, category = {key}, urlarticle = {http://iospress.metapress.com/openurl.asp?genre=article&issn=0169-2968&volume=69&issue=1&spage=123}, issn = {0169-2968}, urljournal = {http://fi.mimuw.edu.pl/}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-005.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-005.pdf}, class = {Wet}, urlbib = {BDOV06.bib}, } @inproceedings{BDV07, author = {Martin Bravenboer and Eelco Dolstra and Eelco Visser}, title = {Preventing Injection Attacks with Syntax Embeddings. {A} Host and Guest Language Independent Approach}, booktitle = {Generative Programming and Component Engineering (GPCE 2007)}, pages = {3-12}, year = 2007, editor = {J. Lawall}, address = {New York, NY, USA}, month = {October}, publisher = {ACM}, urldoi = {http://doi.acm.org/10.1145/1289971.1289975}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-003.pdf}, project = {Stratego and XT and TraCE and SDF and TFA}, urlbib = {BDV07.bib}, } @article{BDV09, author = {Martin Bravenboer and Eelco Dolstra and Eelco Visser}, title = {Preventing Injection Attacks with Syntax Embeddings. {A} Host and Guest Language Independent Approach}, journal = {Science of Computer Programming}, issn = {0167-6423}, year = {2009}, optkey = {}, optvolume = {}, optnumber = {}, optpages = {}, optmonth = {}, note = {(in press)}, optannote = {}, urldoi = {http://dx.doi.org/10.1016/j.scico.2009.05.004}, project = {Stratego and XT and TraCE and SDF and TFA}, pubcat = {journal}, urlbib = {BDV09.bib}, } @mastersthesis{Beu05, author = {Remko van Beusekom}, title = {A Vectorizer for Octave}, school = {Utrecht University}, year = 2005, address = {Utrecht, The Netherlands}, month = {February}, note = {INF/SRC-04-53}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Beu05.pdf}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Beu05.bib}, } @inproceedings{BEYW05, author = {Marcio Buss and Stephen A. Edwards and Bin Yao and Daniel Waddington}, title = {Pointer Analysis for Source-to-Source Transformations}, booktitle = {Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05)}, optcrossref = {}, optkey = {}, optpages = {}, year = {2005}, editor = {Jens Krinke and Giulio Antoniol}, optvolume = {}, optnumber = {}, optseries = {}, address = {Budapest, Hungary}, optmonth = {}, optorganization = {}, publisher = {IEEE Computer Society Press}, optnote = {}, optannote = {}, project = {Proteus}, urlscam = {http://www.dcs.kcl.ac.uk/staff/mark/scam2005/}, urlproteus = {http://www.bell-labs.com/user/dwaddington/proteus/index.htm}, project = {Stratego and XT}, urlbib = {BEYW05.bib}, } @inproceedings{BGV05, author = {Martin Bravenboer and {Ren\'e} de Groot and Eelco Visser}, title = {{MetaBorg} in Action: {E}xamples of Domain-specific Language Embedding and Assimilation using {Stratego/XT}}, booktitle = {Proceedings of the Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2005)}, volume = {4143}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, editor = {R. L\"ammel and J. Saraiva}, publisher = {Springer Verlag}, pages = {297-311}, year = 2006, address = {Braga, Portugal}, project = {Stratego and XT and SDF and TraCE and TFA}, urlspringer = {http://dx.doi.org/10.1007/11877028_10}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2006/2006-009.pdf}, urlgttse = {http://www.di.uminho.pt/GTTSE2005}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2006-009.html}, pubcat = {proceedings}, category = {proceedings}, class = {Wet}, urlbib = {BGV05.bib}, } @inproceedings{BHV00, author = {Otto Skrove Bagge and Magne Haveraaen and Eelco Visser}, title = {A {C++} Transformation Framework (Extended Abstract)}, booktitle = {Proceedings of the Nordic Workshop on Programming Theory (NWPT 2000)}, year = 2000, address = {Bergen, Norway}, month = {October}, pubcat = {workshop and position paper}, project = {Stratego and CodeBoost}, category = {}, urlbib = {BHV00.bib}, } @manual{bibtextools-latest, title = {The {Stratego/XT} {BibTeX} Tools. {T}ool documentation}, optkey = {}, author = {Eelco Visser}, organization = {Department of Information and Computing Sciences, Universiteit Utrecht}, address = {Utrecht, The Netherlands}, edition = {0.3pre}, month = {August}, year = {2006}, note = {(Draft)}, optannote = {}, urlwiki = {http://www.stratego-language.org/Stratego/BibtexTools}, urlrelease = {http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/bibtex-tools-unstable-latest}, urlpdf = {http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/bibtex-tools-unstable-latest/bibtex-tools.pdf}, project = {Stratego and XT}, category = {documentation and draft}, pubcat = {documentation and draft}, urlbib = {bibtextools-latest.bib}, } @inproceedings{BK06, author = {A. H. Bagge and K. T. Kalleberg}, title = {DSAL = library+notation: Program Transformation for Domain-Specific Aspect Languages}, booktitle = {DSAL'06}, optcrossref = {}, optkey = {}, optpages = {}, year = {2006}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {BK06.bib}, } @inproceedings{BKHV03, author = {Bagge, Otto Skrove and Karl Trygve Kalleberg and Haveraaen, Magne and Eelco Visser}, title = {Design of the {CodeBoost} Transformation System for Domain-Specific Optimisation of {C++} Programs}, booktitle = {Third IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2003)}, pages = {65--74}, year = 2003, editor = {D. Binkley and P. Tonella}, address = {Amsterdam, The Netherlands}, month = {September}, publisher = {IEEE Computer Society Press}, url = {http://www.stratego-language.org/Stratego/DesignOfTheCodeBoostTransformationSystem}, pubcat = {workshop}, project = {Stratego and XT and CodeBoost}, category = {refereed}, acceptance = {21/43 = 48\%}, urlbib = {BKHV03.bib}, } @inproceedings{BKVV06, author = {Martin Bravenboer and Karl Trygve Kalleberg and Rob Vermaas and Eelco Visser}, title = {{Stratego/XT 0.16}. {C}omponents for Transformation Systems}, booktitle = {ACM SIGPLAN 2006 Workshop on Partial Evaluation and Program Manipulation (PEPM 2006)}, pages = {95--99}, year = {2006}, address = {Charleston, South Carolina}, month = {January}, publisher = {ACM SIGPLAN}, category = {conference}, project = {Stratego and XT and TraCE}, class = {Wet}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-052.pdf}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-052.html}, urlacm = {http://doi.acm.org/10.1145/1111542.1111558}, acceptance = {17/29 = 58\%}, pubcat = {conference and tool description}, urlbib = {BKVV06.bib}, } @article{BKVV08, author = {Martin Bravenboer and Karl Trygve Kalleberg and Rob Vermaas and Eelco Visser}, title = {{Stratego/XT 0.17}. {A} Language and Toolset for Program Transformation}, journal = {Science of Computer Programming}, issn = {0167-6423}, year = {2008}, publisher = {Elsevier}, volume = 72, number = {1-2}, pages = {52-70}, month = {June}, note = {Special issue on experimental software and toolkits}, project = {Stratego and XT and TraCE}, category = {journal}, pubcat = {journal}, urldoi = {http://dx.doi.org/10.1016/j.scico.2007.11.003}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-011.pdf}, urlrelease = {http://strategoxt.org/Stratego/StrategoRelease017}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {BKVV08.bib}, } @mastersthesis{Bra03, author = {Martin Bravenboer}, title = {Connecting {XML} Processing and Term Rewriting with Tree Grammars}, school = {Utrecht University}, year = 2003, address = {Utrecht, The Netherlands}, month = {November}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Bra03.pdf}, project = {Stratego and XT and SDF}, advisor = {Eelco Visser}, urlbib = {Bra03.bib}, } @mastersthesis{Bru01, author = {Arne de Bruijn}, title = {Implementation of Inlining in {Stratego}}, school = {Utrecht University}, year = 2001, address = {Utrecht, The Netherlands}, month = {August}, urlpdf = {http://www.cs.uu.nl/people/visser/ftp/Bru01.pdf}, urlpsgz = {http://www.cs.uu.nl/people/visser/ftp/Bru01.ps.gz}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Bru01.bib}, } @inproceedings{BSVV02, author = {{\sortunder{Brand}}van den Brand, Mark G. J. and Jeroen Scheerder and Jurgen Vinju and Eelco Visser}, title = {Disambiguation Filters for Scannerless Generalized {LR} Parsers}, booktitle = {Compiler Construction (CC 2002)}, pages = {143--158}, year = 2002, editor = {N. Horspool}, volume = 2304, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Grenoble, France}, month = {April}, publisher = {Springer-Verlag}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/BSVV02.pdf}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/BSVV02.ps}, pubcat = {conference}, project = {SDF}, category = {key and refereed}, acceptance = {18/44 = 40\%}, urlbib = {BSVV02.bib}, } @inproceedings{BTV06, author = {Martin Bravenboer and Eric Tanter and Eelco Visser}, title = {Declarative, Formal, and Extensible Syntax Definition for {AspectJ}. {A} Case for Scannerless Generalized-LR Parsing}, booktitle = {Proceedings of the 21th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA 2006)}, pages = {209--228}, year = 2006, editor = {William R. Cook}, address = {Portland, Oregon, USA}, month = {October}, publisher = {ACM Press}, urlacm = {http://doi.acm.org/10.1145/1167473.1167491}, opturlinfo = {}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/BV04.pdf}, optpubcat = {conference}, project = {Stratego and XT and SDF and TraCE and TFA}, category = {key and refereed}, acceptance = {26/156 and 16%}, urlbib = {BTV06.bib}, } @techreport{BV01, author = {Martin Bravenboer and Eelco Visser}, title = {Guiding Visitors: Separating Navigation from Computation}, institution = {Institute of Information and Computing Sciences, Utrecht University}, year = 2001, number = {UU-CS-2001-42}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/BV01.pdf}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2001-042.html}, pubcat = {techreport}, project = {Stratego}, category = {}, urlbib = {BV01.bib}, } @inproceedings{BV02, author = {Martin Bravenboer and Eelco Visser}, title = {Rewriting Strategies for Instruction Selection}, booktitle = {Rewriting Techniques and Applications (RTA 2002)}, pages = {237-251}, year = 2002, editor = {S. Tison}, volume = 2378, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Copenhagen, Denmark}, month = {July}, publisher = {Springer-Verlag}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/BV02.pdf}, pubcat = {conference}, project = {Stratego}, category = {refereed}, acceptance = {20/49 = 40\%}, urlbib = {BV02.bib}, } @inproceedings{BV04, author = {Martin Bravenboer and Eelco Visser}, title = {Concrete Syntax for Objects. {D}omain-Specific Language Embedding and Assimilation without Restrictions}, booktitle = {Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA 2004)}, pages = {365--383}, year = 2004, editor = {Douglas C. Schmidt}, address = {Vancouver, Canada}, month = {October}, publisher = {ACM Press}, urldoi = {http://doi.acm.org/10.1145/1028976.1029007}, urlacm = {http://portal.acm.org/citation.cfm?id=1028976.1029007}, urlinfo = {http://www.cs.uu.nl/groups/ST/Visser/ConcreteSyntaxForObjects}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/BV04.pdf}, pubcat = {conference}, project = {Stratego and XT and SDF and TraCE and MoDSE and TFA}, category = {key and refereed}, acceptance = {27/173 and 16%}, urlbib = {BV04.bib}, } @inproceedings{BV04.sts, author = {Martin Bravenboer and Eelco Visser}, title = {Reusable and Adaptable Strategies for Generative Programming}, booktitle = {GPCE Software Transformation Systems Workshop (STSW 2004)}, year = 2004, editor = {M. Haveraaen and others}, month = {October}, note = {Position paper}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/BV04-STS.pdf}, urlsts = {http://progam-transformation.org/Sts}, pubcat = {semi-refereed and position paper}, category = {semi-refereed}, address = {Vancouver, Canada}, project = {Stratego and XT and TraCE and TFA}, urlbib = {BV04.sts.bib}, } @inproceedings{BV08, author = {Martin Bravenboer and Eelco Visser}, title = {Designing Syntax Embeddings and Assimilations for Language Libraries}, booktitle = {Models in Software Engineering. Workshops and Symposia at MoDELS 2007}, pages = {34-46}, year = {2008}, editor = {H. Giese}, volume = {5002}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, isbn = {978-3-540-69069-6}, location = {Nashville, TN, USA}, address = {Heidelberg}, publisher = {Springer}, note = {Selected paper from the Workshop on Language Engineering (ATEM 2007)}, project = {Stratego and XT and SDF and TraCE and MoDSE and TFA}, urldoi = {http://dx.doi.org/10.1007/978-3-540-69073-3_5}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-042.pdf}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {BV08.bib}, } @inproceedings{BV08.ptc, author = {Martin Bravenboer and Eelco Visser}, title = {Parse Table Composition. Separate Compilation and Binary Extensibility of Grammars}, booktitle = {Software Language Engineering (SLE 2008)}, pages = {74-94}, year = {2009}, editor = {D. Gasevic and E. van Wyk}, volume = {5452}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Heidelberg}, location = {Toulouse, France}, month = {March}, publisher = {Springer}, pubcat = {proceedings}, project = {SDF and TraCE and MoDSE}, urldoi = {http://dx.doi.org//10.1007/978-3-642-00434-6_6}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-043.pdf}, urlsle = {http://planet-sl.org/sle2008/}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {BV08.ptc.bib}, } @techreport{BV94, author = {{\sortunder{Brand}}van den Brand, Mark G. J. and Visser, Eelco}, title = {From {Box} to {\TeX}: {An} algebraic approach to the generation of documentation tools}, year = {1994}, month = {July}, number = {P9420}, institution = {Programming Research Group, University of Amsterdam}, url = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9420.ps}, abstract = {We define a translation from an intermediate box language for pretty printing to \TeX. This translation can be used as a back-end for pretty printers in documentation tools for programming languages. The translation is formulated in an executable algebraic specification formalism. An important aspect of the translation is the transformation of boxes according to a set of equations. These equations preserve the text formatting semantics of boxes which is also defined algebraically. New in this approach is that algebraic transformations of box terms are used to circumvent the limitations of the typesetter.\par The \TeX\ generator, which translates the box language to \TeX\ code, is a component of documentation tools generated for the programming environments developed with the ASF+SDF meta-environment, but can also be used as a separate tool. As a case study, the construction of a typesetter for the process specification formalism PSF is shown.}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9420.ps}, pubcat = {techreport}, project = {SDF}, urlbib = {BV94.bib}, } @inproceedings{BVVV05, author = {Martin Bravenboer and Rob Vermaas and Jurgen Vinju and Eelco Visser}, title = {Generalized Type-Based Disambiguation of Meta Programs with Concrete Object Syntax}, booktitle = {Proceedings of the Fourth International Conference on Generative Programming and Component Engineering (GPCE 2005)}, pages = {157--172}, year = 2005, editor = {Robert Gl{\"u}ck and Mike Lowry}, volume = 3676, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Tallinn, Estonia}, month = {September}, publisher = {Springer}, pubcat = {conference}, project = {Stratego and XT and SDF and TraCE and TFA}, category = {key and refereed}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-035.pdf}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-035.html}, urlgpce = {http://gpce05.gpce.org}, urlspringer = {http://dx.doi.org/10.1007/11561347_12}, class = {Wet}, acceptance = {27/86 = 31\%}, urlbib = {BVVV05.bib}, } @inproceedings{CJC, author = {W. Caarls and P. P. Jonker and H. Corporaal}, title = {Algorithmic Skeletons for Stream Programming in Embedded Heterogeneous Parallel Image Processing}, booktitle = {}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {CJC.bib}, } @misc{codeboost.org, title = {\href{http://www.codeboost.org}{www.codeboost.org}}, pubcat = {website}, project = {Stratego and XT and CodeBoost}, category = {non-refereed}, urlbib = {codeboost.org.bib}, } @mastersthesis{Dam03, author = {Alan van Dam}, title = {Simplifying the Simplifier. {HsOpt}: a modular, rewrite rule based simplifier for the Helium compiler, a non-strict functional compiler}, school = {Utrecht University}, year = 2003, address = {Utrecht, The Netherlands}, month = {July}, note = {INF/SCR-03-25}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Dam03.pdf}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Dam03.bib}, } @mastersthesis{Dam04, author = {Arthur van Dam}, title = {Extending Dynamic Rules. {A}n Application-Oriented Study into {Stratego's} new Dynamic Rules}, school = {Utrecht University}, year = 2004, address = {Utrecht, The Netherlands}, month = {February}, note = {INF/SCR-04-25}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Dam04.pdf}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Dam04.bib}, } @inproceedings{DDG, author = {Valentin David and Akim Demaille and Olivier Gournet}, title = {Attribute Grammars for Modular Disambiguation}, booktitle = {}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {DDG.bib}, } @mastersthesis{Dol01, author = {Eelco Dolstra}, title = {First-class Rules and Generic Traversal for Program Transformation Languages}, school = {Utrecht University}, year = 2001, address = {Utrecht, The Netherlands}, month = {August}, note = {INF/SCR-2001-15}, urlpsgz = {http://www.cs.uu.nl/people/visser/ftp/Dol01.pdf}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Dol01.bib}, } @inproceedings{Dol01-SUD, author = {Eelco Dolstra}, title = {Functional Stratego}, booktitle = {Proceedings of the Second Stratego Users Day (SUD'01)}, pages = {10--17}, year = 2001, editor = {Eelco Visser}, project = {Stratego}, urlbib = {Dol01-SUD.bib}, } @inproceedings{DPS, author = {Akim Demaille and Sylvain Peyronnet and Benoît Sigoure}, title = {Modeling of Sensor Networks Using XRM}, booktitle = {}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {DPS.bib}, } @techreport{DV01, author = {Eelco Dolstra and Eelco Visser}, title = {First-class Rules and Generic Traversal}, institution = {Institute of Information and Computing Sciences, Utrecht University}, year = 2001, number = {UU-CS-2001-38}, address = {Utrecht, The Netherlands}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/DV01.pdf}, pubcat = {techreport}, project = {Stratego}, category = {}, urlbib = {DV01.bib}, } @inproceedings{DV02, author = {Eelco Dolstra and Eelco Visser}, title = {Building Interpreters with Rewriting Strategies}, booktitle = {Workshop on Language Descriptions, Tools and Applications (LDTA 2002)}, year = 2002, editor = {Mark van den Brand and Ralf Laemmel}, volume = {65/3}, series = {Electronic Notes in Theoretical Computer Science}, address = {Grenoble, France}, month = {April}, publisher = {Elsevier Science Publishers}, urldoi = {http://dx.doi.org/10.1016/S1571-0661(04)80427-4}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2002/2002-022.pdf}, pubcat = {workshop}, project = {Stratego and TFA}, category = {refereed}, acceptance = {6/14 = 42\%}, issn = {1571-0661}, urlbib = {DV02.bib}, } @unpublished{DW00, author = {Eelco Dolstra and Hedzer Westra}, title = {Transformaties op {Mondrian} met {Stratego}}, note = {Term paper (in dutch) \url{http://www.cs.uu.nl/~visser/ftp/DW00.pdf} Utrecht University}, month = {July}, year = 2000, project = {Stratego}, urlbib = {DW00.bib}, } @inproceedings{FB06, author = {Sebastian Fleissner and Elisa Baniassad}, title = {A commensalistic software system}, booktitle = {Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications}, optcrossref = {}, optkey = {}, pages = {560 - 573}, year = {2006}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, publisher = {ACM SIGPLAN}, optnote = {}, optannote = {}, isbn = {ISBN:1-59593-491-X}, url = {http://doi.acm.org/10.1145/1176617.1176629}, project = {Stratego and XT}, urlbib = {FB06.bib}, } @inproceedings{FTH07.relax, author = {Johan Fabry and \'Eric Tanter and Theo D'Hondt}, title = {{ReLAx}: Implementing {KALA} over the {Reflex} {AOP} Kernel}, booktitle = {Proceedings of the 2nd Workshop on Domain-Specific Aspect Languages (DSAL 2007)}, optcrossref = {}, optkey = {}, optpages = {}, year = {2007}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, address = {Vancouver, Canada}, month = {March}, organization = {ACM}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {FTH07.relax.bib}, } @inproceedings{FV03.concretepl, author = {Bernd Fischer and Eelco Visser}, title = {Adding Concrete Syntax to a {Prolog-based} Program Synthesis System (Extended Abstract)}, booktitle = {Preproceedings of the International Symposium on Logic Based Program Synthesis and Transformation (LOPSTR 2003)}, pages = {39--48}, year = 2003, editor = {Maurice Bruynooghe}, number = {Report CW 365}, address = {Uppsala, Sweden}, month = {August}, publisher = {Department of Computer Science, K. U. Leuven}, urlinfo = {http://www.stratego-language.org/Stratego/AddingConcreteSyntaxToAPrologBasedProgramSynthesisSystem}, pubcat = {conference and superseded}, project = {Stratego and XT and SDF}, category = {refereed}, urlbib = {FV03.concretepl.bib}, } @inproceedings{FV04.lopstr, author = {Bernd Fischer and Eelco Visser}, title = {Adding Concrete Syntax to a Prolog-Based Program Synthesis System (Extended Abstract)}, booktitle = {13th International Symposium Logic Based Program Synthesis and Transformation: LOPSTR 2003}, pages = {56--58}, year = 2004, editor = {Maurice Bruynooghe}, volume = 3018, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Heidelberg}, month = {November}, publisher = {Springer-Verlag}, urlspringer = {http://www.springerlink.com/index/KBP4AUADCQA8M64D}, category = {refereed}, project = {Stratego and XT and SDF}, pubcat = {conference}, urlbib = {FV04.lopstr.bib}, } @incollection{FV04.retrofit, author = {Bernd Fischer and Eelco Visser}, title = {Retrofitting the {AutoBayes} Program Synthesis System with Concrete Object Syntax}, booktitle = {Domain-Specific Program Generation}, pages = {239--253}, year = 2004, editor = {C. Lengauer and others}, volume = {3016}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, publisher = {Spinger-Verlag}, pubcat = {conference}, urlspringer = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3016{\&}spage=239}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2004-012.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2004/2004-012.pdf}, urlinfo = {http://www.stratego-language.org/Stratego/RetrofittingTheAutoBayesProgramSynthesisSystemWithConcreteSyntax}, urlspringer = {http://www.springerlink.com/index/QMMTH1RULCME6JXC}, project = {Stratego and XT and SDF}, category = {refereed}, urlbib = {FV04.retrofit.bib}, } @inproceedings{GAU04, author = {Sergey V. Goncharov and Arseniy Y. Rudich and Yaroslav S. Usenko}, title = {An implementation of a \muCRL linearization algorithm using rewriting strategies}, booktitle = {Proc. 1st International Conference on Theoretical and Applied Aspects of Program Systems Development (TAAPSD'04)}, optcrossref = {}, optkey = {}, pages = {13-17}, year = {2004}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, address = {Kyiv, Ukraine}, month = {October 5-8}, optorganization = {}, optpublisher = {}, isbn = {ISBN 966-76-52-00-9}, url = {http://www.win.tue.nl/~yusenko/publications.html}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {GAU04.bib}, } @inproceedings{GHKV08, author = {Danny M. Groenewegen and Zef Hemel and Lennart C. L. Kats and Eelco Visser}, title = {{WebDSL}: A Domain-Specific Language for Dynamic Web Applications}, booktitle = {Companion to the 23rd ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA 2008)}, isbn = {978-1-60558-220-7}, pages = {779-780}, year = {2008}, editor = {Nadyne Mielke and Olaf Zimmermann}, location = {Nashville, Tenessee, USA}, month = {October}, address = {New York, NY, USA}, publisher = {ACM}, urldoi = {http://doi.acm.org/10.1145/1449814.1449858}, note = {(poster)}, pubcat = {poster}, project = {Stratego and XT and MoDSE and WebDSL}, category = {refereed}, urloopsla = {http://www.oopsla.org/oopsla2008/}, urlbib = {GHKV08.bib}, } @mastersthesis{Gro05, author = {Ren\'e de Groot}, title = {Design and Implementation of Embedded Domain-Specific Languages}, school = {Utrecht University}, year = 2005, address = {Utrecht, The Netherlands}, month = {September}, note = {INF/SCR-05-10}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Gro05.pdf}, project = {Stratego and XT and TraCE}, urlbib = {Gro05.bib}, } @inproceedings{GV08, author = {Danny M. Groenewegen and Eelco Visser}, title = {Declarative Access Control for {WebDSL}: {C}ombining Language Integration and Separation of Concerns}, booktitle = {Eighth International Conference on Web Engineering (ICWE 2008)}, pages = {175--188}, year = {2008}, editor = {Daniel Schwabe and Francisco Curbera}, month = {July}, publisher = {IEEE CS Press}, pubcat = {conference}, project = {MoDSE and ASSESS and WebDSL and Stratego}, urldoi = {http://dx.doi.org/10.1109/ICWE.2008.15}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-021.pdf}, urlicwe = {http://icwe2008.webengineering.org/}, group = {SE}, researchcode = {I-ISS-07}, note = {best paper award}, isbn = {978-0-7695-3261-5}, urlbib = {GV08.bib}, } @inproceedings{HG07, author = {Leonard Hamey and Shirley Goldrei}, title = {Implementing a Domain-Specific Language using Stratego/XT}, booktitle = {Seventh Workshop on Language Descriptions, Tools, and Applications (LDTA'07)}, optcrossref = {}, optkey = {}, pages = {32--46}, year = {2007}, editor = {A. Sloane and A. Johnstone}, optvolume = {}, optnumber = {}, optseries = {}, address = {Braga, Portugal}, month = {March}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {HG07.bib}, } @article{HGKV09, author = {Zef Hemel and Danny M. Groenewegen and Lennart C. L. Kats and Eelco Visser}, title = {Code Generation by Model Transformation. {A} Case Study in Transformation Modularity}, journal = {Software and Systems Modeling}, year = {2009}, optkey = {}, optvolume = {}, optnumber = {}, optpages = {}, optmonth = {}, note = {(accepted modulo minor revision)}, optannote = {}, pubcat = {journal}, project = {Stratego and XT and MoDSE and TFA and WebDSL}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {HGKV09.bib}, } @inproceedings{HKV08, author = {Zef Hemel and Lennart C. L. Kats and Eelco Visser}, title = {Code Generation by Model Transformation. {A} Case Study in Transformation Modularity}, booktitle = {Theory and Practice of Model Transformations. First International Conference on Model Transformation (ICMT 2008)}, pages = {183--198}, year = 2008, editor = {J. Gray and A. Pierantonio and A. Vallecillo}, volume = 5063, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, month = {July}, publisher = {Springer}, address = {Heidelberg}, location = {Z{\"u}rich, Switzerland}, isbn = {978-3-540-69926-2}, project = {Stratego and XT and MoDSE and TFA and WebDSL}, urldoi = {http://dx.doi.org/10.1007/978-3-540-69927-9_13}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-012.pdf}, urlicmt = {http://www.model-transformation.org/ICMT2008/}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {HKV08.bib}, } @inproceedings{HVV08, author = {Zef Hemel and Ruben Verhaaf and Eelco Visser}, title = {{WebWorkFlow}: An Object-Oriented Workflow Modeling Language for Web Applications}, booktitle = {Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems (MODELS 2008)}, editor = {K. Czarnecki and I. Ober and J.-M. Bruel and A. Uhl and M. V{\"o}lter}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, volume = {5301}, pages = {113-127}, year = {2008}, month = {September}, publisher = {Springer}, address = {Heidelberg}, location = {Toulouse, France}, isbn = {978-3-540-87874-2}, pubcat = {conference}, project = {MoDSE and WebDSL and Stratego}, acceptance = {21\%}, urldoi = {http://dx.doi.org/10.1007/978-3-540-87875-9_8}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-029.pdf}, urlmodels = {http://www.modelsconference.org/}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {HVV08.bib}, } @mastersthesis{Jan05, author = {Niels Janssen}, title = {Transformation Tool Composition}, school = {Utrecht University}, year = 2005, address = {Utrecht, The Netherlands}, month = {March}, note = {INF/SCR-04-64}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Jan05.pdf}, project = {Stratego and XT and TraCE}, advisor = {Eelco Visser}, urlbib = {Jan05.bib}, } @inproceedings{JM01, author = {de Jonge, M. and R. Monajemi}, title = {Cost-Effective Maintenance Tools for Proprietary Languages}, booktitle = {Proceedings: International Conference on Software Maintenance (ICSM 2001)}, year = 2001, publisher = {IEEE Computer Society Press}, pages = {240--249}, month = nov, project = {Stratego and XT}, urlbib = {JM01.bib}, } @inproceedings{Jon00, author = {de Jonge, Merijn}, title = {A Pretty-Printer for Every Occasion}, booktitle = {Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools (CoSET2000)}, editor = {Ian Ferguson and Jonathan Gray and Louise Scott}, year = 2000, publisher = {University of Wollongong, Australia}, project = {Stratego and XT and Pretty-Printing}, urlbib = {Jon00.bib}, } @inproceedings{Jon02, author = {de Jonge, Merijn}, title = {Source Tree Composition}, booktitle = {Proceedings: Seventh International Conference on Software Reuse}, editor = {Cristina Gacek}, volume = {2319}, year = 2002, month = apr, series = {LNCS}, publisher = {Springer-Verlag}, pages = {17--32}, project = {XT}, urlbib = {Jon02.bib}, } @article{JV00, author = {Johann, Patricia and Visser, Eelco}, title = {Warm Fusion in {Stratego}: {A} Case Study in the Generation of Program Transformation Systems}, journal = {Annals of Mathematics and Artificial Intelligence}, year = 2000, volume = 29, number = {1--4}, pages = {1--34}, month = {February}, urldoi = {http://dx.doi.org/10.1023/A:1018956702672}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/JV2000-TR.ps}, pubcat = {journal}, project = {Stratego}, category = {refereed}, urlbib = {JV00.bib}, } @inproceedings{JV01, author = {Patricia Johann and Eelco Visser}, title = {Fusing Logic and Control with Local Transformations: An Example Optimization}, series = {Electronic Notes in Theoretical Computer Science}, volume = 57, year = 2001, editor = {B. Gramlich and S. Lucas}, address = {Utrecht, The Netherlands}, month = {May}, publisher = {Elsevier Science Publishers}, booktitle = {Workshop on Reduction Strategies in Rewriting and Programming (WRS 2001)}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/JV01.pdf}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/JV01.ps}, pubcat = {workshop}, project = {Stratego}, category = {refereed}, issn = {1571-0661}, urlbib = {JV01.bib}, } @inproceedings{JV01.sud, author = {de Jonge, Merijn and Joost Visser}, title = {{XT} Capita Selecta}, booktitle = {Proceedings of the Second Stratego Users Day (SUD'01)}, month = {February}, editor = {Eelco Visser}, year = 2001, pages = {18--35}, publisher = {Institute for Information and Computing Sciences, Utrecht University}, project = {Stratego and XT}, urlbib = {JV01.sud.bib}, } @techreport{JV03, author = {Patricia Johann and Eelco Visser}, title = {Strategies for Fusing Logic and Control via Local, Application-Specific Transformations}, institution = {Institute of Information and Computing Sciences, Utrecht University}, year = 2003, number = {UU-CS-2003-050}, month = {February}, url = {http://www.cs.uu.nl/research/techreps/UU-CS-2003-050.html}, urlinfo = {http://www.stratego-language.org/Stratego/FusingLogicAndControl}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2003/2003-050.pdf}, project = {Stratego}, pubcat = {tecnical report}, category = {}, urlbib = {JV03.bib}, } @inproceedings{JVV01, author = {Merijn de Jonge and Eelco Visser and Joost Visser}, title = {{XT}: {A} Bundle of Program Transformation Tools}, booktitle = {Workshop on Language Descriptions, Tools and Applications (LDTA 2001)}, year = 2001, editor = {M. G. J. van den Brand and D. Parigot}, volume = 44, number = 2, series = {Electronic Notes in Theoretical Computer Science}, month = {April}, publisher = {Elsevier Science Publishers}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/JVV01.ps}, urlentcs = {http://dx.doi.org/10.1016/S1571-0661(04)80921-6}, pubcat = {workshop}, project = {Stratego and XT}, category = {key and refereed}, issn = {1571-0661}, urlbib = {JVV01.bib}, } @mastersthesis{Kal03.thesis, author = {Kalleberg, Karl Trygve}, title = {User-configurable, High-Level Transformations with {CodeBoost}}, year = {2003}, month = {March}, school = {University of Bergen}, address = {P.O.Box 7800, N-5020 Bergen, Norway}, project = {Stratego and CodeBoost}, advisor = {Magne Haveraaen and Eelco Visser}, urlbib = {Kal03.thesis.bib}, } @mastersthesis{Kats07, author = {Lennart C. L. Kats}, title = {Supporting Language Extension and Separate Compilation by Mixing Java and Bytecode}, school = {Utrecht University}, year = 2007, address = {Utrecht, The Netherlands}, month = {August}, note = {INF/SCR-07-02}, urlpdf = {http://www.lclnet.nl/publications/kats-mastersthesis.pdf}, project = {Stratego and XT and TFA}, advisor = {Eelco Visser and Martin Bravenboer}, urlbib = {Kats07.bib}, } @inproceedings{KBV08, author = {Lennart C. L. Kats and Martin Bravenboer and Eelco Visser}, title = {Mixing Source and Bytecode. {A} Case for Compilation by Normalization}, booktitle = {Proceedings of the 23rd ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA 2008)}, year = {2008}, editor = {G. Kiczales}, pages = {91--108}, location = {Nashville, Tenessee, USA}, address = {New York, NY, USA}, month = {October}, publisher = {ACM}, urldoi = {http://doi.acm.org/10.1145/1449764.1449772}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-030.pdf}, urloopsla = {http://www.oopsla.org/oopsla2008/}, isbn = {978-1-60558-215-3}, issn = {0362-1340}, acceptance = {28\%}, pubcat = {conference}, project = {Stratego and XT and Dryad and TFA and MoDSE}, category = {key and refereed}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {KBV08.bib}, } @inproceedings{Kie01, author = {Richard Kieburtz}, title = {A Logic for Rewriting Strategies}, booktitle = {Workshop on Strategies in Automated Deduction}, year = 2001, address = {Siena, Italy}, project = {Stratego}, urlbib = {Kie01.bib}, } @inproceedings{KJNV09, author = {Lennart C. L. Kats and Maartje de Jonge and Emma Nilsson-Nyman and Eelco Visser}, title = {Providing Rapid Feedback in Generated Modular Language Environments. Adding Error Recovery to Scannerless Generalized-LR Parsing}, booktitle = {Proceedings of the 24th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA 2009)}, year = {2009}, editor = {Gary T. Leavens}, location = {Orlando, Florida, USA}, address = {New York, NY, USA}, month = {October}, publisher = {ACM Press}, series = {ACM SIGPLAN Notices}, urloopsla = {http://www.oopsla.org/oopsla2009/}, issn = {0362-1340}, optpages = {}, optvolume = {}, optnumber = {}, optdoi = {}, optissn = {}, opturldoi = {}, opturlpdf = {}, optisbn = {}, acceptance = {17\%}, pubcat = {conference}, note = {(to appear)}, project = {Stratego and XT and SDF and TFA and MoDSE}, category = {key and refereed}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {KJNV09.bib}, } @inproceedings{KKV08, author = {Lennart C. L. Kats and Karl Trygve Kalleberg and Eelco Visser}, title = {Generating Editors for Embedded Languages. Integrating {SGLR} into {IMP}}, booktitle = {Proceedings of the Eighth Workshop on Language Descriptions, Tools, and Applications (LDTA 2008)}, optcrossref = {}, optkey = {}, optpages = {}, year = {2008}, editor = {A. Johnstone and J. Vinju}, optvolume = {}, optnumber = {}, address = {Budapest, Hungary}, month = {April}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-006.pdf}, urlldta = {http://ldta2008.inf.elte.hu/}, optannote = {}, project = {TFA and MoDSE and SDF and Stratego and XT}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {KKV08.bib}, } @inproceedings{KKV09, author = {Lennart C. L. Kats and Karl Trygve Kalleberg and Eelco Visser}, title = {Domain-Specific Languages for Composable Editor Plugins}, booktitle = {Proceedings of the Ninth Workshop on Language Descriptions, Tools, and Applications (LDTA 2009)}, optcrossref = {}, optkey = {}, optpages = {}, year = {2009}, editor = {T. Ekman and J. Vinju}, optvolume = {}, optnumber = {}, series = {Electronic Notes in Theoretical Computer Science}, optaddress = {}, month = {April}, optorganization = {}, publisher = {Elsevier Science Publishers}, optannote = {}, pubcat = {conference}, project = {TFA and MoDSE and SDF and Stratego}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {KKV09.bib}, } @mastersthesis{Kru03, author = {Jozef Kruger}, title = {Specification of Loop Optimizations In {Stratego}. {I}mproving the AutoBayes System}, school = {Utrecht University}, year = 2003, address = {Utrecht, The Netherlands}, month = {November}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Kru03.pdf}, project = {Stratego and XT}, advisor = {Eelco Visser}, urlbib = {Kru03.bib}, } @inproceedings{KSV09, author = {Lennart C. L. Kats and Anthony M. Sloane and Eelco Visser}, title = {Decorated Attribute Grammars. {A}ttribute Evaluation Meets Strategic Programming}, booktitle = {International Conference on Compiler Construction (CC 2009)}, optcrossref = {}, optkey = {}, pages = {142--157}, editor = {Oege de Moor and Michael I. Schwartzbach}, location = {Heidelberg}, year = {2009}, isbn = {978-3-642-00721-7}, volume = {5501}, series = {Lecture Notes in Computer Science}, address = {York, United Kingdom}, month = {March}, publisher = {Springer}, project = {TFA and Stratego and AGR}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-038a.pdf}, urldoi = {http://dx.doi.org/10.1007/978-3-642-00722-4_11}, pubcat = {conference}, category = {refereed}, project = {TFA and Stratego and AGR}, urlbib = {KSV09.bib}, } @inproceedings{KV06, author = {Karl Trygve Kalleberg and Eelco Visser}, title = {Combining Aspect-Oriented and Strategic Programming}, booktitle = {Workshop on Rule-Based Programming (RULE 2005)}, year = {2006}, editor = {Horatiu Cirstea and Narciso Marti-Oliet}, volume = {147}, number = {1}, pages = {5-30}, series = {Electronic Notes in Theoretical Computer Science}, address = {Nara, Japan}, publisher = {Elsevier Science Publishers}, pubcat = {workshop}, project = {Stratego and TraCE and TFA}, category = {refereed}, urldoi = {http://dx.doi.org/10.1016/j.entcs.2005.06.035}, urlentcs = {http://www.sciencedirect.com/science/journal/15710661}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-030.pdf}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-030.html}, class = {Wet}, acceptance = {6/13 = 46\%}, issn = {1571-0661}, urlbib = {KV06.bib}, } @inproceedings{KV07.spoofax, author = {Karl Trygve Kalleberg and Eelco Visser}, title = {Spoofax: An Interactive Development Environment for Program Transformation with {Stratego/XT}}, booktitle = {Proceedings of the Seventh Workshop on Language Descriptions, Tools, and Applications (LDTA 2007)}, optcrossref = {}, optkey = {}, pages = {47--50}, year = {2007}, editor = {A. Sloane and A. Johnstone}, address = {Braga, Portugal}, month = {March}, project = {Stratego and XT and SDF and TFA and MoDSE}, pubcat = {conference and tool description}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-018.pdf}, urlldta = {http://www.di.uminho.pt/ldta07/}, urlbib = {KV07.spoofax.bib}, } @inproceedings{KV08.pom, author = {Karl Trygve Kalleberg and Eelco Visser}, title = {Fusing a Transformation Language with an Open Compiler}, booktitle = {Proceedings of the Seventh Workshop on Language Descriptions, Tools, and Applications (LDTA 2007)}, pages = {21-36}, year = {2008}, editor = {A. Sloane and A. Johnstone}, volume = {203}, number = {2}, series = {Electronic Notes in Theoretical Computer Science}, issn = {1571-0661}, location = {Braga, Portugal}, month = {April}, publisher = {Elsevier}, project = {Stratego and XT and TFA and MoDSE}, urldoi = {http://dx.doi.org/10.1016/j.entcs.2008.03.042}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-025.pdf}, urlldta = {http://www.di.uminho.pt/ldta07/}, abstract = {Program transformation systems provide powerful analysis and transformation frameworks as well as concise languages for language processing, but instantiating them for every subject language is an arduous task, most often resulting in half-completed frontends. Compilers provide mature frontends with robust parsers and type checkers, but solving language processing problems in general-purpose languages without transformation libraries is tedious. Reusing these frontends with existing transformation systems is therefore attractive. However, for this reuse to be optimal, the functional logic found in the frontend should be exposed to the transformation system - simple data serialization of the abstract syntax tree is not enough, since this fails to expose important compiler functionality, such as import graphs, symbol tables and the type checker. In this paper, we introduce a novel and general technique for combining term-based transformation systems with existing language frontends. The technique is presented in the context of a scriptable analysis and transformation framework for Java built on top of the Eclipse Java compiler. The framework consists of an adapter automatically extracted from the abstract syntax tree of the compiler and an interpreter for the Stratego program transformation language. The adapter allows the Stratego interpreter to rewrite directly on the compiler AST. We illustrate the applicability of our system with scripts written in Stratego that perform framework and library-specific analyses and transformations.}, keywords = {compiler scripting; strategic programming; program transformation}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {KV08.pom.bib}, } @inproceedings{KV94, author = {Klint, Paul and Visser, Eelco}, title = {Using Filters for the Disambiguation of Context-free Grammars}, booktitle = {Proc. {ASMICS} Workshop on Parsing Theory}, editor = {Pighizzini, G. and {San Pietro}, P.}, year = {1994}, month = {October}, pages = {1--20}, publisher = {Tech. Rep. 126--1994, Dipartimento di Scienze dell'Informazione, Universit\`a di Milano}, address = {Milano, Italy}, pubcat = {workshop}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9426.ps}, abstract = {An ambiguous context-free grammar defines a language in which some sentences have multiple interpretations. For conciseness, ambiguous context-free grammars are frequently used to define even completely unambiguous languages and numerous disambiguation methods exist for specifying which interpretation is the intended one for each sentence. The existing methods can be divided in `parser specific' methods that describe how some parsing technique deals with ambiguous sentences and `logical' methods that describe the intended interpretation without reference to a specific parsing technique. We propose a framework of {\em filters\/} to describe and compare a wide range of disambiguation problems in a parser-independent way. A filter is a function that selects from a set of parse trees (the canonical representation of the interpretations of a sentence) the intended trees. The framework enables us to define several general properties of disambiguation methods. The expressive power of filters is illustrated by several case studies. Finally, a start is made with the study of efficient implementation techniques for filters by exploiting the commutativity of parsing steps and filter steps for certain classes of filters.}, project = {SDF}, category = {refereed}, urlbib = {KV94.bib}, } @inproceedings{Lam01-SUD, author = {Ralf {L\"ammel}}, title = {Towards Typeful Stratego}, booktitle = {Proceedings of the Second Stratego Users Day (SUD'01)}, pages = {4--9}, year = 2001, editor = {Eelco Visser}, month = {February}, publisher = {Institute for Information and Computing Sciences, Utrecht University}, project = {Stratego and XT}, urlbib = {Lam01-SUD.bib}, } @inproceedings{LMC, author = {F. Latry and J. Mercadal and C. Consel}, title = {Processing Domain-Specific Modeling Languages: A Case Study in Telephony Services}, booktitle = {}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {LMC.bib}, } @inproceedings{LV97, author = {Luttik, Bas and Visser, Eelco}, title = {Specification of Rewriting Strategies}, booktitle = {2nd International Workshop on the Theory and Practice of Algebraic Specifications (ASF+SDF 1997)}, editor = {M. P. A. Sellink}, year = {1997}, month = {November}, series = {Electronic Workshops in Computing}, publisher = {Springer-Verlag}, address = {Berlin}, url = {http://www.springer.co.uk/ewic/workshops/ASFSDF97/}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/LV97.ps}, pubcat = {workshop}, project = {Stratego}, category = {key and refereed}, urlbib = {LV97.bib}, } @inproceedings{LVV03, author = {Ralf Laemmel and Eelco Visser and Joost Visser}, title = {Strategic Programming Meets Adaptive Programming}, booktitle = {Proceedings of Aspect-Oriented Software Development (AOSD 2003)}, year = {2003}, month = {March}, publisher = {ACM Press}, pages = {168-177}, address = {Boston, USA}, url = {http://www.program-transformation.org/Transform/StrategicProgrammingMeetsAdaptiveProgramming}, pubcat = {conference}, project = {Stratego}, category = {key and refereed}, acceptance = {20/96 = 20\%}, urlbib = {LVV03.bib}, } @mastersthesis{Olm00, author = {Karina Joffre Olmos}, title = {Reverse Engineering Transformations for {DSP} Code Generation}, school = {Utrecht University and Universidad Mayor de San Sim{\'o}n}, year = 2000, address = {Utrecht, The Netherlands}, month = {November}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Olm00.bib}, } @inproceedings{OV02, author = {Karina Olmos and Eelco Visser}, title = {Strategies for Source-to-Source Constant Propagation}, booktitle = {Workshop on Reduction Strategies (WRS 2002)}, pages = 20, year = 2002, editor = {B. Gramlich and S. Lucas}, volume = 70, number = 6, series = {Electronic Notes in Theoretical Computer Science}, address = {Copenhagen, Denmark}, month = {July}, publisher = {Elsevier Science Publishers}, urlentcs = {http://www.elsevier.nl/locate/entcs/volume70.html}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/OV02.pdf}, pubcat = {workshop}, project = {Stratego}, category = {refereed}, acceptance = {9/10 = 90%}, issn = {1571-0661}, urlbib = {OV02.bib}, } @inproceedings{OV03, author = {Karina Olmos and Eelco Visser}, title = {Turning Dynamic Typing into Static Typing by Program Specialization}, booktitle = {Third IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2003)}, pages = {141--150}, year = 2003, editor = {D. Binkley and P. Tonella}, address = {Amsterdam, The Netherlands}, month = {September}, publisher = {IEEE Computer Society Press}, urlieee = {http://csdl.computer.org/comp/proceedings/scam/2003/2005/00/20050141abs.htm}, urlinfo = {http://www.stratego-language.org/Stratego/TurningDynamicTypingIntoStaticTypingByProgramSpecialization}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2003-049.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2003/2003-049.pdf}, pubcat = {workshop}, project = {Stratego and Octave Compiler}, category = {refereed}, acceptance = {21/43 = 48\%}, urlbib = {OV03.bib}, } @inproceedings{OV05, author = {Karina Olmos and Eelco Visser}, title = {Composing Source-to-Source Data-Flow Transformations with Rewriting Strategies and Dependent Dynamic Rewrite Rules}, booktitle = {14th International Conference on Compiler Construction (CC 2005)}, pages = {204--220}, year = 2005, editor = {Rastislav Bodik}, volume = 3443, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, month = {April}, publisher = {Springer-Verlag}, urldoi = {http://dx.doi.org/10.1007/b107108}, urlinfo = {http://www.stratego-language.org/Stratego/ComposingSourceToSourceDataFlowTransformations}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-006.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-006.pdf}, urlspringer = {http://www.springerlink.com/index/RW9HJQFGVJNJJUK8}, category = {conference}, pubcat = {conference}, project = {Stratego and TraCE and TFA}, class = {Wet}, acceptance = {21/90 = 23\%}, urlbib = {OV05.bib}, } @inproceedings{REC08, author = {Francisco Duran and Munel Rold{\'a}n and Emilie Balland and Mark van den Brand and Steven Eker and Karl Trygve Kalleberg and Lennart C. L. Kats and Pierre-Etienne Moreau and Ruslan Schevchenko and Eelco Visser}, title = {The Second Rewrite Engines Competition}, booktitle = {Proceedings of the Seventh International Workshop on Rewriting Logic and its Applications (WRLA 2008)}, pages = {281-291}, year = {2009}, editor = {G. Rosu}, optvolume = {}, series = {Electronic Notes in Theoretical Computer Science}, volume = {238}, issue = {3}, month = {June}, publisher = {Elsevier}, project = {Stratego and TFA}, category = {refereed}, pubcat = {workshop proceedings}, urldoi = {http://dx.doi.org/10.1016/j.entcs.2009.05.025}, urlwrla = {http://wrla08.cs.uiuc.edu/}, issn = {1571-0661}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {REC08.bib}, } @inproceedings{Rie06, author = {Jonathan Riehl}, title = {Assimilating MetaBorg: Embedding language tools in languages}, booktitle = {GPCE'06}, optcrossref = {}, optkey = {}, optpages = {}, optyear = {}, opteditor = {}, optvolume = {}, optnumber = {}, optseries = {}, optaddress = {}, optmonth = {}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Stratego and XT}, urlbib = {Rie06.bib}, } @book{SPT, author = {Eelco Visser}, title = {Strategies for Program Transformation}, year = 2004, note = {Draft book. Superseded by Stratego/XT manual.}, urlinfo = {http://www.stratego-language.org/Book}, pubcat = {draft}, project = {Stratego and XT}, category = {ongoing and non-refereed}, urlbib = {SPT.bib}, } @misc{stratego-language.org, title = {\href{http://www.stratego-language.org}{www.stratego-language.org}}, pubcat = {website}, project = {Stratego}, category = {non-refereed}, urlbib = {stratego-language.org.bib}, } @manual{StrategoDoc05, title = {Stratego/XT Tutorial, Examples, and Reference Manual for Stratego/XT 0.16}, author = {Martin Bravenboer and Karl Trygve Kalleberg and Rob Vermaas and Eelco Visser}, organization = {Department of Information and Computing Sciences, Universiteit Utrecht}, address = {Utrecht, The Netherlands}, month = {November}, year = 2005, urlhtml = {http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/strategoxt-manual-0.16/manual/}, project = {Stratego and XT and TraCE}, category = {documentation}, pubcat = {documentation}, class = {Wet non}, urlbib = {StrategoDoc05.bib}, } @manual{StrategoDoc06, title = {Stratego/XT Tutorial, Examples, and Reference Manual (latest)}, optkey = {}, author = {Martin Bravenboer and Karl Trygve Kalleberg and Rob Vermaas and Eelco Visser}, organization = {Department of Information and Computing Sciences, Universiteit Utrecht}, address = {Utrecht, The Netherlands}, note = {\url{http://www.strategoxt.org}}, optedition = {}, month = {}, year = {2006}, optannote = {}, urlhtml = {http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/strategoxt-manual-unstable-latest/manual/}, project = {Stratego and XT}, category = {documentation and draft}, pubcat = {documentation and draft}, urlbib = {StrategoDoc06.bib}, } @mastersthesis{Swa02, author = {Lennart Swart}, title = {Partial Evaluation using Rewrite Rules. {A} Specification of a Partial Evaluator for {Similix} in {Stratego}}, school = {Utrecht University}, year = 2002, address = {Utrecht, The Netherlands}, month = {August}, note = {INF/SCR-2002-12}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Swa02.pdf}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Swa02.bib}, } @inproceedings{tanter:odal2006, author = {{\'E}ric Tanter}, title = {An Extensible Kernel Language for {AOP}}, booktitle = {Proceedings of AOSD Workshop on Open and Dynamic Aspect Languages}, year = {2006}, address = {Bonn, Germany}, url = {http://www.dcc.uchile.cl/~etanter/index.html}, urlpdf = {http://www.dcc.uchile.cl/~etanter/research/publi/2006/tanter-odal2006.pdf}, project = {Stratego and XT}, urlbib = {tanter-odal2006.bib}, } @manual{TigerCompiler, title = {Tiger in {Stratego}: An Exercise in Compilation by Transformation}, author = {Visser, Eelco}, organization = {Institute of Information and Computing Sciences, Utrecht University}, year = {2002}, note = {Technical Documentation.}, urlwiki = {http://www.stratego-language.org/Tiger}, pubcat = {obsolete}, project = {Stratego and XT and Tiger Compiler}, category = {non-refereed}, urlbib = {TigerCompiler.bib}, } @inproceedings{VB98, author = {Visser, Eelco and Benaissa, Zine-el-Abidine}, title = {A Core Language for Rewriting}, series = {Electronic Notes in Theoretical Computer Science}, year = 1998, volume = 15, month = {September}, editor = {C.~Kirchner and H.~Kirchner}, booktitle = {Second International Workshop on Rewriting Logic and its Applications (WRLA 1998)}, address = {Pont-{\`a}-Mousson, France}, publisher = {Elsevier Science Publishers}, urldoi = {http://dx.doi.org/10.1016/S1571-0661(05)80027-1}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/VB98.ps}, pubcat = {workshop}, project = {Stratego}, category = {refereed}, issn = {1571-0661}, urlbib = {VB98.bib}, } @inproceedings{VBT98, author = {Visser, Eelco and Benaissa, Zine-el-Abidine and Tolmach, Andrew}, title = {Building Program Optimizers with Rewriting Strategies}, booktitle = {Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP 1998)}, pages = {13--26}, year = 1998, month = {September}, publisher = {ACM Press}, urldoi = {http://doi.acm.org/10.1145/289423.289425}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/VBT98.ps}, pubcat = {conference}, project = {Stratego}, category = {key and refereed}, acceptance = {30/77, 38\%}, urlbib = {VBT98.bib}, } @mastersthesis{Ver04, author = {Rob B. Vermaas}, title = {{xDoc}. {An} extensible documentation generator}, school = {Utrecht University}, year = 2004, address = {Utrecht, The Netherlands}, month = {February}, note = {INF/SCR-03-41}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Ver04.pdf}, project = {Stratego and XT}, advisor = {Eelco Visser}, urlbib = {Ver04.bib}, } @inproceedings{Vis00, author = {Eelco Visser}, title = {Language Independent Traversals for Program Transformation}, booktitle = {Workshop on Generic Programming (WGP 2000)}, year = 2000, editor = {Johan Jeuring}, address = {Ponte de Lima, Portugal}, month = {July}, publisher = {Technical Report UU-CS-2000-19, Department of Information and Computing Sciences, Universiteit Utrecht}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis00.ps}, pubcat = {workshop}, project = {Stratego}, category = {key and refereed}, urlbib = {Vis00.bib}, } @unpublished{Vis00.strategosdf, author = {Joost Visser}, title = {Stratego + {SDF}}, note = {Stratego Users Day 2000}, project = {Stratego and SDF}, urlbib = {Vis00.strategosdf.bib}, } @inproceedings{Vis01.rta, author = {Eelco Visser}, title = {Stratego: {A} Language for Program Transformation based on Rewriting Strategies. {S}ystem Description of {Stratego} 0.5}, booktitle = {Rewriting Techniques and Applications (RTA 2001)}, pages = {357--361}, year = 2001, editor = {A. Middeldorp}, volume = 2051, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, month = {May}, publisher = {Springer-Verlag}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis01.pdf}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis01.ps}, urlspringer = {http://link.springer.de/link/service/series/0558/bibs/2051/20510357.htm}, pubcat = {conference and tool description}, project = {Stratego}, category = {refereed}, acceptance = {24/55 = 43\%}, urlbib = {Vis01.rta.bib}, } @inproceedings{Vis01.rule, author = {Eelco Visser}, title = {Scoped Dynamic Rewrite Rules}, series = {Electronic Notes in Theoretical Computer Science}, volume = {59/4}, publisher = {Elsevier Science Publishers}, editor = {Mark van den Brand and Rakesh Verma}, year = {2001}, booktitle = {Rule Based Programming (RULE 2001)}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis01-rule.pdf}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis01-rule.ps}, month = {September}, pubcat = {workshop}, project = {Stratego}, category = {key and refereed}, issn = {1571-0661}, urlbib = {Vis01.rule.bib}, } @inproceedings{Vis01.wrs, author = {Visser, Eelco}, title = {A Survey of Rewriting Strategies in Program Transformation Systems}, series = {Electronic Notes in Theoretical Computer Science}, volume = {57}, year = 2001, editor = {B. Gramlich and S. Lucas}, address = {Utrecht, The Netherlands}, month = {May}, publisher = {Elsevier Science Publishers}, booktitle = {Workshop on Reduction Strategies in Rewriting and Programming (WRS 2001)}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis01-WRS.pdf}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis01-WRS.ps}, pubcat = {workshop}, project = {Stratego}, category = {refereed}, issn = {1571-0661}, urlbib = {Vis01.wrs.bib}, } @inproceedings{Vis02.gpce, author = {Eelco Visser}, title = {Meta-Programming with Concrete Object Syntax}, booktitle = {Generative Programming and Component Engineering (GPCE 2002)}, pages = {299--315}, year = 2002, editor = {Don Batory and Charles Consel and Walid Taha}, volume = 2487, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Pittsburgh, PA, USA}, month = {October}, publisher = {Springer-Verlag}, urlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis02-gpce.pdf}, pubcat = {conference}, project = {Stratego and XT and SDF}, category = {key and refereed}, acceptance = {18/39 = 46\%}, urlbib = {Vis02.gpce.bib}, } @misc{Vis03-lift, author = {Eelco Visser}, title = {Stratego Wiki / Lift Definitions to Top Level}, howpublished = {http://www.stratego-language.org/Stratego/LiftDefinitionsToTopLevel}, month = {August}, year = 2003, note = {Notes on component of the Stratego Compiler}, pubcat = {webpage}, project = {Stratego}, category = {non-refereed}, urlbib = {Vis03-lift.bib}, } @incollection{Vis04.strategoxt, author = {Eelco Visser}, title = {Program Transformation with {Stratego/XT}: Rules, Strategies, Tools, and Systems in {StrategoXT-0.9}}, booktitle = {Domain-Specific Program Generation}, pages = {216--238}, year = 2004, editor = {C. Lengauer and others}, volume = {3016}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, month = {June}, publisher = {Spinger-Verlag}, urlspringer = {http://www.springerlink.com/index/MY9WE5TJ86U2F59N}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2004-011.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2004/2004-011.pdf}, urlinfo = {http://www.stratego-language.org/Stratego/ProgramTransformationWithStrategoXT}, pubcat = {conference}, project = {Stratego and XT}, category = {key and refereed}, urlbib = {Vis04.strategoxt.bib}, } @manual{Vis05-bibtextools, title = {The {Stratego/XT} {BibTeX} Tools. {T}ool documentation}, author = {Eelco Visser}, organization = {Department of Information and Computing Sciences, Universiteit Utrecht}, address = {Utrecht, The Netherlands}, edition = {0.2}, month = {November}, year = {2005}, urlwiki = {http://www.stratego-language.org/Stratego/BibtexTools}, urlrelease = {http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/bibtex-tools-0.2/}, urlpdf = {http://buildfarm.st.ewi.tudelft.nl/releases/strategoxt/bibtex-tools-0.2/bibtex-tools.pdf}, project = {Stratego and XT}, category = {documentation}, pubcat = {documentation}, class = {Wet non}, urlbib = {Vis05-bibtextools.bib}, } @inproceedings{Vis05.scam, author = {Eelco Visser}, title = {Transformations for Abstractions}, booktitle = {Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2005)}, pages = {3--12}, year = 2005, editor = {Jens Krinke and Giulio Antoniol}, address = {Budapest, Hungary}, month = {October}, publisher = {IEEE Computer Society Press}, note = {(Keynote paper)}, urldoi = {http://dx.doi.org/10.1109/SCAM.2005.26}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-034.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-034.pdf}, urlblog = {http://eelco-visser.blogspot.com/2005/07/transformations-for-abstractions.html}, urlwiki = {http://www.stratego-language.org/Stratego/TransformationsForAbstractions}, urlscam = {http://www.dcs.kcl.ac.uk/staff/mark/scam2005/}, project = {Stratego and TraCE and TFA}, pubcat = {proceedings}, class = {Wet non}, urlbib = {Vis05.scam.bib}, } @article{Vis05.survey, author = {Eelco Visser}, title = {A Survey of Strategies in Rule-Based Program Transformation Systems}, journal = {Journal of Symbolic Computation}, year = 2005, volume = 40, number = 1, pages = {831-873}, urldoi = {http://dx.doi.org/10.1016/j.jsc.2004.12.011}, urljsc = {http://authors.elsevier.com/sd/article/S0747717105000349}, urlinfo = {http://www.program-transformation.org/Transform/ASurveyOfStrategiesInRuleBasedProgramTransformationSystems}, urltr = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-006.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-022.pdf}, backupurlpdf = {http://www.st.ewi.tudelft.nl/~eelco/papers/UU-CS-2005-022.pdf}, pubcat = {journal}, project = {Stratego and TraCE}, category = {key and refereed}, note = {Special issue on Reduction Strategies in Rewriting and Programming}, editor = {Bernhard Gramlich and Salvador Lucas}, class = {Wet}, urlbib = {Vis05.survey.bib}, } @inproceedings{Vis08, author = {Eelco Visser}, title = {{WebDSL}: {A} Case Study in Domain-Specific Language Engineering}, booktitle = {International Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2007)}, pages = {291--373}, publisher = {Springer}, address = {Heidelberg}, month = {October}, year = {2008}, editor = {R. L{\"a}mmel and J. Visser and J. Saraiva}, volume = {5235}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, isbn = {978-3-540-88642-6}, urldoi = {http://dx.doi.org/10.1007/978-3-540-88643-3_7}, urlpdf = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-023.pdf}, urlblog = {http://blog.eelcovisser.net/index.php?/archives/45-Domain-Specific-Language-Engineering.html}, project = {Stratego and XT and SDF and MoDSE and TFA}, pubcat = {proceedings}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {Vis08.bib}, } @inproceedings{Vis95.acc, author = {Visser, Eelco}, title = {A Case Study in Optimizing Parsing Schemata by Disambiguation Filters}, booktitle = {Proceedings Accolade95}, editor = {S. Fischer and M. Trautwein}, year = {1995}, month = {September}, pages = {153--167}, organization = {The Dutch Graduate School in Logic}, address = {Amsterdam}, pubcat = {workshop and superseded}, pubcat = {published techreport}, url = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9507.ps}, abstract = {Disambiguation methods for context-free grammars enable concise specification of programming languages by ambiguous grammars. A disambiguation filter is a function that selects a subset from a set of parse trees---the possible parse trees for an ambiguous sentence. The framework of filters provides a declarative description of disambiguation methods independent of parsing. Although filters can be implemented straightforwardly as functions that prune the parse forest produced by some generalized parser, this can be too inefficient for practical applications. In this paper the optimization of parsing schemata, a framework for high-level description of parsing algorithms, by disambiguation filters is considered in order to find efficient parsing algorithms for declaratively specified disambiguation methods. As a case study the optimization of the parsing schema of Earley's parsing algorithm by two filters is investigated. The main result is a technique for generation of efficient LR-like parsers for ambiguous grammars modulo priorities.}, project = {SDF}, category = {refereed}, urlbib = {Vis95.acc.bib}, } @inproceedings{Vis95.psd, author = {Visser, Eelco}, title = {Polymorphic Syntax Definition (Extended Abstract)}, booktitle = {Algebraic Methods in Language Processing (AMILP 1995)}, editor = {A. {Nij\-holt} and G. Scollo and R. Steetskamp}, year = {1995}, month = {December}, series = {Twente Workshops in Language Technology}, volume = {10}, pages = {43--54}, publisher = {Twente University of Technology}, address = {Enschede, The Netherlands}, url = {http://adam.wins.uva.nl/~visser/syntax/papers/psd/}, abstract = {Context-free grammars are used in several algebraic specification formalisms instead of first-order signatures for the definition of the structure of algebras, because grammars provide better notation than signatures. The rigidity of these first-order structures enforces a choice between strongly typed structures with little genericity or generic operations over untyped structures. In two-level signatures the second level defines the algebra of types used at the first level. Two-level grammars are the grammatical counterpart of two-level signatures. This paper discusses the correspondence between context-free grammars and first-order signatures, the extension of these to two-level grammars and signatures and shows how two-level grammars can be used for polymorphic syntax definition and the problems there are for the usage of two-level grammars as signatures in algebraic specification formalisms.}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis95-AMILP.ps}, pubcat = {workshop and superseded}, project = {SDF}, category = {refereed}, urlbib = {Vis95.psd.bib}, } @inproceedings{Vis95.sdf, author = {Eelco Visser}, title = {A Family of Syntax Definition Formalisms}, booktitle = {{ASF+SDF 1995}. A Workshop on Generating Tools from Algebraic Specifications}, editor = {{\sortunder{Brand}}van den Brand, M. G. J. and others}, year = {1995}, month = {May}, pages = {89--126}, publisher = {Technical Report P9504, Programming Research Group, University of Amsterdam}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9504-7.ps}, abstract = {In this paper we design a syntax definition formalism as a family of formalisms. Starting with a small kernel, several features for syntax definition are designed orthogonally to each other. This provides a framework for constructing new formalisms by adapting and extending old ones. The formalism is developed with the algebraic specification formalism ASF+SDF. It provides the following features: lexical and context-free syntax, variables, disambiguation by priorities, regular expressions, character classes and modular definitions. New are the uniform treatment of lexical syntax, context-free syntax and variables, the treatment of regular expressions by normalization yielding abstract syntax without auxiliary sorts, regular expressions as result of productions and modules with hidden imports and renamings.}, pubcat = {workshop}, project = {ASF+SDF and SDF}, category = {refereed}, urlbib = {Vis95.sdf.bib}, } @techreport{Vis97.cc, author = {Visser, Eelco}, title = {Character Classes}, year = {1997}, month = {August}, number = {P9708}, institution = {Programming Research Group, University of Amsterdam}, url = {http://adam.wins.uva.nl/~visser/syntax/sdf/charclasses/}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9708.ps}, pubcat = {techreport}, project = {ASF+SDF and SDF}, category = {non-refereed}, urlbib = {Vis97.cc.bib}, } @incollection{Vis97.ccg, author = {Visser, Eelco}, title = {From Context-free Grammars with Priorities to Character Class Grammars}, year = {1997}, month = {November}, booktitle = {Liber Amicorum Paul Klint}, publisher = {CWI}, optpages = {}, address = {Amsterdam}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9717.ps}, pubcat = {techreport}, project = {ASF+SDF and SDF}, category = {non-refereed}, urlbib = {Vis97.ccg.bib}, } @inproceedings{Vis97.opt, author = {Visser, Eelco}, title = {A Case Study in Optimizing Parsing Schemata by Disambiguation Filters}, booktitle = {International Workshop on Parsing Technology (IWPT 1997)}, year = {1997}, month = {September}, pages = {210--224}, organization = {Massachusetts Institute of Technology}, address = {Boston, USA}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9507.ps}, pubcat = {workshop}, project = {SDF}, category = {refereed}, urlbib = {Vis97.opt.bib}, } @techreport{Vis97.sdf, author = {Visser, Eelco}, title = {A Family of Syntax Definition Formalisms}, year = {1997}, month = {July}, number = {P9706}, institution = {Programming Research Group, University of Amsterdam}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9706.ps}, url = {http://www.wins.uva.nl/pub/programming-research/reports/1997/P9706.ps}, pubcat = {techreport}, project = {ASF+SDF and SDF}, category = {non-refereed}, urlbib = {Vis97.sdf.bib}, } @techreport{Vis97.sglr, author = {Visser, Eelco}, title = {Scannerless Generalized-{LR} Parsing}, year = {1997}, month = {July}, number = {P9707}, institution = {Programming Research Group, University of Amsterdam}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/P9707.ps}, url = {http://www.wins.uva.nl/pub/programming-research/reports/1997/P9707.ps}, pubcat = {techreport}, project = {SDF}, category = {key and non-refereed}, urlbib = {Vis97.sglr.bib}, } @phdthesis{Vis97.thesis, author = {Visser, Eelco}, title = {Syntax Definition for Language Prototyping}, year = {1997}, month = {September}, school = {University of Amsterdam}, url = {http://swerl.tudelft.nl/bin/view/EelcoVisser/SyntaxDefinitionForLanguagePrototyping}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis97.ps}, pubcat = {phdthesis}, project = {ASF+SDF and SDF}, category = {key and refereed}, supervisor = {Paul Klint}, urlbib = {Vis97.thesis.bib}, } @article{Vis98.psd, author = {Visser, Eelco}, title = {Polymorphic Syntax Definition}, journal = {Theoretical Computer Science}, year = 1998, volume = 199, pages = {57--86}, urldoi = {http://dx.doi.org/10.1016/S0304-3975(97)00268-5}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis98.ps}, pubcat = {journal}, project = {ASF+SDF and SDF}, category = {refereed}, urlbib = {Vis98.psd.bib}, } @inproceedings{Vis99, author = {Visser, Eelco}, title = {Strategic Pattern Matching}, booktitle = {Rewriting Techniques and Applications (RTA 1999)}, pages = {30--44}, year = 1999, editor = {P. Narendran and M. Rusinowitch}, volume = 1631, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, address = {Trento, Italy}, month = {July}, publisher = {Springer-Verlag}, urlps = {http://www.st.ewi.tudelft.nl/~eelco/papers/Vis99.ps}, pubcat = {conference}, project = {Stratego}, category = {refereed}, acceptance = {27/53 = 50\%}, urlbib = {Vis99.bib}, } @inproceedings{Vis99.boot, author = {Visser, Eelco}, title = {A Bootstrapped Compiler for Strategies (Extended Abstract)}, booktitle = {Strategies in Automated Deduction (STRATEGIES 1999)}, pages = {73--83}, year = 1999, editor = {B. Gramlich and H. Kirchner and F. Pfenning}, address = {Trento, Italy}, month = {July 5}, abstract = {Stratego is a language for the specification of program transformation based on rewriting strategies. The Stratego compiler is based on program transformation; it transforms a high-level Stratego specification via several intermediate representations to C. Several optimizations are performed on the intermediate representations. The compiler is bootstrapped, i.e., it is specified in Stratego itself. In this paper we give an overview of the Stratego compiler: architecture; issues in the compilation of strategies; some high-lights of the specification; and experience with using strategies for writing program transformations.}, pubcat = {workshop and semi-refereed and position paper}, project = {Stratego}, category = {semi-refereed}, urlbib = {Vis99.boot.bib}, } @inproceedings{VV08, author = {Sander D. Vermolen and Eelco Visser}, title = {Heterogeneous Coupled Evolution of Software Languages}, booktitle = {Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems (MODELS 2008)}, editor = {K. Czarnecki and I. Ober and J.-M. Bruel and A. Uhl and M. V{\"o}lter}, series = {Lecture Notes in Computer Science}, issn = {0302-9743}, volume = {5301}, pages = {630-644}, year = {2008}, month = {September}, publisher = {Springer}, address = {Heidelberg}, location = {Toulouse, France}, pubcat = {conference}, project = {MoDSE and SDF and Stratego and WebDSL}, acceptance = {21\%}, urldoi = {http://dx.doi.org/10.1007/978-3-540-87875-9_44}, url = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-028.pdf}, urlmodels = {http://www.modelsconference.org/}, isbn = {978-3-540-87874-2}, group = {SE}, researchcode = {I-ISS-07}, urlbib = {VV08.bib}, } @mastersthesis{Wes02, author = {Hedzer Westra}, title = {Configurable Transformations for High-Quality Automatic Program Improvement. {CobolX}: a case study}, school = {Utrecht University}, year = 2002, month = {February}, address = {Utrecht, The Netherlands}, urlpdf = {http://www.cs.uu.nl/people/visser/ftp/Wes02.pdf}, project = {Stratego and XT}, advisor = {Eelco Visser}, urlbib = {Wes02.bib}, } @mastersthesis{Wij03, author = {Jonne van Wijngaarden}, title = {Code Generation from a Domain Specific Language. {D}esigning and Implementing Complex Program Transformations}, school = {Utrecht University}, year = 2003, address = {Utrecht, The Netherlands}, month = {July}, note = {INF/SCR-03-29}, urlpdf = {http://www.cs.uu.nl/~visser/ftp/Wij03.pdf}, project = {Stratego}, advisor = {Eelco Visser}, urlbib = {Wij03.bib}, } @techreport{WV03, author = {{\sortunder{Wijngaarden}}van Wijngaarden, Jonne and Eelco Visser}, title = {Program Transformation Mechanics. A Classification of Mechanisms for Program Transformation with a Survey of Existing Transformation Systems.}, institution = {Institute of Information and Computing Sciences, Utrecht University.}, year = 2003, number = {UU-CS-2003-048}, month = {May}, url = {http://www.cs.uu.nl/research/techreps/UU-CS-2003-048.html}, urlpdf = {http://www.cs.uu.nl/research/techreps/repo/CS-2003/2003-048.pdf}, urlinfo = {http://www.program-transformation.org/Transform/TransformationMechanics}, pubcat = {techreport}, project = {Stratego}, category = {non-refereed}, urlbib = {WV03.bib}, } @misc{WWW-SDF, key = {sdf}, title = {\url{http://www.syntax-definition.org}}, pubcat = {website}, project = {SDF}, category = {non-refereed}, urlbib = {WWW-SDF.bib}, } @misc{WWW-Stratego, key = {stratego}, title = {\url{http://www.stratego-language.org}}, pubcat = {website}, project = {Stratego}, category = {non-refereed}, urlbib = {WWW-Stratego.bib}, } @misc{WWW-Stratego-Documentation, key = {www stratego}, title = {\url{http://strategoxt.org/Stratego/StrategoDocumentation}}, pubcat = {website}, project = {Stratego}, category = {non-refereed}, url = {http://strategoxt.org/Stratego/StrategoDocumentation}, urlbib = {WWW-Stratego-Documentation.bib}, } @misc{WWW-Tiger, key = {www stratego}, title = {\url{http://www.stratego-language.org/Tiger}}, pubcat = {website}, project = {Stratego and XT}, category = {non-refereed}, urlbib = {WWW-Tiger.bib}, } @misc{WWW-XT, key = {www xt}, title = {\url{http://www.program-transformation.org/xt/}}, pubcat = {website}, project = {XT}, category = {non-refereed}, urlbib = {WWW-XT.bib}, } @inproceedings{WY05, author = {D. G. Waddington and B. Yao}, title = {High Fidelity {C++} Code Transformation}, booktitle = {Proceedings of the 5th workshop on Language Descriptions, Tools and Applications (LDTA 2005)}, optcrossref = {}, optkey = {}, optpages = {}, year = {2005}, opteditor = {}, optvolume = {}, optnumber = {}, series = {Electronic Notes in Theoretical Computer Science}, address = {Edinburgh University, UK}, month = {April 3}, optorganization = {}, optpublisher = {}, optnote = {}, optannote = {}, project = {Proteus}, urlldta = {http://www-i2.informatik.rwth-aachen.de/Events/LDTA2005/}, urlproteus = {http://www.bell-labs.com/user/dwaddington/proteus/index.htm}, project = {Stratego and XT}, urlbib = {WY05.bib}, }