{"id":"https://openalex.org/W2059503332","doi":"https://doi.org/10.1145/2816707.2816715","title":"Java-to-JavaScript translation via structured control flow reconstruction of compiler IR","display_name":"Java-to-JavaScript translation via structured control flow reconstruction of compiler IR","publication_year":2015,"publication_date":"2015-10-21","ids":{"openalex":"https://openalex.org/W2059503332","doi":"https://doi.org/10.1145/2816707.2816715","mag":"2059503332"},"language":"en","primary_location":{"id":"doi:10.1145/2816707.2816715","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2816707.2816715","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/A5069165515","display_name":"David Leopoldseder","orcid":"https://orcid.org/0000-0002-9361-6431"},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"David Leopoldseder","raw_affiliation_strings":["JKU Linz, Austria"],"affiliations":[{"raw_affiliation_string":"JKU Linz, Austria","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110976927","display_name":"Lukas Stadler","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Lukas Stadler","raw_affiliation_strings":["Oracle Labs, Austria"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, Austria","institution_ids":[]}]},{"author_position":"middle","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, USA","Oracle Labs., USA"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, USA","institution_ids":["https://openalex.org/I1342911587"]},{"raw_affiliation_string":"Oracle Labs., USA","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":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5069165515"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.8629,"has_fulltext":false,"cited_by_count":6,"citation_normalized_percentile":{"value":0.82215103,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"91","last_page":"103"},"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.9997000098228455,"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.9997000098228455,"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.9988999962806702,"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/T11424","display_name":"Security and Verification in Computing","score":0.9970999956130981,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8853970170021057},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6427406072616577},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6415368318557739},{"id":"https://openalex.org/keywords/java-bytecode","display_name":"Java bytecode","score":0.5887145400047302},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5755733251571655},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.5616581439971924},{"id":"https://openalex.org/keywords/javascript","display_name":"JavaScript","score":0.5374212265014648},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.4990224838256836},{"id":"https://openalex.org/keywords/java-modeling-language","display_name":"Java Modeling Language","score":0.4653279185295105},{"id":"https://openalex.org/keywords/strictfp","display_name":"strictfp","score":0.4558833837509155},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.4437696635723114},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.43784579634666443},{"id":"https://openalex.org/keywords/compiler-correctness","display_name":"Compiler correctness","score":0.4275874197483063},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4084530174732208},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.35307610034942627},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.3059571087360382}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8853970170021057},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6427406072616577},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6415368318557739},{"id":"https://openalex.org/C2777472213","wikidata":"https://www.wikidata.org/wiki/Q137496","display_name":"Java bytecode","level":5,"score":0.5887145400047302},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5755733251571655},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.5616581439971924},{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.5374212265014648},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.4990224838256836},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.4653279185295105},{"id":"https://openalex.org/C174954855","wikidata":"https://www.wikidata.org/wiki/Q7623626","display_name":"strictfp","level":4,"score":0.4558833837509155},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.4437696635723114},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.43784579634666443},{"id":"https://openalex.org/C68366613","wikidata":"https://www.wikidata.org/wiki/Q5156378","display_name":"Compiler correctness","level":3,"score":0.4275874197483063},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4084530174732208},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.35307610034942627},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.3059571087360382}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2816707.2816715","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2816707.2816715","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":27,"referenced_works":["https://openalex.org/W1521580745","https://openalex.org/W1543331277","https://openalex.org/W1668251704","https://openalex.org/W1881465144","https://openalex.org/W1979287304","https://openalex.org/W1982205631","https://openalex.org/W2017351599","https://openalex.org/W2031623472","https://openalex.org/W2049890071","https://openalex.org/W2065659882","https://openalex.org/W2067872619","https://openalex.org/W2075675735","https://openalex.org/W2091228796","https://openalex.org/W2094269821","https://openalex.org/W2097145414","https://openalex.org/W2105926347","https://openalex.org/W2125897312","https://openalex.org/W2128832779","https://openalex.org/W2156487548","https://openalex.org/W2160756430","https://openalex.org/W2163225748","https://openalex.org/W2164296674","https://openalex.org/W2913215602","https://openalex.org/W4230856253","https://openalex.org/W4231056550","https://openalex.org/W4237954929","https://openalex.org/W6635659031"],"related_works":["https://openalex.org/W1970806266","https://openalex.org/W3099706040","https://openalex.org/W2016474211","https://openalex.org/W2186011611","https://openalex.org/W2008905239","https://openalex.org/W1521580745","https://openalex.org/W2035069210","https://openalex.org/W4249764155","https://openalex.org/W1602642926","https://openalex.org/W2124765047"],"abstract_inverted_index":{"We":[0,95],"present":[1,96],"an":[2,110],"approach":[3],"to":[4,8,31,72,87,131,165],"cross-compile":[5],"Java":[6,13,21,36,116,185],"bytecodes":[7],"Java-Script,":[9],"building":[10],"on":[11,108,174,194],"existing":[12],"optimizing":[14,112],"compiler":[15,38,52,113],"technology.":[16],"Static":[17,170],"analysis":[18,171],"determines":[19],"which":[20],"classes":[22],"and":[23,58,74,119,124,139,152,168],"methods":[24],"are":[25,28],"reachable.":[26],"These":[27],"then":[29,153],"translated":[30],"JavaScript":[32,46,76,154,159,197],"using":[33],"a":[34,40,161],"re-configured":[35],"just-in-time":[37],"with":[39,191],"new":[41],"back":[42,145],"end":[43,146],"that":[44],"generates":[45],"instead":[47],"of":[48,98,127,163],"machine":[49],"code.":[50,77],"Standard":[51],"optimizations":[53,66,164],"such":[54,67,187],"as":[55,62,64,68,179,188],"method":[56],"inlining":[57],"global":[59],"value":[60],"numbering,":[61],"well":[63],"advanced":[65],"escape":[69],"analysis,":[70],"lead":[71],"compact":[73],"optimized":[75],"Compiler":[78],"IR":[79],"is":[80,93,106,172],"unstructured,":[81],"so":[82],"structured":[83],"control":[84,100,149],"flow":[85,101,150],"needs":[86],"be":[88],"reconstructed":[89],"before":[90],"code":[91,155],"generation":[92],"possible.":[94],"details":[97],"our":[99],"reconstruction":[102,151],"algorithm.":[103],"Our":[104,143],"system":[105],"based":[107],"Graal,":[109],"open-source":[111],"for":[114,183],"the":[115,133,136,140,175,195],"HotSpot":[117],"VM":[118],"other":[120],"VMs.":[121],"The":[122,157],"modular":[123],"VM-independent":[125],"architecture":[126],"Graal":[128,176],"allows":[129],"us":[130],"reuse":[132],"intermediate":[134,177],"representation,":[135],"bytecode":[137],"parser,":[138],"high-level":[141],"optimizations.":[142],"custom":[144],"first":[147],"performs":[148],"generation.":[156],"generated":[158],"undergoes":[160],"set":[162],"increase":[166],"readability":[167],"performance.":[169],"performed":[173],"representation":[178],"well.":[180],"Benchmark":[181],"results":[182],"medium-sized":[184],"benchmarks":[186],"SPECjbb2005":[189],"run":[190],"acceptable":[192],"performance":[193],"V8":[196],"VM.":[198]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
