{"id":"https://openalex.org/W1986466480","doi":"https://doi.org/10.1145/2816707.2816714","title":"High-performance cross-language interoperability in a multi-language runtime","display_name":"High-performance cross-language interoperability in a multi-language runtime","publication_year":2015,"publication_date":"2015-10-21","ids":{"openalex":"https://openalex.org/W1986466480","doi":"https://doi.org/10.1145/2816707.2816714","mag":"1986466480"},"language":"en","primary_location":{"id":"doi:10.1145/2816707.2816714","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2816707.2816714","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 11th 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/A5057146872","display_name":"Matthias Grimmer","orcid":"https://orcid.org/0000-0003-4295-1579"},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Matthias Grimmer","raw_affiliation_strings":["JKU Linz, Austria"],"affiliations":[{"raw_affiliation_string":"JKU Linz, Austria","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5037104076","display_name":"Chris Seaton","orcid":null},"institutions":[{"id":"https://openalex.org/I4210107681","display_name":"Oracle (United Kingdom)","ror":"https://ror.org/01pe8xs92","country_code":"GB","type":"company","lineage":["https://openalex.org/I1342911587","https://openalex.org/I4210107681"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Chris Seaton","raw_affiliation_strings":["Oracle Labs, UK"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, UK","institution_ids":["https://openalex.org/I4210107681"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5043840658","display_name":"Roland Schatz","orcid":"https://orcid.org/0009-0006-3100-8816"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Roland Schatz","raw_affiliation_strings":["Oracle Labs, Austria"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, Austria","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5078436726","display_name":"Thomas W\u00fcrthinger","orcid":null},"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":"Thomas W\u00fcrthinger","raw_affiliation_strings":["Oracle Labs, Switzerland","Oracle Labs, Switzerland#TAB#"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, Switzerland","institution_ids":[]},{"raw_affiliation_string":"Oracle Labs, Switzerland#TAB#","institution_ids":["https://openalex.org/I1342911587"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5011678778","display_name":"Hanspeter M\u00f6ssenb\u00f6ck","orcid":"https://orcid.org/0000-0001-7706-7308"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Hanspeter M\u00f6ssenb\u00f6ck","raw_affiliation_strings":["JKU Linz, Austria"],"affiliations":[{"raw_affiliation_string":"JKU Linz, Austria","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5057146872"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":5.1677,"has_fulltext":false,"cited_by_count":45,"citation_normalized_percentile":{"value":0.95647472,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"78","last_page":"90"},"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.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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9957000017166138,"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/computer-science","display_name":"Computer science","score":0.9032353758811951},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7386208772659302},{"id":"https://openalex.org/keywords/low-level-programming-language","display_name":"Low-level programming language","score":0.6317276358604431},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5727785229682922},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.5561875104904175},{"id":"https://openalex.org/keywords/programming-language-implementation","display_name":"Programming language implementation","score":0.5555152893066406},{"id":"https://openalex.org/keywords/javascript","display_name":"JavaScript","score":0.5206027030944824},{"id":"https://openalex.org/keywords/marshalling","display_name":"Marshalling","score":0.4567717909812927},{"id":"https://openalex.org/keywords/language-primitive","display_name":"Language primitive","score":0.4404711425304413},{"id":"https://openalex.org/keywords/high-level-programming-language","display_name":"High-level programming language","score":0.41985374689102173},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.22940102219581604},{"id":"https://openalex.org/keywords/fifth-generation-programming-language","display_name":"Fifth-generation programming language","score":0.13417282700538635},{"id":"https://openalex.org/keywords/programming-domain","display_name":"Programming domain","score":0.13316941261291504}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9032353758811951},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7386208772659302},{"id":"https://openalex.org/C124577441","wikidata":"https://www.wikidata.org/wiki/Q558937","display_name":"Low-level programming language","level":5,"score":0.6317276358604431},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5727785229682922},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.5561875104904175},{"id":"https://openalex.org/C201997060","wikidata":"https://www.wikidata.org/wiki/Q4117406","display_name":"Programming language implementation","level":5,"score":0.5555152893066406},{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.5206027030944824},{"id":"https://openalex.org/C206019424","wikidata":"https://www.wikidata.org/wiki/Q373671","display_name":"Marshalling","level":2,"score":0.4567717909812927},{"id":"https://openalex.org/C20724563","wikidata":"https://www.wikidata.org/wiki/Q3075258","display_name":"Language primitive","level":4,"score":0.4404711425304413},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.41985374689102173},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.22940102219581604},{"id":"https://openalex.org/C199305712","wikidata":"https://www.wikidata.org/wiki/Q3205914","display_name":"Fifth-generation programming language","level":3,"score":0.13417282700538635},{"id":"https://openalex.org/C119263510","wikidata":"https://www.wikidata.org/wiki/Q7248501","display_name":"Programming domain","level":4,"score":0.13316941261291504},{"id":"https://openalex.org/C61714564","wikidata":"https://www.wikidata.org/wiki/Q7661185","display_name":"Symbolic programming","level":4,"score":0.0},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2816707.2816714","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2816707.2816714","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 11th 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":42,"referenced_works":["https://openalex.org/W149310437","https://openalex.org/W196916181","https://openalex.org/W1493349649","https://openalex.org/W1533781805","https://openalex.org/W1560840983","https://openalex.org/W1576814610","https://openalex.org/W1595637483","https://openalex.org/W1919920699","https://openalex.org/W1970709334","https://openalex.org/W1978138677","https://openalex.org/W1978544037","https://openalex.org/W1978680977","https://openalex.org/W1999512654","https://openalex.org/W2008737989","https://openalex.org/W2014472261","https://openalex.org/W2018107877","https://openalex.org/W2028642878","https://openalex.org/W2036825485","https://openalex.org/W2072916763","https://openalex.org/W2075675735","https://openalex.org/W2089424085","https://openalex.org/W2091228796","https://openalex.org/W2094269821","https://openalex.org/W2103240295","https://openalex.org/W2104216136","https://openalex.org/W2111531191","https://openalex.org/W2116129553","https://openalex.org/W2120878745","https://openalex.org/W2123357908","https://openalex.org/W2130235146","https://openalex.org/W2132215655","https://openalex.org/W2141293928","https://openalex.org/W2143322757","https://openalex.org/W2159558457","https://openalex.org/W2161790281","https://openalex.org/W2162053995","https://openalex.org/W2618896829","https://openalex.org/W4210628039","https://openalex.org/W4236519034","https://openalex.org/W4245120671","https://openalex.org/W6635367966","https://openalex.org/W6639954514"],"related_works":["https://openalex.org/W1849651812","https://openalex.org/W2376978878","https://openalex.org/W2678467022","https://openalex.org/W2360705725","https://openalex.org/W2970584952","https://openalex.org/W3022142379","https://openalex.org/W2067569787","https://openalex.org/W4301347183","https://openalex.org/W4250553030","https://openalex.org/W1966759408"],"abstract_inverted_index":{"Programmers":[0],"combine":[1],"different":[2,58],"programming":[3],"languages":[4],"because":[5],"it":[6],"allows":[7,56,150],"them":[8,131],"to":[9,19,27,30,73,79,101,132,154],"use":[10,118],"the":[11,50,67,87,90,122,146,151,175],"most":[12],"suitable":[13],"language":[14,26,59,95,147,159,181],"for":[15],"a":[16,52,62,74,112],"given":[17],"problem,":[18],"gradually":[20],"migrate":[21],"existing":[22,32,36],"projects":[23],"from":[24,40],"one":[25],"another,":[28],"or":[29,45,83,140],"reuse":[31],"source":[33,99],"code.":[34],"However,":[35],"cross-language":[37],"mechanisms":[38],"suffer":[39],"complex":[41],"interfaces,":[42],"insufficient":[43],"flexibility,":[44],"poor":[46],"performance.":[47,164],"We":[48,93],"present":[49],"TruffleVM,":[51],"multi-language":[53],"runtime":[54,114,123],"that":[55,97,121],"composing":[57],"implementations":[60,96,117,182],"in":[61],"seamless":[63],"way.":[64],"It":[65],"reduces":[66],"amount":[68],"of":[69,89,111,142,170],"required":[70],"boiler-plate":[71],"code":[72,100],"minimum":[75],"by":[76,85,129],"allowing":[77],"programmers":[78],"access":[80],"foreign":[81,143],"functions":[82],"objects":[84,144],"using":[86],"notation":[88],"host":[91],"language.":[92],"compose":[94],"translate":[98],"an":[102,168],"intermediate":[103],"representation":[104],"(IR),":[105],"which":[106,161],"is":[107],"executed":[108],"on":[109,174],"top":[110],"shared":[113],"system.":[115],"Language":[116],"language-independent":[119],"messages":[120],"resolves":[124],"at":[125,145],"their":[126],"first":[127],"execution":[128],"transforming":[130],"efficient":[133],"foreign-language-specific":[134],"operations.":[135],"The":[136],"TruffleVM":[137],"avoids":[138],"conversion":[139],"marshaling":[141],"boundary":[148],"and":[149,178,185],"dynamic":[152],"compiler":[153],"perform":[155],"its":[156,179],"optimizations":[157],"across":[158],"boundaries,":[160],"guarantees":[162],"high":[163],"This":[165],"paper":[166],"presents":[167],"implementation":[169],"our":[171],"ideas":[172],"based":[173],"Truffle":[176],"system":[177],"guest":[180],"JavaScript,":[183],"Ruby,":[184],"C.":[186]},"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":6},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":6},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":6},{"year":2018,"cited_by_count":11},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
