
@preamble{{\def\sortunder#1{}}},

@proceedings{ASF+SDF95,
  sortkey   = 1995,
  title     = {Proceedings of the Workshop on Generating Tools from Algebraic Specifications (ASF+SDF'95)},
  editor    = {{\sortunder{Brand}}van den Brand, M. G. J. and van Deursen, A. and Dinesh, T. B. and Kamperman, J. F. Th. and Visser, E.},
  year      = 1995,
  month     = {May},
  publisher = {Technical Report P9504, Programming Research Group, University of Amsterdam},
  url       = {http://ftp.wins.uva.nl/pub/programming-research/reports/1995/P9504/},
  project   = {ASF+SDF},
  pubcat    = {workshop proceedings and techreport},
  urlbib    = {ASF+SDF95.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'07)},
  pages           = {82--96},
  year            = {2007},
  editor          = {A. Sloane and A. Johnstone},
  address         = {Braga, Portugal},
  month           = {March},
  urlpdf          = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-004.pdf},
  project         = {Stratego and XT and TraCE and SDF},
  urlbib          = {BBV07.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},
  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'07)},
  year            = {2007},
  editor          = {J. Lawall},
  month           = {October},
  publisher       = {ACM SIGPLAN},
  note            = {(To appear)},
  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},
}

@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'05)},
  volume      = {4143},
  series      = {Lecture Notes in Computer Science},
  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'00)},
  year      = 2000,
  address   = {Bergen, Norway},
  month     = {October},
  pubcat    = {workshop and position paper},
  project   = {Stratego and CodeBoost},
  urlbib    = {BHV00.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'03)},
  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'06)},
  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},
  year      = {2008},
  publisher = {Elsevier},
  note      = {(To appear)},
  project   = {Stratego and XT and TraCE},
  category  = {journal},
  pubcat    = {journal},
  urlbib    = {BKVV08.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'02)},
  pages      = {143--158},
  year       = 2002,
  editor     = {N. Horspool},
  volume     = 2304,
  series     = {Lecture Notes in Computer Science},
  address    = {Grenoble, France},
  month      = {April},
  publisher  = {Springer-Verlag},
  urlpdf     = {http://www.cs.uu.nl/people/visser/ftp/BSVV02.pdf},
  urlpsgz    = {http://www.cs.uu.nl/people/visser/ftp/BSVV02.ps.gz},
  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'06)},
  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},
  opturlpdf  = {http://www.cs.uu.nl/~visser/ftp/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.cs.uu.nl/people/visser/ftp/BV01.pdf},
  urltr       = {http://www.cs.uu.nl/research/techreps/UU-CS-2001-042.html},
  pubcat      = {techreport},
  project     = {Stratego},
  urlbib      = {BV01.bib},
}

@inproceedings{BV02,
  author     = {Martin Bravenboer and Eelco Visser},
  title      = {Rewriting Strategies for Instruction Selection},
  booktitle  = {Rewriting Techniques and Applications (RTA'02)},
  pages      = {237-251},
  year       = 2002,
  editor     = {S. Tison},
  volume     = 2378,
  series     = {Lecture Notes in Computer Science},
  address    = {Copenhagen, Denmark},
  month      = {July},
  publisher  = {Springer-Verlag},
  urlpdf     = {http://www.cs.uu.nl/people/visser/ftp/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'04)},
  pages      = {365--383},
  year       = 2004,
  editor     = {Douglas C. Schmidt},
  address    = {Vancouver, Canada},
  month      = {October},
  publisher  = {ACM Press},
  urlacm     = {http://portal.acm.org/citation.cfm?id=1028976.1029007},
  urlinfo    = {http://www.cs.uu.nl/groups/ST/Visser/ConcreteSyntaxForObjects},
  urlpdf     = {http://www.cs.uu.nl/~visser/ftp/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'04)},
  year      = 2004,
  editor    = {M. Haveraaen and others},
  month     = {October},
  note      = {Position paper},
  urlpdf    = {http://www.cs.uu.nl/~visser/ftp/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{BV07,
  author          = {Martin Bravenboer and Eelco Visser},
  title           = {Designing Syntax Embeddings and Assimilations for Language Libraries},
  booktitle       = {Workshop on Language Engineering (ATEM'07)},
  year            = {2007},
  address         = {Nashville, USA},
  month           = {October},
  note            = {(to appear)},
  project         = {Stratego and XT and SDF and TraCE and MoDSE and TFA},
  urlbib          = {BV07.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         = {ftp://ftp.wins.uva.nl/pub/programming-research/reports/1994/P9420.ps.Z},
  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.},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/P9420.ps.gz},
  pubcat      = {techreport},
  project     = {SDF},
  urlbib      = {BV94.bib},
}

@inproceedings{BV95.tapsoft,
  author    = {{\sortunder{Brand}}van den Brand, Mark G. J. and Visser, Eelco},
  title     = {The {ASF+SDF} {M}eta-environment: Documentation Tools for Free!},
  booktitle = {Theory and Practice of Software Development (TAPSOFT'95)},
  editor    = {P. D. Mosses and M. Nielsen and M. I. Schwartzbach},
  year      = {1995},
  month     = {May},
  series    = {Lecture Notes in Computer Science},
  volume    = {915},
  pages     = {803--804},
  publisher = {Springer-Verlag},
  address   = {Aarhus, Denmark},
  note      = {Tool demonstration},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/BV95.ps.gz},
  url       = {http://www.brics.aau.dk/tapsoft/PP/brand.html},
  pubcat    = {conference and tool description},
  project   = {Pretty-Printing},
  category  = {refereed},
  urlbib    = {BV95.tapsoft.bib},
}

@article{BV96,
  author   = {{\sortunder{Brand}}van den Brand, Mark G. J. and Visser, Eelco},
  title    = {Generation of Formatters for Context-free Languages},
  journal  = {ACM Transactions on Software Engineering and Methodology},
  year     = {1996},
  month    = {January},
  volume   = {5},
  number   = {1},
  pages    = {1--41},
  urlacmdl = {http://www.acm.org/pubs/toc/TOC/1049-331X/Vol5.html},
  urlpsgz  = {http://www.cs.uu.nl/people/visser/ftp/BV96.ps.gz},
  pubcat   = {journal},
  project  = {Pretty-Printing},
  category = {key and refereed},
  urlbib   = {BV96.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'05)},
  pages       = {157--172},
  year        = 2005,
  editor      = {Robert Gl{\"u}ck and Mike Lowry},
  volume      = 3676,
  series      = {Lecture Notes in Computer Science},
  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{DBV05,
  author    = {Eelco Dolstra and Martin Bravenboer and Eelco Visser},
  title     = {Service Configuration Management},
  booktitle = {12th International Workshop on Software Configuration Management (SCM-12)},
  pages     = {83--98},
  year      = 2005,
  editor    = {E. James Whitehead, Jr. and Annita Persson Dahlqvist},
  address   = {Lisbon, Portugal},
  month     = {September},
  publisher = {ACM},
  project   = {Nix and TraCE},
  urlpdf    = {http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-039.pdf},
  urltr     = {http://www.cs.uu.nl/research/techreps/UU-CS-2005-039.html},
  urlscm    = {http://www.cs.ucsc.edu/~ejw/scm12/},
  pubcat    = {proceedings},
  class     = {Wet},
  urlbib    = {DBV05.bib},
}

@inproceedings{DFJV03,
  author    = {Eelco Dolstra and Gert Florijn and Merijn de Jonge and Eelco Visser},
  title     = {Capturing Timeline Variability with Transparent Configuration Environments},
  booktitle = {IEEE Workshop on Software Variability Management (SVM'03)},
  year      = 2003,
  editor    = {Jan Bosch and Peter Knauber},
  address   = {Portland, Oregon},
  month     = {May},
  publisher = {IEEE},
  url       = {http://www.cs.uu.nl/research/techreps/UU-CS-2003-051.html},
  urlpdf    = {http://www.cs.uu.nl/research/techreps/repo/CS-2003/2003-051.pdf},
  urlinfo   = {http://www.cs.uu.nl/groups/ST/Trace/CapturingTimelineVariabilityWithTransparentConfigurationEnvironments},
  pubcat    = {workshop and position paper},
  project   = {TraCE and Nix},
  category  = {semi-refereed},
  urlbib    = {DFJV03.bib},
}

@article{DFJV04,
  author   = {E. Dolstra and G. Florijn and M. de Jonge and E. Visser},
  title    = {Transparantie in variabiliteit: Heldere keuzes in een eenduidige configuratieomgeving},
  journal  = {Informatie},
  pages    = {18--21},
  month    = feb,
  volume   = {46},
  number   = {1},
  year     = {2004},
  urlpdf   = {http://www.cs.uu.nl/~visser/ftp/DFJV04.pdf},
  project  = {TraCE},
  pubcat   = {non-refereed},
  category = {non-refereed},
  urlbib   = {DFJV04.bib},
}

@inproceedings{DFV03,
  author       = {Eelco Dolstra and Gert Florijn and Eelco Visser},
  title        = {Timeline Variability: The Variability of Binding Time of Variation Points},
  booktitle    = {Workshop on Software Variability Modeling (SVM'03)},
  year         = 2003,
  number       = {IWI preprint 2003-7-01},
  address      = {Groningen, The Netherlands},
  organization = {Reseach Institute of Computer Science and Mathematics, University of Groningen},
  url          = {http://www.cs.uu.nl/research/techreps/UU-CS-2003-052.html},
  urlinfo      = {http://www.cs.uu.nl/groups/ST/Trace/TimelineVariabilityTheVariabilityOfBindingTimeOfVariationPoints},
  urlpdf       = {http://www.cs.uu.nl/research/techreps/repo/CS-2003/2003-052.pdf},
  pubcat       = {workshop and position paper},
  project      = {TraCE},
  category     = {semi-refereed},
  urlbib       = {DFV03.bib},
}

@inproceedings{DJV04.lisa,
  author       = {Eelco Dolstra and Merijn de Jonge and Eelco Visser},
  title        = {Nix: A Safe and Policy-Free System for Software Deployment},
  booktitle    = {18th Large Installation System Administration Conference (LISA '04)},
  pages        = {79-92},
  year         = 2004,
  editor       = {Lee Damon},
  address      = {Atlanta, Georgia, USA},
  month        = {November},
  organization = {USENIX},
  pubcat       = {conference},
  project      = {TraCE},
  category     = {refereed},
  urlpdf       = {http://www.cs.uu.nl/research/techreps/repo/CS-2004/2004-045.pdf},
  urllisa      = {http://www.usenix.org/events/lisa04/},
  acceptance   = {22/70 = 31%},
  urlbib       = {DJV04.lisa.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.cs.uu.nl/people/visser/ftp/DV01.pdf},
  pubcat      = {techreport},
  project     = {Stratego},
  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'02)},
  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},
  url        = {http://www.cs.uu.nl/people/visser/ftp/DV02.pdf},
  pubcat     = {workshop},
  project    = {Stratego and TFA},
  category   = {refereed},
  acceptance = {6/14 = 42\%},
  urlbib     = {DV02.bib},
}

@inproceedings{DV02-csmr,
  author     = {Arie van Deursen and Eelco Visser},
  title      = {The Reengineering Wiki},
  booktitle  = {Proceedings 6th European Conference on Software Maintenance and Reengineering (CSMR'02).},
  year       = 2002,
  pages      = {217--220},
  publisher  = {IEEE Computer Society},
  url        = {http://www.program-transformation.org/re/},
  urlinfo    = {http://www.program-transformation.org/Transform/ReengineeringWikiPaper},
  urlpdf     = {http://www.cs.uu.nl/people/visser/ftp/DV02-csmr.pdf},
  pubcat     = {conference},
  project    = {Transformation Wiki},
  category   = {refereed},
  acceptance = {28/57 = 49\%},
  urlbib     = {DV02-csmr.bib},
}

@inproceedings{DVJ04,
  author       = {Eelco Dolstra and Eelco Visser and Merijn de Jonge},
  title        = {Imposing a Memory Management Discipline on Software Deployment},
  booktitle    = {26th International Conference on Software Engineering (ICSE'04)},
  pages        = {583--592},
  year         = 2004,
  editor       = {J. Estublier and D. Rosenblum},
  address      = {Edinburgh, Scotland},
  month        = {May},
  organization = {IEEE Computer Society},
  pubcat       = {conference},
  urlinfo      = {http://www.cs.uu.nl/groups/ST/Trace/ImposingAMemoryManagementDisciplineOnSoftwareDeployment},
  urlpdf       = {http://www.cs.uu.nl/research/techreps/repo/CS-2004/2004-044.pdf},
  project      = {TraCE},
  category     = {key and refereed},
  acceptance   = {59/436 = 13\%},
  urlbib       = {DVJ04.bib},
}

@inproceedings{DVW07,
  author          = {Arie van Deursen and Eelco Visser and Jos Warmer},
  title           = {Model-Driven Software Evolution: A Research Agenda},
  booktitle       = {CSMR Workshop on Model-Driven Software Evolution (MoDSE'07)},
  pages           = {41--49},
  year            = {2007},
  editor          = {D. Tamzalit},
  address         = {Amsterdam, The Netherlands},
  month           = {March},
  urlpdf          = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-006.pdf},
  project         = {MoDSE},
  urlbib          = {DVW07.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},
  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},
  publisher   = {Spinger-Verlag},
  pubcat      = {conference},
  url         = {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},
}

@proceedings{GPCE04,
  title       = {Proceedings of the Third International Conference on Generative Programming and Component Engineering (GPCE 2004)},
  year        = 2004,
  editor      = {G. Karsai and E. Visser},
  volume      = 3286,
  series      = {Lecture Notes in Computer Science},
  address     = {Vancouver, Canada},
  month       = {October},
  publisher   = {Springer},
  urlspringer = {http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=3286&issue=preprint},
  urlwebsite  = {http://www.program-transformation.org/Gpce},
  urlbib      = {GPCE04.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},
  urlpsgz  = {http://www.cs.uu.nl/people/visser/ftp/JV2000-TR.ps.gz},
  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'01)},
  urlpdf    = {http://www.cs.uu.nl/people/visser/ftp/JV01.pdf},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/JV01.ps.gz},
  pubcat    = {workshop},
  project   = {Stratego},
  category  = {refereed},
  urlbib    = {JV01.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-2004/2003-50.pdf},
  project     = {Stratego},
  pubcat      = {tecnical report},
  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'01)},
  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},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/JVV01.ps.gz},
  urlentcs  = {http://dx.doi.org/10.1016/S1571-0661(04)80921-6},
  pubcat    = {workshop},
  project   = {Stratego and XT},
  category  = {key and refereed},
  urlbib    = {JVV01.bib},
}

@techreport{JVV01-CSD,
  author      = {Merijn de Jonge and Eelco Visser and Joost Visser},
  title       = {Collaborative Software Development},
  institution = {CWI},
  year        = 2001,
  number      = {SEN-R0113},
  address     = {Amsterdam, The Netherlands},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/JVV01-CSD.ps.gz},
  pubcat      = {techreport},
  project     = {TraCE},
  urlbib      = {JVV01-CSD.bib},
}

@inproceedings{KV06,
  author     = {Karl Trygve Kalleberg and Eelco Visser},
  title      = {Combining Aspect-Oriented and Strategic Programming},
  booktitle  = {Workshop on Rule-Based Programming (RULE'05)},
  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\%},
  urlbib     = {KV06.bib},
}

@inproceedings{KV07.pom,
  author          = {Karl Trygve Kalleberg and Eelco Visser},
  title           = {Fusing a Transformation Language with an Open Compiler},
  booktitle       = {Seventh Workshop on Language Descriptions, Tools, and Applications (LDTA'07)},
  pages           = {18--31},
  year            = {2007},
  editor          = {A. Sloane and A. Johnstone},
  address         = {Braga, Portugal},
  month           = {March},
  project         = {Stratego and XT and TFA},
  urlbib          = {KV07.pom.bib},
}

@inproceedings{KV07.spoofax,
  author          = {Karl Trygve Kalleberg and Eelco Visser},
  title           = {Spoofax: An Interactive Development Environment for Program Transformation with Stratego/XT},
  booktitle       = {Seventh Workshop on Language Descriptions, Tools, and Applications (LDTA'07)},
  pages           = {47--50},
  year            = {2007},
  editor          = {A. Sloane and A. Johnstone},
  address         = {Braga, Portugal},
  month           = {March},
  project         = {Stratego and XT and SDF and TFA},
  pubcat          = {conference and tool description},
  urlbib          = {KV07.spoofax.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},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/P9426.ps.gz},
  urlpsz    = {ftp://ftp.wins.uva.nl/pub/programming-research/reports/1994/P9426.ps.Z},
  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{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'97)},
  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/},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/LV97.ps.gz},
  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'03)},
  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},
}

@inproceedings{MetaEnv01,
  author     = {{\sortunder{Brand}}van den Brand, M. G. J. and J. Heering and H.A. de Jong and M. de Jonge and T. Kuipers and P. Klint and L. Moonen and P.A. Olivier and J.S. Scheerder and J.J. Vinju and E. Visser and J. Visser},
  title      = {The {Asf+Sdf} {Meta-Environment}: a component-based language laboratory},
  booktitle  = {Compiler Construction (CC'01)},
  pages      = {365--368},
  year       = 2001,
  editor     = {R. Wilhelm},
  volume     = 2027,
  series     = {Lecture Notes in Computer Science},
  address    = {Genova, Italy},
  month      = {April},
  publisher  = {Springer-Verlag},
  urlpdf     = {http://www.cs.uu.nl/people/visser/ftp/ASFSDF01.pdf},
  urlpsgz    = {http://www.cs.uu.nl/people/visser/ftp/ASFSDF01.ps.gz},
  urlpdf     = {http://www.cs.uu.nl/people/visser/ftp/ASFSDF01.pdf},
  pubcat     = {conference and tool description},
  project    = {ASF+SDF},
  category   = {refereed},
  acceptance = {22/69 = 31\%},
  urlbib     = {MetaEnv01.bib},
}

@inproceedings{OV02,
  author     = {Karina Olmos and Eelco Visser},
  title      = {Strategies for Source-to-Source Constant Propagation},
  booktitle  = {Workshop on Reduction Strategies (WRS'02)},
  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.cs.uu.nl/people/visser/ftp/OV02.pdf},
  pubcat     = {workshop},
  project    = {Stratego},
  category   = {refereed},
  acceptance = {9/10 = 90%},
  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'03)},
  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'05)},
  pages       = {204--220},
  year        = 2005,
  editor      = {Rastislav Bodik},
  volume      = 3443,
  series      = {Lecture Notes in Computer Science},
  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},
}

@misc{PtWiki,
  author       = {Eelco Visser and others},
  title        = {{The Program Transformation Wiki}},
  howpublished = {\url{http://www.program-transformation.org}},
  project      = {Transformation Wiki},
  category     = {non-refereed},
  urlbib       = {PtWiki.bib},
}

@proceedings{RULE02,
  title     = {Proceedings of the 2002 ACM SIGPLAN Workshop on Rule-Based Programming (RULE'02)},
  year      = 2002,
  editor    = {Bernd Fischer and Eelco Visser},
  address   = {Pittsburgh, Pennsylvania, USA},
  month     = {October 5,},
  publisher = {Association for Computing Machinery},
  url       = {http://www.program-transformation.org/RULE},
  urlpdf    = {http://www.cs.uu.nl/~visser/ftp/rule02-editorial.pdf},
  pubcat    = {workshop proceedings},
  category  = {refereed},
  urlbib    = {RULE02.bib},
}

@proceedings{RV07,
  title     = {Proceedings of the 2007 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation},
  year      = 2007,
  editor    = {G. Ramalingam and E. Visser},
  address   = {Nice, France},
  month     = {January},
  publisher = {ACM},
  isbn      = {978-1-59593-620-2},
  urlbib    = {RV07.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://nix.cs.uu.nl/dist/stratego/strategoxt-manual-0.16/manual/},
  project      = {Stratego and XT and TraCE},
  category     = {documentation},
  pubcat       = {documentation},
  class        = {Wet non},
  urlbib       = {StrategoDoc05.bib},
}

@proceedings{SUD01,
  title     = {Proceedings of the Second Stratego Users Day (SUD'01)},
  year      = 2001,
  editor    = {Eelco Visser},
  address   = {Utrecht, The Netherlands},
  month     = {February},
  publisher = {Institute for Information and Computing Sciences, Utrecht University},
  urlpdf    = {http://www.cs.uu.nl/people/visser/ftp/SUD01.pdf},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/SUD01.ps.gz},
  pubcat    = {workshop proceedings and techreport and non-refereed},
  category  = {workshop proceedings},
  urlbib    = {SUD01.bib},
}

@proceedings{SUD05,
  title        = {Proceedings of the Sixth Stratego Users Day},
  year         = 2005,
  editor       = {Karl Trygve Kalleberg and Eelco Visser},
  month        = {May},
  organization = {Institute for Information and Computing Sciences, Utrecht University},
  note         = {Technical Report UU-CS-2005-053},
  pubcat       = {workshop proceedings and techreport and non-refereed},
  category     = {workshop proceedings and non-refereed},
  class        = {Wet non},
  urlbib       = {SUD05.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'98)},
  address   = {Pont-{\`a}-Mousson, France},
  publisher = {Elsevier Science Publishers},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/VB98.ps.gz},
  pubcat    = {workshop},
  project   = {Stratego},
  category  = {refereed},
  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'98)},
  pages      = {13--26},
  year       = 1998,
  month      = {September},
  publisher  = {ACM Press},
  urlpsgz    = {http://www.cs.uu.nl/~visser/ftp/VBT98.ps.gz},
  pubcat     = {conference},
  project    = {Stratego},
  category   = {key and refereed},
  acceptance = {30/77, 38\%},
  urlbib     = {VBT98.bib},
}

@inproceedings{Vis00,
  author    = {Eelco Visser},
  title     = {Language Independent Traversals for Program Transformation},
  booktitle = {Workshop on Generic Programming (WGP'00)},
  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},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/Vis00.ps.gz},
  pubcat    = {workshop},
  project   = {Stratego},
  category  = {key and refereed},
  urlbib    = {Vis00.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'01)},
  pages       = {357--361},
  year        = 2001,
  editor      = {A. Middeldorp},
  volume      = 2051,
  series      = {Lecture Notes in Computer Science},
  month       = {May},
  publisher   = {Springer-Verlag},
  urlpdf      = {http://www.cs.uu.nl/people/visser/ftp/Vis01.pdf},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/Vis01.ps.gz},
  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'01)},
  urlpdf    = {http://www.cs.uu.nl/people/visser/ftp/Vis01-rule.pdf},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/Vis01-rule.ps.gz},
  month     = {September},
  pubcat    = {workshop},
  project   = {Stratego},
  category  = {key and refereed},
  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'01)},
  urlpdf    = {http://www.cs.uu.nl/people/visser/ftp/Vis01-WRS.pdf},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/Vis01-WRS.ps.gz},
  pubcat    = {workshop},
  project   = {Stratego},
  category  = {refereed},
  urlbib    = {Vis01.wrs.bib},
}

@inproceedings{Vis02.gpce,
  author     = {Eelco Visser},
  title      = {Meta-Programming with Concrete Object Syntax},
  booktitle  = {Generative Programming and Component Engineering (GPCE'02)},
  pages      = {299--315},
  year       = 2002,
  editor     = {Don Batory and Charles Consel and Walid Taha},
  volume     = 2487,
  series     = {Lecture Notes in Computer Science},
  address    = {Pittsburgh, PA, USA},
  month      = {October},
  publisher  = {Springer-Verlag},
  urlpdf     = {http://www.cs.uu.nl/people/visser/ftp/Vis02-gpce.pdf},
  pubcat     = {conference},
  project    = {Stratego and XT and SDF},
  category   = {key and refereed},
  acceptance = {18/39 = 46\%},
  urlbib     = {Vis02.gpce.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},
  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://nix.cs.uu.nl/dist/stratego/bibtex-tools-0.2/},
  urlpdf       = {http://nix.cs.uu.nl/dist/stratego/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'05)},
  pages     = {3--12},
  year      = 2005,
  editor    = {Jens Krinke and Giulio Antoniol},
  address   = {Budapest, Hungary},
  month     = {October},
  publisher = {IEEE Computer Society Press},
  note      = {(Keynote paper)},
  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.cs.uu.nl/~visser/ftp/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{Vis07,
  author    = {Eelco Visser},
  title     = {Domain-Specific Language Engineering},
  booktitle = {Generative and Transformational Techniques in Software Engineering (GTTSE 2007)},
  editor    = {R. L\"ammel and J. Saraiva and J. Visser},
  pages     = {265--318},
  publisher = {Universidade do Minho},
  year      = {2007},
  address   = {Braga, Portugal},
  month     = {July},
  note      = {International Summer School GTTSE 2007, Pre-Proceedings},
  urlpdf    = {http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-017.pdf},
  urlblog   = {http://blog.eelcovisser.net/index.php?/archives/45-Domain-Specific-Language-Engineering.html},
  project   = {Stratego and XT and SDF and TraCE and MoDSE and TFA},
  urlbib    = {Vis07.bib},
}

@unpublished{Vis92,
  author  = {Visser, Eelco},
  title   = {Syntax and Static Semantics of {E}iffel. {A} Case Study in Algebraic Specification Techniques},
  year    = {1992},
  month   = {December},
  address = {Programming Research Group, University of Amsterdam},
  note    = {Unpublished technical report},
  url     = {ftp://ftp.cwi.nl/pub/gipe/reports/Vis92.ps.Z},
  urlpsgz = {http://www.cs.uu.nl/people/visser/ftp/Vis92.ps.gz},
  pubcat  = {unpublished techreport},
  project = {ASF+SDF},
  urlbib  = {Vis92.bib},
}

@mastersthesis{Vis93,
  author   = {Visser, Eelco},
  title    = {Combinatory Algebraic Specification \& Compilation of List Matching},
  year     = {1993},
  month    = {June},
  school   = {Department of Computer Science, University of Amsterdam},
  address  = {Amsterdam},
  abstract = {During the development of the ASF+SDF compiler it became clear that a simplification of the back-end could be achieved by eliminating associative lists and conditional equations in an early phase of compilation. In this thesis the transformation of conditional equational term rewrite systems with {\em associative lists} to term rewrite systems without lists is described by means of an algebraic specification. To make as much of the specification reusable the specification is written in a style called {\em Combinatory Algebraic Specification}. In this style it is possible to define polymorphic higher-order functions (or combinators) and use these as arguments to functions and as results of computations. Using this style a vast library of general purpose combinators is developed. The specification of the combinatory language, the library of combinators and the specification of the transformation are written in a {\em Literate Specification} style, meaning that the specification and the text explaining it are integrated.},
  urlpsgz  = {http://www.cs.uu.nl/people/visser/ftp/Vis93.ps.gz},
  url      = {http://www.wins.uva.nl/pub/programming-research/MasterTheses/visser.ps.Z},
  pubcat   = {mastersthesis},
  project  = {ASF+SDF},
  category = {non-refereed},
  urlbib   = {Vis93.bib},
}

@inproceedings{Vis95.sdf,
  author    = {Eelco Visser},
  title     = {A Family of Syntax Definition Formalisms},
  booktitle = {{ASF+SDF'95}. 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},
  url       = {http://ftp.wins.uva.nl/pub/programming-research/reports/1995/P9504/7.html},
  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.},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/P9504.ps.gz},
  pubcat    = {workshop},
  project   = {ASF+SDF and SDF},
  category  = {refereed},
  urlbib    = {Vis95.sdf.bib},
}

@incollection{Vis96.mls,
  author    = {Visser, Eelco},
  title     = {Multi-Level Specifications},
  booktitle = {Language Prototyping. An Algebraic Specification Approach},
  editor    = {A. van Deursen and J. Heering and P. Klint},
  year      = {1996},
  month     = {September},
  series    = {AMAST Series in Computing},
  volume    = {5},
  pages     = {105--196},
  publisher = {World Scientific},
  address   = {Singapore},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/P9604.ps.gz},
  url       = {http://adam.wins.uva.nl/~visser/types/mls/},
  abstract  = {This chapter introduces a modular, applicative, multi-level equational specification formalism that supports algebraic specification with user-definable type constructors, polymorphic functions and higher-order functions. Specifications consist of one or more levels numbered $0$ to $n$. Level~0 defines the object level terms. Level~1 defines the types used in the signature of level~0. In general, the terms used as types in level~$n$ are defined in level~$n+1$. This setup makes the algebra of types and the algebra of types of types, etc., user-definable. The applicative term structure makes functions first-class citizens and facilitates higher-order functions. The use of variables in terms used as types provides polymorphism (including higher-order polymorphism, i.e., abstraction over type constructors). Functions and variables can be overloaded. Specifications can be divided into modules. Modules can be imported at several levels by means of a specification lifting operation. Equations define the semantics of terms over a signature. The formalism also allows equations over types, by means of which many type systems can be described. The typechecker presented in this chapter does not take into account type equations. \par The specification, in {\sc Asf+Sdf}, of the syntax, type system and semantics of the formalism is presented in three stages: (1) untyped equational specifications (2) applicative one-level specifications (3) modular multi-level specifications. The definition of a typechecker for stages (2) and (3) is divided into four parts: (a) well-formedness judgements verifying type correctness of fully annotated terms and specifications, (b) non well-formedness rules giving descriptive error messages for the cases not covered under (a), (c) a type assignment function annotating the terms in a plain specification with types, and (d) a typechecking function which checks well-formedness after applying type assignment. These functions are defined uniformly for all levels of a specification. \par Aside of defining a new specification formalism, this chapter illustrates the use of {\sc Asf+Sdf} for the design and prototyping of sophisticated specification formalisms.},
  pubcat    = {book chapter},
  project   = {ASF+SDF},
  category  = {refereed},
  urlbib    = {Vis96.mls.bib},
}

@techreport{Vis96.ste,
  author      = {Visser, Eelco},
  title       = {Solving Type Equations in Multi-Level Specifications (preliminary version)},
  year        = {1996},
  month       = {May},
  number      = {P9606},
  institution = {Programming Research Group, University of Amsterdam},
  address     = {Amsterdam},
  url         = {http://ftp.wins.uva.nl/pub/programming-research/reports/1996/P9606.ps.Z},
  abstract    = {In first-order algebraic specification functions have types of the form $s_1\times\cdots\times{}s_n\to{}s_0$, where the $s_i$ are type constants. Such types exclude higher-order and polymorphic functions. In multi-level algebraic specification the structure of types used in function declarations is specified as an algebraic data type. If only free constructors are used in the types used in function declarations, type assignment is an extension of the Hindley/Milner algorithm to multiple levels of types. By means of equations over types, sophisticated type systems can be modeled in a simple and uniform language. The type assignment for arbitrary multi-level specifications requires $E$-unification. Although this is undecidable in general, it is decidable for restricted sets of equations.\par In an earlier paper, the modular applicative multi-level equational specification formalism MLS is defined. The typechecker supports only free type constructors.\par In this paper we introduce multi-level specification by means of a series of MLS examples and discuss the extension with an $E$-unification procedure instead of syntactic unification of the type assignment function for MLS such that it supports type definitions, defined type operators and recursive types.},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/P9606.ps.gz},
  project     = {ASF+SDF},
  pubcat      = {tecnical report},
  category    = {non-refereed},
  urlbib      = {Vis96.ste.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/},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/P9708.ps.gz},
  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},
  address   = {Amsterdam},
  urlpsgz   = {http://www.cs.uu.nl/people/visser/ftp/P9717.ps.gz},
  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'97)},
  year         = {1997},
  month        = {September},
  pages        = {210--224},
  organization = {Massachusetts Institute of Technology},
  address      = {Boston, USA},
  urlpsgz      = {http://www.cs.uu.nl/people/visser/ftp/P9507.ps.gz},
  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},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/P9706.ps.gz},
  url         = {http://www.wins.uva.nl/pub/programming-research/reports/1997/P9706.ps.gz},
  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},
  urlpsgz     = {http://www.cs.uu.nl/people/visser/ftp/P9707.ps.gz},
  url         = {http://www.wins.uva.nl/pub/programming-research/reports/1997/P9707.ps.gz},
  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://www.cs.uu.nl/groups/ST/twiki/bin/view/Visser/SyntaxDefinitionForLanguagePrototyping},
  urlpsgz  = {http://www.cs.uu.nl/people/visser/ftp/Vis97.ps.gz},
  pubcat   = {phdthesis},
  project  = {ASF+SDF and SDF},
  category = {key and refereed},
  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},
  urlpsgz  = {http://www.cs.uu.nl/people/visser/ftp/Vis98.ps.gz},
  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'99)},
  pages      = {30--44},
  year       = 1999,
  editor     = {P. Narendran and M. Rusinowitch},
  volume     = 1631,
  series     = {Lecture Notes in Computer Science},
  address    = {Trento, Italy},
  month      = {July},
  publisher  = {Springer-Verlag},
  urlpsgz    = {http://www.cs.uu.nl/people/visser/ftp/Vis99.ps.gz},
  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'99)},
  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},
}

@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},
}


