{"id":"https://openalex.org/W2091228796","doi":"https://doi.org/10.1145/2384577.2384587","title":"Self-optimizing AST interpreters","display_name":"Self-optimizing AST interpreters","publication_year":2012,"publication_date":"2012-10-22","ids":{"openalex":"https://openalex.org/W2091228796","doi":"https://doi.org/10.1145/2384577.2384587","mag":"2091228796"},"language":"en","primary_location":{"id":"doi:10.1145/2384577.2384587","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2384577.2384587","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 8th symposium on Dynamic languages","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/A5078436726","display_name":"Thomas W\u00fcrthinger","orcid":null},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Thomas W\u00fcrthinger","raw_affiliation_strings":["Oracle Labs, Linz, Austria","Oracle Labs., Linz, Austria"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Oracle Labs, Linz, Austria","institution_ids":[]},{"raw_affiliation_string":"Oracle Labs., Linz, Austria","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5003969051","display_name":"Andreas W\u00f6\u00df","orcid":null},"institutions":[{"id":"https://openalex.org/I121883995","display_name":"Johannes Kepler University of Linz","ror":"https://ror.org/052r2xn60","country_code":"AT","type":"education","lineage":["https://openalex.org/I121883995"]}],"countries":["AT"],"is_corresponding":false,"raw_author_name":"Andreas W\u00f6\u00df","raw_affiliation_strings":["Johannes Kepler University Linz, Linz, Austria","Johannes-Kepler-University Linz, Linz , Austria"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Johannes Kepler University Linz, Linz, Austria","institution_ids":["https://openalex.org/I121883995"]},{"raw_affiliation_string":"Johannes-Kepler-University Linz, Linz , Austria","institution_ids":["https://openalex.org/I121883995"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110976927","display_name":"Lukas Stadler","orcid":null},"institutions":[{"id":"https://openalex.org/I121883995","display_name":"Johannes Kepler University of Linz","ror":"https://ror.org/052r2xn60","country_code":"AT","type":"education","lineage":["https://openalex.org/I121883995"]}],"countries":["AT"],"is_corresponding":false,"raw_author_name":"Lukas Stadler","raw_affiliation_strings":["Johannes Kepler University Linz, Linz, Austria","Johannes-Kepler-University Linz, Linz , Austria"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Johannes Kepler University Linz, Linz, Austria","institution_ids":["https://openalex.org/I121883995"]},{"raw_affiliation_string":"Johannes-Kepler-University Linz, Linz , Austria","institution_ids":["https://openalex.org/I121883995"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5029837015","display_name":"Gilles Duboscq","orcid":"https://orcid.org/0000-0003-3261-4309"},"institutions":[{"id":"https://openalex.org/I121883995","display_name":"Johannes Kepler University of Linz","ror":"https://ror.org/052r2xn60","country_code":"AT","type":"education","lineage":["https://openalex.org/I121883995"]}],"countries":["AT"],"is_corresponding":false,"raw_author_name":"Gilles Duboscq","raw_affiliation_strings":["Johannes Kepler University Linz, Linz, Austria","Johannes-Kepler-University Linz, Linz , Austria"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Johannes Kepler University Linz, Linz, Austria","institution_ids":["https://openalex.org/I121883995"]},{"raw_affiliation_string":"Johannes-Kepler-University Linz, Linz , Austria","institution_ids":["https://openalex.org/I121883995"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5063810973","display_name":"Doug Simon","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Doug Simon","raw_affiliation_strings":["Oracle Labs, Zurich, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Oracle Labs, Zurich, Switzerland","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013620492","display_name":"Christian Wimmer","orcid":"https://orcid.org/0000-0003-4691-4265"},"institutions":[{"id":"https://openalex.org/I1342911587","display_name":"Oracle (United States)","ror":"https://ror.org/006c77m33","country_code":"US","type":"company","lineage":["https://openalex.org/I1342911587"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Christian Wimmer","raw_affiliation_strings":["Oracle Labs, Redwood Shores, CA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Oracle Labs, Redwood Shores, CA, USA","institution_ids":["https://openalex.org/I1342911587"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":6,"corresponding_author_ids":["https://openalex.org/A5078436726"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":19.8987,"has_fulltext":false,"cited_by_count":131,"citation_normalized_percentile":{"value":0.99428099,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":100},"biblio":{"volume":null,"issue":null,"first_page":"73","last_page":"82"},"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.9998000264167786,"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.9998000264167786,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9984999895095825,"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/T10142","display_name":"Formal Methods in Verification","score":0.9965999722480774,"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/computer-science","display_name":"Computer science","score":0.8654844760894775},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.8520306348800659},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8497163653373718},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.7073835730552673},{"id":"https://openalex.org/keywords/compiled-language","display_name":"Compiled language","score":0.5846676826477051},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5608416199684143},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.5377365350723267},{"id":"https://openalex.org/keywords/generics-in-java","display_name":"Generics in Java","score":0.4889277517795563},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.4456412196159363},{"id":"https://openalex.org/keywords/abstract-interpretation","display_name":"Abstract interpretation","score":0.4344732463359833},{"id":"https://openalex.org/keywords/interpretation","display_name":"Interpretation (philosophy)","score":0.41813135147094727},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.4169997572898865},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.3594144582748413},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.29383471608161926},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.2593355178833008},{"id":"https://openalex.org/keywords/high-level-programming-language","display_name":"High-level programming language","score":0.23006772994995117},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.20518824458122253}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8654844760894775},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.8520306348800659},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8497163653373718},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.7073835730552673},{"id":"https://openalex.org/C92966194","wikidata":"https://www.wikidata.org/wiki/Q651794","display_name":"Compiled language","level":4,"score":0.5846676826477051},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5608416199684143},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.5377365350723267},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.4889277517795563},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.4456412196159363},{"id":"https://openalex.org/C2780654840","wikidata":"https://www.wikidata.org/wiki/Q333341","display_name":"Abstract interpretation","level":2,"score":0.4344732463359833},{"id":"https://openalex.org/C527412718","wikidata":"https://www.wikidata.org/wiki/Q855395","display_name":"Interpretation (philosophy)","level":2,"score":0.41813135147094727},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.4169997572898865},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.3594144582748413},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.29383471608161926},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.2593355178833008},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.23006772994995117},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.20518824458122253},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2384577.2384587","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2384577.2384587","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 8th symposium on Dynamic languages","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":21,"referenced_works":["https://openalex.org/W14423118","https://openalex.org/W32659762","https://openalex.org/W1514258760","https://openalex.org/W1595450046","https://openalex.org/W1668251704","https://openalex.org/W1777693579","https://openalex.org/W1970709334","https://openalex.org/W1993335798","https://openalex.org/W2010167524","https://openalex.org/W2010448353","https://openalex.org/W2058213389","https://openalex.org/W2058639022","https://openalex.org/W2062414112","https://openalex.org/W2072617265","https://openalex.org/W2116136092","https://openalex.org/W2117538871","https://openalex.org/W2128457714","https://openalex.org/W2141293928","https://openalex.org/W2159558457","https://openalex.org/W2339802588","https://openalex.org/W2911524086"],"related_works":["https://openalex.org/W1553357069","https://openalex.org/W1480767630","https://openalex.org/W2150877629","https://openalex.org/W2060204386","https://openalex.org/W2146202824","https://openalex.org/W1583225756","https://openalex.org/W1970806266","https://openalex.org/W2987539681","https://openalex.org/W2002997445","https://openalex.org/W2896837885"],"abstract_inverted_index":{"An":[0],"abstract":[1],"syntax":[2],"tree":[3,77],"(AST)":[4],"interpreter":[5],"is":[6,19,68,79,96],"a":[7,14,57,80],"simple":[8],"and":[9,49,82,100,105],"natural":[10],"way":[11],"to":[12,39,51,60,72,85,112],"implement":[13],"programming":[15,92,124],"language.":[16],"However,":[17],"it":[18],"also":[20],"considered":[21],"the":[22,27,44,66,102,114],"slowest":[23],"approach":[24,59],"because":[25],"of":[26,30,46,109,116,119],"high":[28],"overhead":[29],"virtual":[31],"method":[32],"dispatch.":[33],"Language":[34],"implementers":[35],"therefore":[36],"define":[37],"bytecodes":[38],"speed":[40],"up":[41],"interpretation,":[42],"at":[43],"cost":[45,115],"introducing":[47],"inflexible":[48],"hard":[50],"maintain":[52],"bytecode":[53],"formats.":[54],"We":[55],"present":[56],"novel":[58],"implementing":[61],"AST":[62,67],"interpreters":[63],"in":[64,90,98,122],"which":[65],"modified":[69],"during":[70],"interpretation":[71],"incorporate":[73],"type":[74],"feedback.":[75],"This":[76],"rewriting":[78],"general":[81],"powerful":[83],"mechanism":[84],"optimize":[86],"many":[87],"constructs":[88],"common":[89],"dynamic":[91,123],"languages.":[93,125],"Our":[94],"system":[95],"implemented":[97],"Java":[99,110],"uses":[101],"static":[103],"typing":[104],"primitive":[106,120],"data":[107],"types":[108],"elegantly":[111],"avoid":[113],"boxed":[117],"representations":[118],"values":[121]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":9},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":8},{"year":2020,"cited_by_count":5},{"year":2019,"cited_by_count":8},{"year":2018,"cited_by_count":20},{"year":2017,"cited_by_count":12},{"year":2016,"cited_by_count":12},{"year":2015,"cited_by_count":20},{"year":2014,"cited_by_count":15},{"year":2013,"cited_by_count":9},{"year":2012,"cited_by_count":1}],"updated_date":"2026-04-26T08:31:28.666265","created_date":"2025-10-10T00:00:00"}
