{"id":"https://openalex.org/W4387667014","doi":"https://doi.org/10.1145/3622808","title":"AST vs. Bytecode: Interpreters in the Age of Meta-Compilation","display_name":"AST vs. Bytecode: Interpreters in the Age of Meta-Compilation","publication_year":2023,"publication_date":"2023-10-16","ids":{"openalex":"https://openalex.org/W4387667014","doi":"https://doi.org/10.1145/3622808"},"language":"en","primary_location":{"id":"doi:10.1145/3622808","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622808","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622808","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by-sa","license_id":"https://openalex.org/licenses/cc-by-sa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3622808","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5026105541","display_name":"Octave Larose","orcid":"https://orcid.org/0000-0003-4683-9883"},"institutions":[{"id":"https://openalex.org/I20581793","display_name":"University of Kent","ror":"https://ror.org/00xkeyj56","country_code":"GB","type":"education","lineage":["https://openalex.org/I20581793"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Octave Larose","raw_affiliation_strings":["University of Kent, Canterbury, UK"],"raw_orcid":"https://orcid.org/0000-0003-4683-9883","affiliations":[{"raw_affiliation_string":"University of Kent, Canterbury, UK","institution_ids":["https://openalex.org/I20581793"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5081651921","display_name":"Sophie Kaleba","orcid":"https://orcid.org/0000-0002-9817-1494"},"institutions":[{"id":"https://openalex.org/I20581793","display_name":"University of Kent","ror":"https://ror.org/00xkeyj56","country_code":"GB","type":"education","lineage":["https://openalex.org/I20581793"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Sophie Kaleba","raw_affiliation_strings":["University of Kent, Canterbury, UK"],"raw_orcid":"https://orcid.org/0000-0002-9817-1494","affiliations":[{"raw_affiliation_string":"University of Kent, Canterbury, UK","institution_ids":["https://openalex.org/I20581793"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5004864398","display_name":"Humphrey Burchell","orcid":"https://orcid.org/0000-0003-4728-5819"},"institutions":[{"id":"https://openalex.org/I20581793","display_name":"University of Kent","ror":"https://ror.org/00xkeyj56","country_code":"GB","type":"education","lineage":["https://openalex.org/I20581793"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Humphrey Burchell","raw_affiliation_strings":["University of Kent, Canterbury, UK"],"raw_orcid":"https://orcid.org/0000-0003-4728-5819","affiliations":[{"raw_affiliation_string":"University of Kent, Canterbury, UK","institution_ids":["https://openalex.org/I20581793"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5015543736","display_name":"Stefan Marr","orcid":"https://orcid.org/0000-0001-9059-5180"},"institutions":[{"id":"https://openalex.org/I20581793","display_name":"University of Kent","ror":"https://ror.org/00xkeyj56","country_code":"GB","type":"education","lineage":["https://openalex.org/I20581793"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Stefan Marr","raw_affiliation_strings":["University of Kent, Canterbury, UK"],"raw_orcid":"https://orcid.org/0000-0001-9059-5180","affiliations":[{"raw_affiliation_string":"University of Kent, Canterbury, UK","institution_ids":["https://openalex.org/I20581793"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5026105541"],"corresponding_institution_ids":["https://openalex.org/I20581793"],"apc_list":null,"apc_paid":null,"fwci":2.3939,"has_fulltext":true,"cited_by_count":8,"citation_normalized_percentile":{"value":0.88692472,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":98},"biblio":{"volume":"7","issue":"OOPSLA2","first_page":"318","last_page":"346"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T10126","display_name":"Logic, programming, and type systems","score":0.9972000122070312,"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/T12127","display_name":"Software System Performance and Reliability","score":0.9944999814033508,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/bytecode","display_name":"Bytecode","score":0.9360761642456055},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8671975135803223},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.8426570296287537},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6452893018722534},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5676955580711365},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.4265378415584564},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.1347285509109497}],"concepts":[{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.9360761642456055},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8671975135803223},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.8426570296287537},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6452893018722534},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5676955580711365},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.4265378415584564},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.1347285509109497}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3622808","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622808","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622808","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by-sa","license_id":"https://openalex.org/licenses/cc-by-sa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:kar.kent.ac.uk:102817","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622808>)","pdf_url":"https://kar.kent.ac.uk/102817/7/AST%20vs%20Bytecode_Marr_PUB.pdf","source":{"id":"https://openalex.org/S4377196264","display_name":"Kent Academic Repository (University of Kent)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I20581793","host_organization_name":"University of Kent","host_organization_lineage":["https://openalex.org/I20581793"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"PeerReviewed"}],"best_oa_location":{"id":"doi:10.1145/3622808","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622808","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622808","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by-sa","license_id":"https://openalex.org/licenses/cc-by-sa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G2763797753","display_name":null,"funder_award_id":"INF\\R1\\211001","funder_id":"https://openalex.org/F4320320006","funder_display_name":"Royal Society"},{"id":"https://openalex.org/G3685374103","display_name":"CaMELot: Catching and Mitigating Event-Loop Concurrency Issues","funder_award_id":"EP/V007165/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G6922028588","display_name":null,"funder_award_id":"EP/V007165/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320320006","display_name":"Royal Society","ror":"https://ror.org/03wnrjx87"},{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4387667014.pdf","grobid_xml":"https://content.openalex.org/works/W4387667014.grobid-xml"},"referenced_works_count":49,"referenced_works":["https://openalex.org/W32659762","https://openalex.org/W1649645444","https://openalex.org/W1993335798","https://openalex.org/W2000050212","https://openalex.org/W2002325351","https://openalex.org/W2010167524","https://openalex.org/W2016567396","https://openalex.org/W2026489303","https://openalex.org/W2051540028","https://openalex.org/W2062414112","https://openalex.org/W2088772524","https://openalex.org/W2091228796","https://openalex.org/W2094269821","https://openalex.org/W2108978604","https://openalex.org/W2110629752","https://openalex.org/W2118950848","https://openalex.org/W2126060880","https://openalex.org/W2130235146","https://openalex.org/W2130262734","https://openalex.org/W2135416495","https://openalex.org/W2141293928","https://openalex.org/W2259042472","https://openalex.org/W2339802588","https://openalex.org/W2466900139","https://openalex.org/W2533990317","https://openalex.org/W2572804059","https://openalex.org/W2728247669","https://openalex.org/W2731881248","https://openalex.org/W2794883415","https://openalex.org/W2806285345","https://openalex.org/W2884300176","https://openalex.org/W2891729616","https://openalex.org/W2979463730","https://openalex.org/W3004830048","https://openalex.org/W3099921615","https://openalex.org/W3123858332","https://openalex.org/W3138597379","https://openalex.org/W3162802155","https://openalex.org/W3164216185","https://openalex.org/W3166794287","https://openalex.org/W3174719152","https://openalex.org/W3193826150","https://openalex.org/W4232576303","https://openalex.org/W4239451401","https://openalex.org/W4307168806","https://openalex.org/W4307886860","https://openalex.org/W4310497571","https://openalex.org/W6949259929","https://openalex.org/W6968817478"],"related_works":["https://openalex.org/W1889284597","https://openalex.org/W4323026556","https://openalex.org/W4241431292","https://openalex.org/W1500443504","https://openalex.org/W1994666727","https://openalex.org/W1598565505","https://openalex.org/W2177718015","https://openalex.org/W3164216185","https://openalex.org/W2171648479","https://openalex.org/W2088766201"],"abstract_inverted_index":{"Thanks":[0],"to":[1,9,53,56,87,110,150,153,178,276],"partial":[2],"evaluation":[3],"and":[4,27,36,62,97,107,114,131,137,162,258],"meta-tracing,":[5],"it":[6],"became":[7],"practical":[8],"build":[10],"language":[11,49],"implementations":[12,50],"that":[13,66,82,171,224,245],"reach":[14,57,175],"state-of-the-art":[15],"peak":[16,157],"performance":[17,176,218],"by":[18],"implementing":[19],"only":[20],"an":[21,129],"interpreter.":[22],"Systems":[23],"such":[24,31],"as":[25,32,146,148,256],"RPython":[26,136],"GraalVM":[28],"provide":[29],"components":[30],"a":[33,40,132,268],"garbage":[34],"collector":[35],"just-in-time":[37,200],"compiler":[38],"in":[39,73,92,118,229,297],"language-agnostic":[41],"manner,":[42],"greatly":[43],"reducing":[44],"implementation":[45],"effort.":[46],"However,":[47,220,239],"meta-compilation-based":[48],"still":[51],"need":[52],"improve":[54],"further":[55],"the":[58,103,119,141,144,163,202,260],"low":[59],"memory":[60,95,160,230,250],"use":[61,96],"fast":[63],"warmup":[64],"behavior":[65],"custom-built":[67],"systems":[68,173],"provide.":[69],"A":[70],"key":[71],"element":[72],"this":[74],"endeavor":[75],"is":[76,254],"interpreter":[77,155,262],"performance.":[78,99],"Folklore":[79],"tells":[80],"us":[81],"bytecode":[83,108,133,197,210,246,261,300],"interpreters":[84,90,109,145,186,211,247,275],"are":[85,187,204,226],"superior":[86],"abstract-syntax-tree":[88],"(AST)":[89],"both":[91,172],"terms":[93],"of":[94,121,165,281,299],"run-time":[98],"This":[100,208],"work":[101],"assesses":[102],"trade-offs":[104],"between":[105,143],"AST":[106,130,185,274],"verify":[111],"common":[112],"assumptions":[113],"whether":[115],"they":[116,289],"hold":[117],"context":[120],"meta-compilation":[122,282],"systems.":[123,283],"We":[124,139],"implemented":[125],"four":[126],"interpreters,":[127],"each":[128],"one":[134],"using":[135],"GraalVM.":[138],"keep":[140],"difference":[142],"small":[147],"feasible":[149],"be":[151,277,293],"able":[152],"evaluate":[154],"performance,":[156,158,183],"warmup,":[159],"use,":[161],"impact":[164],"individual":[166],"optimizations.":[167],"Our":[168,271],"results":[169,203,272],"show":[170,273],"indeed":[174],"close":[177],"Node.js/V8.":[179],"Looking":[180],"at":[181],"interpreter-only":[182],"our":[184],"on":[188,206,279],"par":[189],"with,":[190],"or":[191],"even":[192],"slightly":[193],"faster":[194],"than":[195,231],"their":[196,215],"counterparts.":[198],"After":[199],"compilation,":[201],"roughly":[205],"par.":[207],"means":[209],"do":[212],"not":[213,255,292],"have":[214],"widely":[216],"assumed":[217],"advantage.":[219],"we":[221,243],"can":[222],"confirm":[223],"bytecodes":[225],"more":[227,249],"compact":[228],"ASTs,":[232],"which":[233],"becomes":[234],"relevant":[235],"for":[236,240,267],"larger":[237],"applications.":[238],"smaller":[241],"applications,":[242],"noticed":[244],"allocate":[248],"because":[251,259],"boxing":[252],"avoidance":[253],"applicable,":[257],"structure":[263],"requires":[264],"memory,":[265],"e.g.,":[266],"reified":[269],"stack.":[270],"competitive":[278],"top":[280],"Together":[284],"with":[285],"possible":[286],"engineering":[287],"benefits,":[288],"should":[290],"thus":[291],"discounted":[294],"so":[295],"easily":[296],"favor":[298],"interpreters.":[301]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
