{"id":"https://openalex.org/W2016567396","doi":"https://doi.org/10.1145/2814270.2814275","title":"Tracing vs. partial evaluation: comparing meta-compilation approaches for self-optimizing interpreters","display_name":"Tracing vs. partial evaluation: comparing meta-compilation approaches for self-optimizing interpreters","publication_year":2015,"publication_date":"2015-10-23","ids":{"openalex":"https://openalex.org/W2016567396","doi":"https://doi.org/10.1145/2814270.2814275","mag":"2016567396"},"language":"en","primary_location":{"id":"doi:10.1145/2814270.2814275","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814270.2814275","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications","raw_type":"proceedings-article"},"type":"preprint","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://inria.hal.science/hal-01205345v1/file/Marr15b-Oopsla15-TracingVSPartial.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5015543736","display_name":"Stefan Marr","orcid":"https://orcid.org/0000-0001-9059-5180"},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en informatique et en automatique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"funder","lineage":["https://openalex.org/I1326498283"]}],"countries":["FR"],"is_corresponding":true,"raw_author_name":"Stefan Marr","raw_affiliation_strings":["INRIA, France"],"affiliations":[{"raw_affiliation_string":"INRIA, France","institution_ids":["https://openalex.org/I1326498283"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5031290426","display_name":"St\u00e9\u0301phane Ducasse","orcid":"https://orcid.org/0000-0001-6070-6599"},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en informatique et en automatique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"funder","lineage":["https://openalex.org/I1326498283"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"St\u00e9phane Ducasse","raw_affiliation_strings":["INRIA, France"],"affiliations":[{"raw_affiliation_string":"INRIA, France","institution_ids":["https://openalex.org/I1326498283"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5015543736"],"corresponding_institution_ids":["https://openalex.org/I1326498283"],"apc_list":null,"apc_paid":null,"fwci":6.6764,"has_fulltext":true,"cited_by_count":29,"citation_normalized_percentile":{"value":0.96688922,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"821","last_page":"839"},"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.9994000196456909,"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.9994000196456909,"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/T10260","display_name":"Software Engineering Research","score":0.9976000189781189,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8709868788719177},{"id":"https://openalex.org/keywords/partial-evaluation","display_name":"Partial evaluation","score":0.7589766979217529},{"id":"https://openalex.org/keywords/tracing","display_name":"Tracing","score":0.7584155797958374},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.7392942905426025},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.6176509261131287},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5717470049858093},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.525299608707428},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.4969208538532257},{"id":"https://openalex.org/keywords/metaprogramming","display_name":"Metaprogramming","score":0.4825293719768524},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.4681810438632965},{"id":"https://openalex.org/keywords/dynamic-compilation","display_name":"Dynamic compilation","score":0.4366661310195923},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.4226747453212738}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8709868788719177},{"id":"https://openalex.org/C195701839","wikidata":"https://www.wikidata.org/wiki/Q4008398","display_name":"Partial evaluation","level":2,"score":0.7589766979217529},{"id":"https://openalex.org/C138673069","wikidata":"https://www.wikidata.org/wiki/Q322229","display_name":"Tracing","level":2,"score":0.7584155797958374},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.7392942905426025},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.6176509261131287},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5717470049858093},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.525299608707428},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.4969208538532257},{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.4825293719768524},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.4681810438632965},{"id":"https://openalex.org/C8767382","wikidata":"https://www.wikidata.org/wiki/Q1058454","display_name":"Dynamic compilation","level":3,"score":0.4366661310195923},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.4226747453212738},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"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":5,"locations":[{"id":"doi:10.1145/2814270.2814275","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814270.2814275","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications","raw_type":"proceedings-article"},{"id":"pmh:oai:kar.kent.ac.uk:63825","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814270.2814275>)","pdf_url":null,"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":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":null,"raw_type":"PeerReviewed"},{"id":"pmh:oai:HAL:hal-01205345v1","is_oa":true,"landing_page_url":"https://inria.hal.science/hal-01205345","pdf_url":"https://inria.hal.science/hal-01205345v1/file/Marr15b-Oopsla15-TracingVSPartial.pdf","source":{"id":"https://openalex.org/S4406922461","display_name":"SPIRE - Sciences Po Institutional REpository","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Proceedings of ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA '15), Oct 2015, Pittsburgh, PA, United States. &#x27E8;10.1145/2814270.2814275&#x27E9;","raw_type":"Conference papers"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.725.8373","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.725.8373","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://stefan-marr.de/downloads/oopsla15-marr-ducasse-meta-tracing-vs-partial-evaluation.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.726.39","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.726.39","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://stefan-marr.de/papers/oopsla-marr-ducasse-meta-tracing-vs-partial-evaluation-artifacts/submitted-draft.pdf","raw_type":"text"}],"best_oa_location":{"id":"pmh:oai:HAL:hal-01205345v1","is_oa":true,"landing_page_url":"https://inria.hal.science/hal-01205345","pdf_url":"https://inria.hal.science/hal-01205345v1/file/Marr15b-Oopsla15-TracingVSPartial.pdf","source":{"id":"https://openalex.org/S4406922461","display_name":"SPIRE - Sciences Po Institutional REpository","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Proceedings of ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA '15), Oct 2015, Pittsburgh, PA, United States. &#x27E8;10.1145/2814270.2814275&#x27E9;","raw_type":"Conference papers"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2016567396.pdf","grobid_xml":"https://content.openalex.org/works/W2016567396.grobid-xml"},"referenced_works_count":31,"referenced_works":["https://openalex.org/W1576072584","https://openalex.org/W1878889593","https://openalex.org/W1912157869","https://openalex.org/W1970709334","https://openalex.org/W1993335798","https://openalex.org/W2002859943","https://openalex.org/W2026489303","https://openalex.org/W2035975177","https://openalex.org/W2058213389","https://openalex.org/W2058639022","https://openalex.org/W2059006730","https://openalex.org/W2062414112","https://openalex.org/W2064918005","https://openalex.org/W2072737419","https://openalex.org/W2084845478","https://openalex.org/W2088772524","https://openalex.org/W2091228796","https://openalex.org/W2094269821","https://openalex.org/W2098575713","https://openalex.org/W2110629752","https://openalex.org/W2130235146","https://openalex.org/W2130262734","https://openalex.org/W2135416495","https://openalex.org/W2141293928","https://openalex.org/W2149827666","https://openalex.org/W2159558457","https://openalex.org/W2163077605","https://openalex.org/W2166091242","https://openalex.org/W2565555751","https://openalex.org/W2572804059","https://openalex.org/W4231002400"],"related_works":["https://openalex.org/W2049362499","https://openalex.org/W131457901","https://openalex.org/W3207712758","https://openalex.org/W1998416211","https://openalex.org/W4235832836","https://openalex.org/W3138455083","https://openalex.org/W2140487696","https://openalex.org/W2741254607","https://openalex.org/W3184946019","https://openalex.org/W2016567396"],"abstract_inverted_index":{"Tracing":[0,54],"and":[1,55,96,143],"partial":[2,56,99,144,169],"evaluation":[3,57,145,170],"have":[4],"been":[5],"proposed":[6],"as":[7,34],"meta-compilation":[8,60],"techniques":[9],"for":[10,50,86,94,98,119],"interpreters":[11,24],"to":[12,128,180,193,197],"make":[13],"just-in-time":[14,47],"compilation":[15],"language-independent.":[16],"They":[17],"promise":[18],"that":[19,141],"programs":[20],"executing":[21],"on":[22,40,92,113,156,159,168,172],"simple":[23],"can":[25],"reach":[26,147,198],"performance":[27,115,135],"of":[28,32,64,71,81,110,116,152,202],"the":[29,79,103,108,114,149,181,199],"same":[30,150,200],"order":[31],"magnitude":[33],"if":[35],"they":[36],"would":[37],"be":[38],"executed":[39],"state-of-the-art":[41],"virtual":[42],"machines":[43],"with":[44],"highly":[45],"optimizing":[46],"compilers":[48],"built":[49],"a":[51,65,84],"specific":[52],"language.":[53,124],"approach":[58,132],"this":[59],"from":[61],"two":[62,104],"ends":[63],"spectrum,":[66],"resulting":[67],"in":[68,78],"different":[69],"sets":[70],"tradeoffs.":[72],"This":[73],"study":[74],"investigates":[75],"both":[76,146],"approaches":[77,105],"context":[80],"self-optimizing":[82],"interpreters,":[83],"technique":[85],"building":[87],"fast":[88],"abstract-syntax-tree":[89],"interpreters.":[90],"Based":[91],"RPython":[93],"tracing":[95,142,183],"Truffle":[97],"evaluation,":[100],"we":[101],"assess":[102],"by":[106],"comparing":[107],"impact":[109],"various":[111],"optimizations":[112,196],"an":[117,121],"interpreter":[118],"SOM,":[120],"object-oriented":[122],"dynamically-typed":[123],"The":[125],"goal":[126],"is":[127,158,171],"determine":[129],"whether":[130],"either":[131],"yields":[133],"clear":[134],"or":[136],"engineering":[137],"benefits.":[138],"We":[139],"find":[140],"roughly":[148],"level":[151,201],"performance.":[153,203],"SOM":[154,166],"based":[155,167],"meta-tracing":[157],"average":[160,173],"3x":[161],"slower":[162,175],"than":[163,176],"Java,":[164],"while":[165],"2.3x":[174],"Java.":[177],"With":[178],"respect":[179],"engineering,":[182],"has":[184],"however":[185],"significant":[186],"benefits,":[187],"because":[188],"it":[189],"requires":[190],"language":[191],"implementers":[192],"apply":[194],"fewer":[195]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":4},{"year":2017,"cited_by_count":6},{"year":2016,"cited_by_count":5},{"year":2014,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
