{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,23]],"date-time":"2026-07-23T20:16:18Z","timestamp":1784837778203,"version":"3.55.0"},"reference-count":57,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2001,12,1]],"date-time":"2001-12-01T00:00:00Z","timestamp":1007164800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2013,7,29]],"date-time":"2013-07-29T00:00:00Z","timestamp":1375056000000},"content-version":"vor","delay-in-days":4258,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Electronic Notes in Theoretical Computer Science"],"published-print":{"date-parts":[[2001,12]]},"DOI":"10.1016\/s1571-0661(04)00270-1","type":"journal-article","created":{"date-parts":[[2004,2,5]],"date-time":"2004-02-05T05:34:35Z","timestamp":1075959275000},"page":"109-143","source":"Crossref","is-referenced-by-count":51,"special_numbering":"C","title":["A Survey of Rewriting Strategies in Program Transformation Systems"],"prefix":"10.1016","volume":"57","author":[{"given":"Eelco","family":"Visser","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"78","reference":[{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB1","series-title":"Compilers: Principles, techniques, and tools","author":"Aho","year":"1986"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB2","series-title":"Modern Compiler Implementation in ML","author":"Appel","year":"1998"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB3","unstructured":"P. Borovansk\u00fd, H. Cirstea, H. Dubois, C. Kirchner, H. Kirchner, P.-E. Moreau, C. Ringeissen, and M. Vittek. ELAN: User Manual. Loria, Nancy, France, v3.4 edition, January 27 2000. 5.9"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB4","doi-asserted-by":"crossref","unstructured":"P. Borovansk\u00fd, C. Kirchner, and H. Kirchner. Controlling rewriting by rewriting. In J. Meseguer, editor, Proceedings of the First International Workshop on Rewriting Logic and its Applications, volume 4 of Electronic Notes in Theoretical Computer Science, Asilomar, Pacific Grove, CA, September 1996. Elsevier. 4.1","DOI":"10.1016\/S1571-0661(04)00039-8"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB5","doi-asserted-by":"crossref","unstructured":"P. Borovansk\u00fd, C. Kirchner, H. Kirchner, P.-E. Moreau, and M. Vittek. Elan: A logical framework based on computational systems. In J. Meseguer, editor, Electronic Notes in Theoretical Computer Science, volume 4. Elsevier Science Publishers, 1996. Proceedings of the First Workshop on Rewriting Logic and Applications 1996 (WRLA'96). 5.5","DOI":"10.1016\/S1571-0661(04)00032-5"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB6","series-title":"Software Reusability, volume 1","first-page":"361","article-title":"Abstract programming and program transformation\u2014An approach to reusing programs","author":"Boyle","year":"1989"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB7","series-title":"Modern Software Tools for Scientific Computing","first-page":"353","article-title":"The TAMPR program transformation system: Simplifying the development of numerical software","author":"Boyle","year":"1997"},{"issue":"3","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB8","doi-asserted-by":"crossref","first-page":"259","DOI":"10.1002\/(SICI)1097-024X(200003)30:3<259::AID-SPE298>3.0.CO;2-Y","article-title":"Efficient annotated terms","volume":"30","author":"van den Brand","year":"2000","journal-title":"Software, Practice & Experience"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB9","doi-asserted-by":"crossref","unstructured":"M. G. J. van den Brand, P. Klint, and J. Vinju. Term rewriting with traversal functions. Technical Report SEN-R0121, Centrum voor Wiskunde en Informatica, 2001. 5.6","DOI":"10.1016\/S1571-0661(04)80602-9"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB10","doi-asserted-by":"crossref","first-page":"209","DOI":"10.1016\/S0167-6423(99)00037-4","article-title":"Generation of components for software renovation factories from context-free grammars","volume":"36","author":"van den Brand","year":"2000","journal-title":"Science of Computer Programming"},{"issue":"1","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB11","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/226155.226156","article-title":"Generation of formatters for contextfree languages","volume":"5","author":"van den Brand","year":"1996","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB12","doi-asserted-by":"crossref","DOI":"10.1109\/52.43044","article-title":"Reverse engineering and design recovery: A taxonomy","author":"Chikofski","year":"1990","journal-title":"IEEE Software"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB13","doi-asserted-by":"crossref","unstructured":"M. Clavel, S. Eker, P. Lincoln, and J. Meseguer. Principles of Maude. In J. Meseguer, editor, Proceedings of the First International Workshop on Rewriting Logic and its Applications, volume 4 of Electronic Notes in Theoretical Computer Science, pages 65\u201389, Asilomar, Pacific Grove, CA, September 1996. Elsevier. 4.1, 5.10","DOI":"10.1016\/S1571-0661(04)00034-9"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB14","unstructured":"M. Clavel and J. Meseguer. Reflection and strategies in rewriting logic. In J. Meseguer, editor, Electronic Notes in Theoretical Computer Science, volume 4. Elsevier Science Publishers, 1996. Proceedings of the First International Workshop on Rewriting Logic and its Applications. 5.10"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB15","doi-asserted-by":"crossref","unstructured":"M. G. Clavel. Reflection in General Logics and in Rewriting Logic with Applications to the Maude Language. PhD thesis, Universidad de Navarra, Facultad de Filosofia y Letras, Pamplona, Espa\u00f1a, 1998. 5.10","DOI":"10.1016\/S1571-0661(05)82553-8"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB16","doi-asserted-by":"crossref","unstructured":"C. Collberg, C. Thomborson, and D. Low. Manufacturing cheap, resilient and stealthy opaque constructs. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 98), pages 184\u2013196, San Diego CA, USA, January 1998. 2.2.3","DOI":"10.1145\/268946.268962"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB17","series-title":"Generative Programming. Methods, Tools, and Applications, chapter 11","article-title":"Intentional programming","author":"Czarnecki","year":"2000"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB18","series-title":"Handbook of Theoretical Computer Science, volume B, chapter 6","first-page":"243","article-title":"Rewrite systems","author":"Dershowitz","year":"1990"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB19","doi-asserted-by":"crossref","unstructured":"A. van Deursen, J. Heering, and P. Klint, editors. Language Prototyping. An Algebraic Specification Approach, volume 5 of AMAST Series in Computing. World Scientific, Singapore, September 1996. 4.1, 5.5, 5.5","DOI":"10.1142\/9789812830043_0001"},{"issue":"5\u20136","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB20","doi-asserted-by":"crossref","first-page":"523","DOI":"10.1016\/S0747-7171(06)80004-0","article-title":"Origin tracking","volume":"15","author":"van Deursen","year":"1993","journal-title":"Journal of Symbolic Computation"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB21","doi-asserted-by":"crossref","unstructured":"C. Elliott, S. Finne, and O. de Moor. Compiling embedded languages. In Semantics, Applications and Implementation of Program Generation (SAIG'00), Springer Lecture Notes in Computer Science, 2000. 5.5","DOI":"10.1007\/3-540-45350-4_5"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB22","doi-asserted-by":"crossref","unstructured":"A. Felty. A logic programming approach to implementing higher-order term rewriting. In L.-H. Eriksson, L. Halln\u00e4s and P. Schroeder-Heister, editors, Extensions of Logic Programming (ELP '91), volume 596 of Lecture Notes in Artifial Intelligence, pages 135\u2013158. Springer-Verlag, 1992. 4.1","DOI":"10.1007\/BFb0013606"},{"issue":"1","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB23","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1145\/345099.345102","article-title":"Lazy rewriting on eager machinery","volume":"22","author":"Fokkink","year":"2000","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB24","series-title":"Refactoring: Improving the Design of Existing Programs","author":"Fowler","year":"1999"},{"issue":"3","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB25","doi-asserted-by":"crossref","first-page":"213","DOI":"10.1145\/151640.151642","article-title":"Engineering a simple, efficient code-generator generator","volume":"1","author":"Fraser","year":"1992","journal-title":"ACM Letters on Programming Languages and Systems"},{"issue":"4","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB26","doi-asserted-by":"crossref","first-page":"68","DOI":"10.1145\/131080.131089","article-title":"BURG\u2014fast optimal instruction selection and tree parsing","volume":"27","author":"Fraser","year":"1992","journal-title":"ACM SIGPLAN Notices"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB27","unstructured":"J. A. Goguen and T. W. et. al. Introducing OBJ. Technical Report SRI-CSL92-03, SRI International Computer Science Laboratory, March 1992. 5.5"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB28","series-title":"Workshop on Standard Exchange Format (WoSEF)","first-page":"2","article-title":"Exchange format bibliography","author":"Kienle","year":"2000"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB29","unstructured":"J. Heering. Implementing higher-order algebraic specifications. In D. Miller, editor, Proceedings of the Workshop on the \u03bbProlog Programming Language, pages 141\u2013157. University of Pennsylvania, Philadelphia, 1992. Published as Technical Report MS-CIS-92-86; http:\/\/www.cwi.nl\/~jan\/HO.WLP.ps. 4.1"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB30","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1007\/BF00264598","article-title":"Proving and applying program transformations expressed with second-order patterns","volume":"11","author":"Huet","year":"1978","journal-title":"Acta Informatica"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB31","doi-asserted-by":"crossref","unstructured":"P. Johann and E. Visser. Fusing logic and control with local transformations: An example optimization. In B. Gramlich and S. Lucas, editors, Workshop on Reduction Strategies in Rewriting and Programming (WRS'01), volume 57 of Electronic Notes in Theoretical Computer Science, Utrecht, The Netherlands, May 2001. Elsevier Science Publishers. 5.11.5, 6.3","DOI":"10.1016\/S1571-0661(04)00271-3"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB32","doi-asserted-by":"crossref","unstructured":"G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. Technical report, Xerox Palo Alto Research Center, 1997. 6.3","DOI":"10.1007\/BFb0053381"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB33","doi-asserted-by":"crossref","unstructured":"D. Lacey and O. de Moor. Imperative program transformation by rewriting. In Compiler Construction (CC'01), Lecture Notes in Computer Science. SpringerVerlag, April 2001. 3.2, 6.3","DOI":"10.1007\/3-540-45306-7_5"},{"issue":"1\u20132","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB34","doi-asserted-by":"crossref","first-page":"135","DOI":"10.1016\/S0304-3975(00)00402-3","article-title":"Higher-order matching for program transformation","volume":"269","author":"de Moor","year":"2001","journal-title":"Theoretical Computer Science"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB35","unstructured":"P.-E. Moreau. Compilation de r\u00e8gles de r\u00e9\u00e9criture et de strat\u00e9gies nond\u00e9terministes. PhD thesis, L'Universit\u00e9 Henri Poincar\u00e9-Nancy 1, June 22 1999. 5.9, 13"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB36","series-title":"Advanced Compiler Design and Implementation","author":"Muchnick","year":"1997"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB37","unstructured":"G. Nadathur and D. Miller. An overview of \u03bbProlog. In R. A. Kowalski, editor, Logic Programming. Proceedings of the Fifth International Conference and Symposium, volume 1, pages 810\u2013827, Cambridge, Mass., USA, 1988. MIT Press. 4.1"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB38","unstructured":"J. M. Neighbors. Software Construction Using Components. PhD thesis, Department of Information and Computer Science, University of California, Irvine, 1980. 5.1"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB39","unstructured":"J. M. Neighbors. Draco 1.2 Users Manual. Department of Information and Computer Science, University of California, Irvine, Irvine, CA, USA, June 1983. 5.1"},{"issue":"5","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB40","doi-asserted-by":"crossref","first-page":"564","DOI":"10.1109\/TSE.1984.5010280","article-title":"The Draco approach to constructing software from reusable components","volume":"SE-10","author":"Neighbors","year":"1984","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB41","doi-asserted-by":"crossref","unstructured":"K. Ogata and K. Futatsugi. Implementation of term rewritings with the evaluation strategy. In Proceedings 9th Symposium on Programming Languages: Implementations, Logics, and Programs (PLILP'97), volume 1292 of Lecture Notes in Computer Science, pages 225\u2013239, Southampton, 1997. SpringerVerlag. 11, 5.7.2","DOI":"10.1007\/BFb0033847"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB42","series-title":"Language Translation Using PCCTS and C++. A Reference Guide, chapter 4","first-page":"161","article-title":"SORCERER reference","author":"Parr","year":"1993"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB43","unstructured":"T. J. Parr. An overview of SORCERER: A simple tree-parser generator. http:\/\/www.antlr.org\/papers\/sorcerer.ps, April 1994. 5.3"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB44","unstructured":"S. Peyton Jones, J. Hughes, et al. Report of the programming language Haskell98. a non-strict, purely functional language, February 1999. 2.2.1"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB45","doi-asserted-by":"crossref","unstructured":"F. Pfenning and C. Elliot. Higher-order abstract syntax. In Proc. SIGPLAN Conference on Programming Language Design and Implementation (PLDI'88), pages 199\u2013208. ACM, 1988. 3.3, 4.1","DOI":"10.1145\/53990.54010"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB46","doi-asserted-by":"crossref","unstructured":"A. M. Pitts and M. J. Gabbay. A metalanguage for programming with bound names modulo renaming. In R. Backhouse and J. N. Oliveira, editors, Proceedings of the 5th International Conference on Mathematics of Programme Construction (MPC2000), volume 1837 of Lecture Notes in Computer Science, pages 230\u2013255, Ponte de Lima, Portugal, July 2000. Springer-Verlag. 3.3","DOI":"10.1007\/10722010_15"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB47","doi-asserted-by":"crossref","unstructured":"J. van der Pol. Just-in-time: On strategy annotations. In Proceedings of the International Workshop on Reduction Strategies in Rewriting and Programming (WRS 2001), 2001. 5.7.1","DOI":"10.1016\/S1571-0661(04)00267-1"},{"issue":"3","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB48","doi-asserted-by":"crossref","first-page":"461","DOI":"10.1145\/203095.203098","article-title":"BURS automata generation","volume":"17","author":"Proebsting","year":"1995","journal-title":"ACM Transactions on Programming Languages and Systems"},{"issue":"3","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB49","doi-asserted-by":"crossref","first-page":"233","DOI":"10.1147\/rd.413.0233","article-title":"Automatic selection of high-order transformations in the IBM XL FORTRAN compilers","volume":"41","author":"Sarkar","year":"1997","journal-title":"IBM Journal for Research and Development"},{"issue":"9","key":"10.1016\/S1571-0661(04)00270-1_NEWBIB50","doi-asserted-by":"crossref","first-page":"1024","DOI":"10.1109\/32.58788","article-title":"KIDS: A semiautomatic program development system","volume":"16","author":"Smith","year":"1990","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB51","unstructured":"E. Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, September 1997. 2.2.1, 5.5"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB52","doi-asserted-by":"crossref","unstructured":"E. Visser. Strategic pattern matching. In P. Narendran and M. Rusinowitch, editors, Rewriting Techniques and Applications (RTA'99), volume 1631 of Lecture Notes in Computer Science, pages 30\u201344, Trento, Italy, July 1999. Springer-Verlag. 4.1, 5.11.4","DOI":"10.1007\/3-540-48685-2_3"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB53","unstructured":"E. Visser. Language independent traversals for program transformation. In J. Jeuring, editor, Workshop on Generic Programming (WGP'00), Ponte de Lima, Portugal, July 2000. Technical Report UU-CS-2000-19, Department of Information and Computing Sciences, Universiteit Utrecht. 5.11.5"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB54","doi-asserted-by":"crossref","unstructured":"E. Visser. Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5. In A. Middeldorp, editor, Rewriting Techniques and Applications (RTA '01), volume 2051 of Lecture Notes in Computer Science, pages 357\u2013361. Springer-Verlag, May 2001. 5.11","DOI":"10.1007\/3-540-45127-7_27"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB55","doi-asserted-by":"crossref","unstructured":"E. Visser, Z.-e.-A. Benaissa, and A. Tolmach. Building program optimizers with rewriting strategies. ACM SIGPLAN Notices, 34(1):13\u201326, January 1999. Proceedings of the International Conference on Functional Programming (ICFP'98). 5.11","DOI":"10.1145\/291251.289425"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB56","doi-asserted-by":"crossref","unstructured":"E. Visser et al. The online survey of program transformation. www.program-transformation.org, 2000\u20132001. 6.4","DOI":"10.1016\/S1571-0661(04)00270-1"},{"key":"10.1016\/S1571-0661(04)00270-1_NEWBIB57","doi-asserted-by":"crossref","unstructured":"P. Wadler. Views: A way for pattern matching to cohabit with data abstraction. In ACM Symposium on Principles of Programming Languages, pages 307\u2013313, Munich, January 1987. ACM. 4.1","DOI":"10.1145\/41625.41653"}],"container-title":["Electronic Notes in Theoretical Computer Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S1571066104002701?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S1571066104002701?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2021,6,14]],"date-time":"2021-06-14T11:56:43Z","timestamp":1623671803000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S1571066104002701"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2001,12]]},"references-count":57,"alternative-id":["S1571066104002701"],"URL":"https:\/\/doi.org\/10.1016\/s1571-0661(04)00270-1","relation":{},"ISSN":["1571-0661"],"issn-type":[{"value":"1571-0661","type":"print"}],"subject":[],"published":{"date-parts":[[2001,12]]}}}