{"id":"https://openalex.org/W2164522131","doi":"https://doi.org/10.1016/s1571-0661(04)80427-4","title":"Building Interpreters with Rewriting Strategies","display_name":"Building Interpreters with Rewriting Strategies","publication_year":2002,"publication_date":"2002-07-01","ids":{"openalex":"https://openalex.org/W2164522131","doi":"https://doi.org/10.1016/s1571-0661(04)80427-4","mag":"2164522131"},"language":"en","primary_location":{"id":"doi:10.1016/s1571-0661(04)80427-4","is_oa":true,"landing_page_url":"https://doi.org/10.1016/s1571-0661(04)80427-4","pdf_url":"https://www.sciencedirect.com/science/article/pii/S1571066104804274/pdf","source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://www.sciencedirect.com/science/article/pii/S1571066104804274/pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5111669413","display_name":"Eelco Dolstra","orcid":null},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Eelco Dolstra","raw_affiliation_strings":["Institute of Information and Computing Sciences, Universiteit Utrecht, P.O. Box 80089, 3508 TB Utrecht, The Netherlands"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Institute of Information and Computing Sciences, Universiteit Utrecht, P.O. Box 80089, 3508 TB Utrecht, The Netherlands","institution_ids":["https://openalex.org/I193662353"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5072923235","display_name":"Eelco Visser","orcid":"https://orcid.org/0000-0002-7384-3370"},"institutions":[{"id":"https://openalex.org/I193662353","display_name":"Utrecht University","ror":"https://ror.org/04pp8hn57","country_code":"NL","type":"education","lineage":["https://openalex.org/I193662353"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Eelco Visser","raw_affiliation_strings":["Institute of Information and Computing Sciences, Universiteit Utrecht, P.O. Box 80089, 3508 TB Utrecht, The Netherlands"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Institute of Information and Computing Sciences, Universiteit Utrecht, P.O. Box 80089, 3508 TB Utrecht, The Netherlands","institution_ids":["https://openalex.org/I193662353"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5072923235","https://openalex.org/A5111669413"],"corresponding_institution_ids":["https://openalex.org/I193662353"],"apc_list":null,"apc_paid":null,"fwci":3.872,"has_fulltext":true,"cited_by_count":18,"citation_normalized_percentile":{"value":0.93812012,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":"65","issue":"3","first_page":"57","last_page":"76"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9919000267982483,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9897000193595886,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.9339925646781921},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7906935214996338},{"id":"https://openalex.org/keywords/normalization","display_name":"Normalization (sociology)","score":0.7363322973251343},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7128394842147827},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.7004475593566895},{"id":"https://openalex.org/keywords/lambda-calculus","display_name":"Lambda calculus","score":0.5326100587844849},{"id":"https://openalex.org/keywords/lazy-evaluation","display_name":"Lazy evaluation","score":0.5146478414535522},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4724212884902954},{"id":"https://openalex.org/keywords/program-transformation","display_name":"Program transformation","score":0.46620166301727295},{"id":"https://openalex.org/keywords/substitution","display_name":"Substitution (logic)","score":0.460420161485672},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.45040637254714966},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.43784064054489136},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.180625319480896}],"concepts":[{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.9339925646781921},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7906935214996338},{"id":"https://openalex.org/C136886441","wikidata":"https://www.wikidata.org/wiki/Q926129","display_name":"Normalization (sociology)","level":2,"score":0.7363322973251343},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7128394842147827},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.7004475593566895},{"id":"https://openalex.org/C135790938","wikidata":"https://www.wikidata.org/wiki/Q242028","display_name":"Lambda calculus","level":2,"score":0.5326100587844849},{"id":"https://openalex.org/C128099668","wikidata":"https://www.wikidata.org/wiki/Q573952","display_name":"Lazy evaluation","level":3,"score":0.5146478414535522},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4724212884902954},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.46620166301727295},{"id":"https://openalex.org/C2778220771","wikidata":"https://www.wikidata.org/wiki/Q1522579","display_name":"Substitution (logic)","level":2,"score":0.460420161485672},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.45040637254714966},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.43784064054489136},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.180625319480896},{"id":"https://openalex.org/C144024400","wikidata":"https://www.wikidata.org/wiki/Q21201","display_name":"Sociology","level":0,"score":0.0},{"id":"https://openalex.org/C19165224","wikidata":"https://www.wikidata.org/wiki/Q23404","display_name":"Anthropology","level":1,"score":0.0}],"mesh":[],"locations_count":5,"locations":[{"id":"doi:10.1016/s1571-0661(04)80427-4","is_oa":true,"landing_page_url":"https://doi.org/10.1016/s1571-0661(04)80427-4","pdf_url":"https://www.sciencedirect.com/science/article/pii/S1571066104804274/pdf","source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.19.2565","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.2565","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cwi.nl/ftp/markvdb/entcs65.3/65.3.007.ps","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.201.6974","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.201.6974","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://ftp.cwi.nl/markvdb/entcs65.3/65.3.007.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.23.5535","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.23.5535","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.uu.nl/people/visser/ftp/DV02.pdf","raw_type":"text"},{"id":"pmh:uu:oai:dspace.library.uu.nl:1874/23963","is_oa":true,"landing_page_url":"https://dspace.library.uu.nl/handle/1874/23963","pdf_url":null,"source":{"id":"https://openalex.org/S4306401843","display_name":"Data Archiving and Networked Services (DANS)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1322597698","host_organization_name":"Royal Netherlands Academy of Arts and Sciences","host_organization_lineage":["https://openalex.org/I1322597698"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/other"}],"best_oa_location":{"id":"doi:10.1016/s1571-0661(04)80427-4","is_oa":true,"landing_page_url":"https://doi.org/10.1016/s1571-0661(04)80427-4","pdf_url":"https://www.sciencedirect.com/science/article/pii/S1571066104804274/pdf","source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},"sustainable_development_goals":[{"display_name":"Quality Education","score":0.49000000953674316,"id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2164522131.pdf","grobid_xml":"https://content.openalex.org/works/W2164522131.grobid-xml"},"referenced_works_count":24,"referenced_works":["https://openalex.org/W92962286","https://openalex.org/W1494199306","https://openalex.org/W1517760837","https://openalex.org/W1517920068","https://openalex.org/W1528098570","https://openalex.org/W1575027156","https://openalex.org/W1577421310","https://openalex.org/W1625533892","https://openalex.org/W1648657497","https://openalex.org/W1932577981","https://openalex.org/W1967825172","https://openalex.org/W1978948468","https://openalex.org/W1995674161","https://openalex.org/W2000755429","https://openalex.org/W2005915144","https://openalex.org/W2151716725","https://openalex.org/W2170069181","https://openalex.org/W2914260883","https://openalex.org/W4249245425","https://openalex.org/W4292003067","https://openalex.org/W6603757879","https://openalex.org/W6636559620","https://openalex.org/W6642319616","https://openalex.org/W7028850525"],"related_works":["https://openalex.org/W2764317176","https://openalex.org/W2168393711","https://openalex.org/W778229461","https://openalex.org/W2099473324","https://openalex.org/W2104819922","https://openalex.org/W1516233466","https://openalex.org/W2105232714","https://openalex.org/W4451720","https://openalex.org/W2079778730","https://openalex.org/W135379672"],"abstract_inverted_index":{"Programming":[0],"language":[1],"semantics":[2],"based":[3,41,86],"on":[4,42,87],"pure":[5],"rewrite":[6,43],"rules":[7,53],"suffers":[8],"from":[9],"the":[10,13,21,83],"gap":[11],"between":[12],"rewriting":[14,18,30],"strategy":[15],"implemented":[16],"in":[17,62,66],"engines":[19],"and":[20,89,101,111],"intended":[22],"evaluation":[23,103],"strategy.":[24],"This":[25],"paper":[26],"shows":[27,113],"how":[28],"programmable":[29],"strategies":[31,94],"can":[32,59,117],"be":[33,60,119],"used":[34],"to":[35],"implement":[36],"interpreters":[37,81,116],"for":[38,82],"programming":[39],"languages":[40],"rules.":[44],"The":[45,75],"advantage":[46],"of":[47,69],"this":[48],"approach":[49,76],"is":[50,77],"that":[51,58,114],"reduction":[52],"are":[54],"first":[55],"class":[56],"entities":[57],"reused":[61],"different":[63,93],"strategies,":[64],"even":[65],"other":[67],"kinds":[68],"program":[70],"transformations":[71],"such":[72,115],"as":[73],"optimizers.":[74],"illustrated":[78],"with":[79,104,108],"several":[80],"lambda":[84],"calculus":[85],"implicit":[88],"explicit":[90],"(parallel)":[91],"substitution,":[92],"including":[95],"normalization,":[96],"eager":[97],"evaluation,":[98,100],"lazy":[99,102],"updates.":[105],"An":[106],"extension":[107],"pattern":[109],"matching":[110],"choice":[112],"easily":[118],"extended.":[120]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2018,"cited_by_count":2},{"year":2016,"cited_by_count":1}],"updated_date":"2026-08-02T14:50:37.381335","created_date":"2025-10-10T00:00:00"}
