publications: - title: "Building Program Optimizers with Rewriting Strategies" author: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" year: "1998" doi: "http://doi.acm.org/10.1145/289423.289425" abstract: "We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite rules; rewriting strategies are used to describe when and how the various rules should be applied in order to obtain the desired optimization effects. Separating rules from strategies in this fashion makes it easier to reason about the behavior of the optimizer as a whole, compared to traditional monolithic optimizer implementations. We illustrate the expressiveness of our language by using it to describe a simple optimizer for an ML-like intermediate representation.The basic strategy language uses operators such as sequential composition, choice, and recursion to build transformers from a set of labeled unconditional rewrite rules. We also define an extended language in which the side-conditions and contextual rules that arise in realistic optimizer specifications can themselves be expressed as strategy-driven rewrites. We show that the features of the basic and extended languages can be expressed by breaking down the rewrite rules into their primitive building blocks, namely matching and building terms in variable binding environments. This gives us a low-level core language which has a clear semantics, can be implemented straightforwardly and can itself be optimized. The current implementation generates C code from a strategy specification. " links: doi: "http://doi.acm.org/10.1145/289423.289425" "postscript": "http://www.st.ewi.tudelft.nl/~eelco/papers/VBT98.ps" tags: - "programming languages" - "optimization" - "semantics" - "rule-based" - "meta programming" - "graph transformation" - "variable binding" - "Stratego/XT" - "transformation language" - "term rewriting" - "composition" - "graph-rewriting" - "rules" - "C++" - "program optimization" - "Meta-Environment" - "higher-order transformations" - "rewriting" - "rewriting strategies" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/VisserBT98" cites: 0 citedby: 5 pages: "13-26" booktitle: "Proceedings of the third ACM SIGPLAN international conference on Functional programming" editor: - name: "Matthias Felleisen" link: "http://www.ccs.neu.edu/home/matthias/" - name: "Paul Hudak" link: "http://www.cs.yale.edu/homes/hudak/" - name: "Christian Queinnec" link: "https://researchr.org/alias/christian-queinnec" address: "Baltimore, Maryland, United States" publisher: "ACM" kind: "inproceedings" key: "VisserBT98" - title: "An Idealized MetaML: Simpler, and More Expressive" author: - name: "Eugenio Moggi" link: "https://researchr.org/alias/eugenio-moggi" - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1576/15760193.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1576/15760193.htm" researchr: "https://researchr.org/publication/MoggiTBS99" cites: 0 citedby: 0 pages: "193-207" booktitle: "Programming Languages and Systems, 8th European Symposium on Programming, ESOP 99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 99, Amsterdam, The Netherlands, 22-28 March, 1999, Proceedings" editor: - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" volume: "1576" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65699-5" kind: "inproceedings" key: "MoggiTBS99" - title: "lambda-nu, A Calculus of Explicit Substitutions which Preserves Strong Normalisation" author: - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Daniel Briaud" link: "https://researchr.org/alias/daniel-briaud" - name: "Pierre Lescanne" link: "https://researchr.org/alias/pierre-lescanne" - name: "Jocelyne Rouyer-Degli" link: "https://researchr.org/alias/jocelyne-rouyer-degli" year: "1996" researchr: "https://researchr.org/publication/BenaissaBLR96" cites: 0 citedby: 0 journal: "Journal of Functional Programming" volume: "6" number: "5" pages: "699-722" kind: "article" key: "BenaissaBLR96" - title: "A core language for rewriting" author: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" year: "1998" doi: "http://dx.doi.org/10.1016/S1571-0661(05)80027-1" abstract: "System S is a calculus providing the basic abstractions of term rewriting: matching and building terms, term traversal, combining computations and handling failure. The calculus forms a core language for implementation of a wide variety of rewriting languages, or more generally, languages for specifying tree transformations. In this paper we show how a conventional rewriting language based on conditional term rewriting can be implemented straightforwardly in System S. Subsequently we show how this implementation can be extended with features such as matching conditions, negative conditions, default rules, non-strictness annotations and alternative evaluation strategies." links: doi: "http://dx.doi.org/10.1016/S1571-0661(05)80027-1" tags: - "rule-based" - "SDF" - "graph transformation" - "traversal" - "transformation language" - "term rewriting" - "graph-rewriting" - "rules" - "transformation system" - "abstraction" - "rewriting" - "rewriting strategies" - "ASF+SDF" - "transformation" researchr: "https://researchr.org/publication/VisserB98" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "15" pages: "422-441" kind: "article" key: "VisserB98" - title: "DSL implementation using staging and monads" author: - name: "Sheard, Tim " link: "https://researchr.org/alias/sheard%2C-tim" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Pasalic, Emir" link: "https://researchr.org/alias/pasalic%2C-emir" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331975" links: doi: "http://doi.acm.org/10.1145/331960.331975" tags: - "DSL" researchr: "https://researchr.org/publication/331975" cites: 0 citedby: 0 booktitle: "PLAN '99: Proceedings of the 2nd conference on Domain-specific languages" address: "New York, NY, USA" publisher: "ACM" isbn: "1-58113-255-7" kind: "inproceedings" key: "331975" - title: "Multi-Stage Programming: Axiomatization and Type Safety" author: - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" year: "1998" doi: "http://link.springer.de/link/service/series/0558/bibs/1443/14430918.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1443/14430918.htm" tags: - "programming" researchr: "https://researchr.org/publication/TahaBS98" cites: 0 citedby: 0 pages: "918-929" booktitle: "Automata, Languages and Programming, 25th International Colloquium, ICALP 98, Aalborg, Denmark, July 13-17, 1998, Proceedings" editor: - name: "Kim Guldstrand Larsen" link: "https://researchr.org/alias/kim-guldstrand-larsen" - name: "Sven Skyum" link: "https://researchr.org/alias/sven-skyum" - name: "Glynn Winskel" link: "https://researchr.org/alias/glynn-winskel" volume: "1443" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-64781-3" kind: "inproceedings" key: "TahaBS98" - title: "DSL implementation using staging and monads" author: - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Emir Pasalic" link: "https://researchr.org/alias/emir-pasalic" year: "1999" doi: "http://doi.acm.org/10.1145/331960.331975" links: doi: "http://doi.acm.org/10.1145/331960.331975" tags: - "DSL" researchr: "https://researchr.org/publication/SheardBP99" cites: 0 citedby: 1 pages: "81-94" booktitle: "DSL" kind: "inproceedings" key: "SheardBP99" - title: "Modeling Sharing and Recursion for Weak Reduction Strategies Using Explicit Substitution" author: - name: "Zine-El-Abidine Benaissa" link: "http://web.archive.org/web/20010515202744/www.cse.ogi.edu/~benaissa/" - name: "Pierre Lescanne" link: "https://researchr.org/alias/pierre-lescanne" - name: "Kristoffer Høgsbro Rose" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/krisrose.index.html" year: "1996" tags: - "modeling" researchr: "https://researchr.org/publication/BenaissaLR96" cites: 0 citedby: 0 pages: "393-407" booktitle: "Programming Languages: Implementations, Logics, and Programs, 8th International Symposium, PLILP 96, Aachen, Germany, September 24-27, 1996, Proceedings" editor: - name: "Herbert Kuchen" link: "https://researchr.org/alias/herbert-kuchen" - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" volume: "1140" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61756-6" kind: "inproceedings" key: "BenaissaLR96"