{"id":"https://openalex.org/W4390604789","doi":"https://doi.org/10.1145/3632922","title":"Indexed Types for a Statically Safe WebAssembly","display_name":"Indexed Types for a Statically Safe WebAssembly","publication_year":2024,"publication_date":"2024-01-02","ids":{"openalex":"https://openalex.org/W4390604789","doi":"https://doi.org/10.1145/3632922"},"language":"en","primary_location":{"id":"doi:10.1145/3632922","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632922","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632922","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","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"paratext","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3632922","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5037903389","display_name":"Adam T. Geller","orcid":"https://orcid.org/0009-0008-8137-7577"},"institutions":[{"id":"https://openalex.org/I141945490","display_name":"University of British Columbia","ror":"https://ror.org/03rmrcq20","country_code":"CA","type":"education","lineage":["https://openalex.org/I141945490"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Adam T. Geller","raw_affiliation_strings":["University of British Columbia, Vancouver, Canada"],"raw_orcid":"https://orcid.org/0009-0008-8137-7577","affiliations":[{"raw_affiliation_string":"University of British Columbia, Vancouver, Canada","institution_ids":["https://openalex.org/I141945490"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5056975077","display_name":"J. Ray Frank","orcid":"https://orcid.org/0009-0007-7024-7331"},"institutions":[{"id":"https://openalex.org/I141945490","display_name":"University of British Columbia","ror":"https://ror.org/03rmrcq20","country_code":"CA","type":"education","lineage":["https://openalex.org/I141945490"]},{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["CA","US"],"is_corresponding":false,"raw_author_name":"Justine Frank","raw_affiliation_strings":["University of British Columbia, Vancouver, Canada","University of Maryland, College Park, USA","University of Maryland, College Park, USA / University of British Columbia, Vancouver, Canada"],"raw_orcid":"https://orcid.org/0009-0007-7024-7331","affiliations":[{"raw_affiliation_string":"University of British Columbia, Vancouver, Canada","institution_ids":["https://openalex.org/I141945490"]},{"raw_affiliation_string":"University of Maryland, College Park, USA","institution_ids":["https://openalex.org/I66946132"]},{"raw_affiliation_string":"University of Maryland, College Park, USA / University of British Columbia, Vancouver, Canada","institution_ids":["https://openalex.org/I141945490","https://openalex.org/I66946132"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5049942420","display_name":"William J. Bowman","orcid":"https://orcid.org/0000-0002-6402-4840"},"institutions":[{"id":"https://openalex.org/I141945490","display_name":"University of British Columbia","ror":"https://ror.org/03rmrcq20","country_code":"CA","type":"education","lineage":["https://openalex.org/I141945490"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"William J. Bowman","raw_affiliation_strings":["University of British Columbia, Vancouver, Canada"],"raw_orcid":"https://orcid.org/0000-0002-6402-4840","affiliations":[{"raw_affiliation_string":"University of British Columbia, Vancouver, Canada","institution_ids":["https://openalex.org/I141945490"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":4,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":"8","issue":"POPL","first_page":"2395","last_page":"2424"},"is_retracted":false,"is_paratext":true,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9944999814033508,"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/T11424","display_name":"Security and Verification in Computing","score":0.9944999814033508,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9805999994277954,"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/T10260","display_name":"Software Engineering Research","score":0.9764000177383423,"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.7883095741271973},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6735513806343079},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.6292815208435059},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.6117290258407593},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5719074010848999},{"id":"https://openalex.org/keywords/suite","display_name":"Suite","score":0.5284298062324524},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.52556312084198},{"id":"https://openalex.org/keywords/memory-safety","display_name":"Memory safety","score":0.4777238070964813},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.47729790210723877},{"id":"https://openalex.org/keywords/spec#","display_name":"Spec#","score":0.46337857842445374},{"id":"https://openalex.org/keywords/binary-number","display_name":"Binary number","score":0.4409436285495758},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.4225693345069885},{"id":"https://openalex.org/keywords/arithmetic","display_name":"Arithmetic","score":0.18744084239006042},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.14159107208251953}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7883095741271973},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6735513806343079},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.6292815208435059},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.6117290258407593},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5719074010848999},{"id":"https://openalex.org/C79581498","wikidata":"https://www.wikidata.org/wiki/Q1367530","display_name":"Suite","level":2,"score":0.5284298062324524},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.52556312084198},{"id":"https://openalex.org/C28180684","wikidata":"https://www.wikidata.org/wiki/Q4080983","display_name":"Memory safety","level":3,"score":0.4777238070964813},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.47729790210723877},{"id":"https://openalex.org/C2778565505","wikidata":"https://www.wikidata.org/wiki/Q2207566","display_name":"Spec#","level":2,"score":0.46337857842445374},{"id":"https://openalex.org/C48372109","wikidata":"https://www.wikidata.org/wiki/Q3913","display_name":"Binary number","level":2,"score":0.4409436285495758},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.4225693345069885},{"id":"https://openalex.org/C94375191","wikidata":"https://www.wikidata.org/wiki/Q11205","display_name":"Arithmetic","level":1,"score":0.18744084239006042},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.14159107208251953},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0},{"id":"https://openalex.org/C95457728","wikidata":"https://www.wikidata.org/wiki/Q309","display_name":"History","level":0,"score":0.0},{"id":"https://openalex.org/C166957645","wikidata":"https://www.wikidata.org/wiki/Q23498","display_name":"Archaeology","level":1,"score":0.0},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3632922","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632922","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632922","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","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3632922","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632922","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632922","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","license_id":"https://openalex.org/licenses/cc-by","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":[{"score":0.41999998688697815,"display_name":"Partnerships for the goals","id":"https://metadata.un.org/sdg/17"}],"awards":[{"id":"https://openalex.org/G4315519420","display_name":null,"funder_award_id":"04207","funder_id":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada"},{"id":"https://openalex.org/G6001539609","display_name":"CRC in Astrophysical Data Analysis and Machine Learning","funder_award_id":"crc-2019-00420","funder_id":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada"},{"id":"https://openalex.org/G8275187778","display_name":"Compilers that Preserve and Enforce Invariants and Proofs","funder_award_id":"rgpin-2019-04207","funder_id":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada"},{"id":"https://openalex.org/G832689143","display_name":null,"funder_award_id":"RGPIN-2019","funder_id":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada"}],"funders":[{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4390604789.pdf","grobid_xml":"https://content.openalex.org/works/W4390604789.grobid-xml"},"referenced_works_count":18,"referenced_works":["https://openalex.org/W144372381","https://openalex.org/W2034711041","https://openalex.org/W2045900383","https://openalex.org/W2069107692","https://openalex.org/W2128963089","https://openalex.org/W2135322712","https://openalex.org/W2139143398","https://openalex.org/W2140566629","https://openalex.org/W2142481893","https://openalex.org/W2149469095","https://openalex.org/W2165134790","https://openalex.org/W2171691057","https://openalex.org/W2340618214","https://openalex.org/W2625141509","https://openalex.org/W2768658963","https://openalex.org/W2912293148","https://openalex.org/W3207761394","https://openalex.org/W4390605965"],"related_works":["https://openalex.org/W2371266106","https://openalex.org/W2117382851","https://openalex.org/W3006505070","https://openalex.org/W2382449560","https://openalex.org/W2110432562","https://openalex.org/W2002505081","https://openalex.org/W2083681681","https://openalex.org/W2577630842","https://openalex.org/W1172579163","https://openalex.org/W2767298477"],"abstract_inverted_index":{"We":[0,38,99],"present":[1],"Wasm-precheck,":[2,107],"a":[3,84],"superset":[4],"of":[5,44,56,72,106],"WebAssembly":[6],"(Wasm)":[7],"that":[8],"uses":[9],"indexed":[10],"types":[11],"to":[12,120],"express":[13],"and":[14,48,53,65,94,103,122,125],"check":[15],"simple":[16],"constraints":[17],"over":[18],"program":[19],"values.":[20],"This":[21],"additional":[22],"static":[23],"reasoning":[24],"enables":[25],"safely":[26,110],"removing":[27],"dynamic":[28,63],"safety":[29,105],"checks":[30],"from":[31],"Wasm,":[32,121],"such":[33],"as":[34,41],"memory":[35,104],"bounds":[36],"checks.":[37],"implement":[39],"Wasm-precheck":[40,57,113,118],"an":[42,67],"extension":[43],"the":[45,51,77],"Wasmtime":[46],"compiler":[47],"runtime,":[49],"evaluate":[50],"run-time":[52,69],"compile-time":[54],"performance":[55,70],"vs":[58],"Wasm":[59,109],"configurations":[60],"with":[61],"explicit":[62],"checks,":[64],"find":[66],"average":[68],"gain":[71],"1.71":[73],"x":[74],"faster":[75],"in":[76,87],"widely":[78],"used":[79],"PolyBenchC":[80],"benchmark":[81],"suite,":[82],"for":[83],"small":[85],"overhead":[86],"binary":[88],"size":[89],"(":[90],"7.18":[91],"%":[92],"larger)":[93],"type-checking":[95],"time":[96],"(1.4%":[97],"slower).":[98],"also":[100],"prove":[101,108,117],"type":[102],"embeds":[111],"into":[112],"ensuring":[114],"backwards":[115],"compatibility,":[116],"type-erases":[119],"discuss":[123],"design":[124],"implementation":[126],"trade-offs.":[127]},"counts_by_year":[{"year":2025,"cited_by_count":4}],"updated_date":"2026-08-21T09:56:20.448147","created_date":"2025-10-10T00:00:00"}
