{"id":"https://openalex.org/W2016622780","doi":"https://doi.org/10.1145/2505879.2505894","title":"Engineering definitional interpreters","display_name":"Engineering definitional interpreters","publication_year":2013,"publication_date":"2013-09-16","ids":{"openalex":"https://openalex.org/W2016622780","doi":"https://doi.org/10.1145/2505879.2505894","mag":"2016622780"},"language":"en","primary_location":{"id":"doi:10.1145/2505879.2505894","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2505879.2505894","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5065278196","display_name":"Jan Midtgaard","orcid":"https://orcid.org/0000-0002-6506-5468"},"institutions":[{"id":"https://openalex.org/I204337017","display_name":"Aarhus University","ror":"https://ror.org/01aj84f44","country_code":"DK","type":"education","lineage":["https://openalex.org/I204337017"]}],"countries":["DK"],"is_corresponding":true,"raw_author_name":"Jan Midtgaard","raw_affiliation_strings":["Aarhus University"],"affiliations":[{"raw_affiliation_string":"Aarhus University","institution_ids":["https://openalex.org/I204337017"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5068702687","display_name":"Norman F. Ramsey","orcid":"https://orcid.org/0000-0002-5435-1135"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Norman Ramsey","raw_affiliation_strings":["Tufts University"],"affiliations":[{"raw_affiliation_string":"Tufts University","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5058669344","display_name":"Bradford Larsen","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Bradford Larsen","raw_affiliation_strings":["Veracode","Veracode#TAB#"],"affiliations":[{"raw_affiliation_string":"Veracode","institution_ids":[]},{"raw_affiliation_string":"Veracode#TAB#","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5065278196"],"corresponding_institution_ids":["https://openalex.org/I204337017"],"apc_list":null,"apc_paid":null,"fwci":0.4977,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":{"value":0.75937225,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"121","last_page":"132"},"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.9991999864578247,"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.9991999864578247,"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/T11424","display_name":"Security and Verification in Computing","score":0.9973000288009644,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9958000183105469,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/interpreter","display_name":"Interpreter","score":0.8997293710708618},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.8590775728225708},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8527010679244995},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8106213808059692},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.6174666881561279},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.5329509973526001},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.443619966506958},{"id":"https://openalex.org/keywords/compiled-language","display_name":"Compiled language","score":0.441881388425827},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4351475238800049},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.15898174047470093},{"id":"https://openalex.org/keywords/high-level-programming-language","display_name":"High-level programming language","score":0.09701955318450928},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.08719030022621155}],"concepts":[{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.8997293710708618},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.8590775728225708},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8527010679244995},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8106213808059692},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.6174666881561279},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.5329509973526001},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.443619966506958},{"id":"https://openalex.org/C92966194","wikidata":"https://www.wikidata.org/wiki/Q651794","display_name":"Compiled language","level":4,"score":0.441881388425827},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4351475238800049},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.15898174047470093},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.09701955318450928},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.08719030022621155},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2505879.2505894","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2505879.2505894","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming","raw_type":"proceedings-article"},{"id":"pmh:oai:pure.atira.dk:publications/c0d8074b-c90c-4f0d-8946-50ca42fb158d","is_oa":false,"landing_page_url":"https://pure.au.dk/portal/en/publications/c0d8074b-c90c-4f0d-8946-50ca42fb158d","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Midtgaard, J, Ramsay, N & Larsen, B 2013, Engineering Definitional Interpreters. i T Schrijvers & R Pe\u00f1a (red), Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming , PPDP '13. Association for Computing Machinery, s. 121-132, Symposium on Principles and Practice of Declarative Programming, Madrid, Spanien, 16/09/2013. https://doi.org/10.1145/2505879.2505894","raw_type":"info:eu-repo/semantics/publishedVersion"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":23,"referenced_works":["https://openalex.org/W32659762","https://openalex.org/W1518650316","https://openalex.org/W1549719405","https://openalex.org/W1550946868","https://openalex.org/W1566968514","https://openalex.org/W1578657094","https://openalex.org/W1592287058","https://openalex.org/W1981404401","https://openalex.org/W2043416466","https://openalex.org/W2045255985","https://openalex.org/W2066038668","https://openalex.org/W2091731831","https://openalex.org/W2102435409","https://openalex.org/W2108229043","https://openalex.org/W2113757735","https://openalex.org/W2123092976","https://openalex.org/W2151716725","https://openalex.org/W2159591963","https://openalex.org/W2339802588","https://openalex.org/W2490166346","https://openalex.org/W2914260883","https://openalex.org/W3003270071","https://openalex.org/W4205241946"],"related_works":["https://openalex.org/W1889284597","https://openalex.org/W2140009967","https://openalex.org/W1993335798","https://openalex.org/W2091228796","https://openalex.org/W2539394636","https://openalex.org/W2024317539","https://openalex.org/W2013844469","https://openalex.org/W2491010355","https://openalex.org/W2562027596","https://openalex.org/W2016622780"],"abstract_inverted_index":{"A":[0],"definitional":[1,35],"interpreter":[2,120],"should":[3],"be":[4],"clear":[5],"and":[6,66,75,92],"easy":[7],"to":[8,62],"write,":[9],"but":[10],"it":[11],"may":[12],"run":[13],"4--10":[14],"times":[15,98,114],"slower":[16,115],"than":[17,100,116],"a":[18,23,53,117],"well-crafted":[19],"bytecode":[20,119],"interpreter.":[21],"In":[22,78],"case":[24],"study":[25],"focused":[26],"on":[27,49,87],"implementation":[28],"choices,":[29],"we":[30,67],"explore":[31],"ways":[32],"of":[33,56,71,73],"making":[34],"interpreters":[36,47,84],"faster":[37,99],"without":[38],"expending":[39],"much":[40],"programming":[41],"effort.":[42],"We":[43,58],"implement,":[44],"in":[45,122],"OCaml,":[46],"based":[48,86],"three":[50],"semantics":[51],"for":[52],"simple":[54],"subset":[55],"Lua.":[57],"compile":[59],"the":[60],"OCaml":[61],"x86":[63],"native":[64],"code,":[65],"systematically":[68],"investigate":[69],"hundreds":[70],"combinations":[72],"algorithms":[74,91],"data":[76,93],"structures.":[77],"this":[79],"experimental":[80],"context,":[81],"our":[82],"fastest":[83],"are":[85],"natural":[88],"semantics;":[89],"good":[90],"structures":[94],"make":[95],"them":[96],"2--3":[97],"na\u00efve":[101],"interpreters.":[102],"Our":[103],"best":[104],"interpreter,":[105],"created":[106],"using":[107],"only":[108,112],"modest":[109],"effort,":[110],"runs":[111],"1.5":[113],"mature":[118],"implemented":[121],"C.":[123]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2017,"cited_by_count":2},{"year":2016,"cited_by_count":1}],"updated_date":"2026-03-12T08:34:05.389933","created_date":"2025-10-10T00:00:00"}
