{"id":"https://openalex.org/W3206570943","doi":"https://doi.org/10.1145/3485483","title":"SimTyper: sound type inference for Ruby using type equality prediction","display_name":"SimTyper: sound type inference for Ruby using type equality prediction","publication_year":2021,"publication_date":"2021-10-15","ids":{"openalex":"https://openalex.org/W3206570943","doi":"https://doi.org/10.1145/3485483","mag":"3206570943"},"language":"en","primary_location":{"id":"doi:10.1145/3485483","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485483","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485483","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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3485483","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5031013753","display_name":"Milod Kazerounian","orcid":null},"institutions":[{"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":["US"],"is_corresponding":false,"raw_author_name":"Milod Kazerounian","raw_affiliation_strings":["University of Maryland at College Park, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Maryland at College Park, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5038702707","display_name":"Jeffrey S. Foster","orcid":"https://orcid.org/0000-0001-8043-1166"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeffrey S. Foster","raw_affiliation_strings":["Tufts University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Tufts University, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5060769750","display_name":"Bonan Min","orcid":"https://orcid.org/0000-0002-6114-8418"},"institutions":[{"id":"https://openalex.org/I1306686416","display_name":"RTX (United States)","ror":"https://ror.org/0354t7b78","country_code":"US","type":"company","lineage":["https://openalex.org/I1306686416"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Bonan Min","raw_affiliation_strings":["Raytheon BBN Technologies, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Raytheon BBN Technologies, USA","institution_ids":["https://openalex.org/I1306686416"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.4946,"has_fulltext":true,"cited_by_count":9,"citation_normalized_percentile":{"value":0.91103872,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":97},"biblio":{"volume":"5","issue":"OOPSLA","first_page":"1","last_page":"27"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9976000189781189,"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.982200026512146,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7724260687828064},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.649715781211853},{"id":"https://openalex.org/keywords/usable","display_name":"USable","score":0.6203837990760803},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.6166362762451172},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.6108323335647583},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.591428279876709},{"id":"https://openalex.org/keywords/heuristics","display_name":"Heuristics","score":0.5382713079452515},{"id":"https://openalex.org/keywords/machine-learning","display_name":"Machine learning","score":0.5067542195320129},{"id":"https://openalex.org/keywords/classifier","display_name":"Classifier (UML)","score":0.4819605052471161},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.36247915029525757},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.3346484899520874}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7724260687828064},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.649715781211853},{"id":"https://openalex.org/C2780615836","wikidata":"https://www.wikidata.org/wiki/Q2471869","display_name":"USable","level":2,"score":0.6203837990760803},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.6166362762451172},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.6108323335647583},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.591428279876709},{"id":"https://openalex.org/C127705205","wikidata":"https://www.wikidata.org/wiki/Q5748245","display_name":"Heuristics","level":2,"score":0.5382713079452515},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.5067542195320129},{"id":"https://openalex.org/C95623464","wikidata":"https://www.wikidata.org/wiki/Q1096149","display_name":"Classifier (UML)","level":2,"score":0.4819605052471161},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.36247915029525757},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.3346484899520874},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.0},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3485483","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485483","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485483","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":null,"license_id":null,"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/3485483","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485483","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485483","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":null,"license_id":null,"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.46000000834465027,"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education"}],"awards":[{"id":"https://openalex.org/G2179381418","display_name":"FMitF: Track II: Transitioning Ruby Types to Practice","funder_award_id":"1918233","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G638997368","display_name":null,"funder_award_id":"2019-19051600006","funder_id":"https://openalex.org/F4320333051","funder_display_name":"Intelligence Advanced Research Projects Activity"},{"id":"https://openalex.org/G6608149694","display_name":"Graduate Research Fellowship Program (GRFP)","funder_award_id":"1840340","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6624895376","display_name":null,"funder_award_id":"DGE-1840340","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320333051","display_name":"Intelligence Advanced Research Projects Activity","ror":"https://ror.org/01v3fsc55"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3206570943.pdf","grobid_xml":"https://content.openalex.org/works/W3206570943.grobid-xml"},"referenced_works_count":37,"referenced_works":["https://openalex.org/W1963954367","https://openalex.org/W1973186567","https://openalex.org/W1981276685","https://openalex.org/W1998709841","https://openalex.org/W2007313703","https://openalex.org/W2019376542","https://openalex.org/W2055886480","https://openalex.org/W2081992169","https://openalex.org/W2102473657","https://openalex.org/W2129345992","https://openalex.org/W2135536553","https://openalex.org/W2163976959","https://openalex.org/W2166822586","https://openalex.org/W2293770661","https://openalex.org/W2329766482","https://openalex.org/W2899384793","https://openalex.org/W2951357319","https://openalex.org/W2954950681","https://openalex.org/W2963384924","https://openalex.org/W2970641574","https://openalex.org/W2993555399","https://openalex.org/W2999264287","https://openalex.org/W3005541700","https://openalex.org/W3006491415","https://openalex.org/W3008834557","https://openalex.org/W3014933227","https://openalex.org/W3018033251","https://openalex.org/W3030163527","https://openalex.org/W3034549508","https://openalex.org/W3091905774","https://openalex.org/W3098605233","https://openalex.org/W3105735055","https://openalex.org/W3109059682","https://openalex.org/W3137596000","https://openalex.org/W4233122656","https://openalex.org/W4241724203","https://openalex.org/W6912545444"],"related_works":["https://openalex.org/W2982321410","https://openalex.org/W95465806","https://openalex.org/W2392004567","https://openalex.org/W2046296964","https://openalex.org/W1941412300","https://openalex.org/W2804371217","https://openalex.org/W4297831890","https://openalex.org/W2963764498","https://openalex.org/W2068383718","https://openalex.org/W4246881098"],"abstract_inverted_index":{"Many":[0],"researchers":[1],"have":[2,105,118],"explored":[3],"type":[4,11,20,26,44,69,76,86,121,177,227,255,265,290,295],"inference":[5,12,45,70,77,296],"for":[6,18],"dynamic":[7,27],"languages.":[8],"However,":[9],"traditional":[10],"computes":[13],"most":[14],"general":[15,128],"types":[16,59,142,166,261,272],"which,":[17],"complex":[19],"systems\u2014which":[21],"are":[22,102,115,143,170],"often":[23],"needed":[24],"to":[25,34,49,104,117,172,207,253],"languages\u2014can":[28],"be":[29,173],"verbose,":[30,126],"complex,":[31],"and":[32,54,130,158,201,216,249],"difficult":[33],"understand.":[35],"In":[36,163],"this":[37,164],"paper,":[38],"we":[39,180],"introduce":[40,181],"SimTyper,":[41],"a":[42,66,90,125,134,190,204],"Ruby":[43,68,233,247,278],"system":[46,71],"that":[47,72,95,114,195,213,262,273,289],"aims":[48],"infer":[50],"usable":[51,135,301],"types\u2014specifically,":[52],"nominal":[53],"generic":[55],"types\u2014that":[56],"match":[57,263],"the":[58,106,119,131,140,146,153,156,182,197,277,283],"programmers":[60],"write.":[61],"SimTyper":[62,84,109,169,244,257],"builds":[63],"on":[64,222,245],"InferDL,":[65],"recent":[67],"soundly":[73],"combines":[74],"standard":[75,254,279],"with":[78,152,226,235],"heuristics.":[79],"The":[80],"key":[81],"novelty":[82],"of":[83,112,155],"is":[85,150,189,220],"equality":[87,178,291],"prediction":[88,292],",":[89],"new,":[91],"machine":[92,192],"learning-based":[93],"technique":[94],"predicts":[96],"when":[97],"method":[98],"arguments":[99],"or":[100],"returns":[101],"likely":[103],"same":[107,120],"type.":[108],"finds":[110,258],"pairs":[111,224],"positions":[113],"predicted":[116],"yet":[122],"one":[123],"has":[124,133],"overly":[127],"solution":[129],"other":[132],"solution.":[136],"It":[137],"then":[138],"guesses":[139],"two":[141],"equal,":[144],"keeping":[145],"guess":[147],"if":[148,161],"it":[149,160],"consistent":[151],"rest":[154],"program,":[157],"discarding":[159],"not.":[162],"way,":[165],"inferred":[167],"by":[168],"guaranteed":[171],"sound.":[174],"To":[175],"perform":[176],"prediction,":[179],"deep":[183],"similarity":[184,228],"(DeepSim)":[185],"neural":[186],"network.":[187],"DeepSim":[188,219,268],"novel":[191],"learning":[193],"classifier":[194],"follows":[196],"Siamese":[198],"network":[199],"architecture":[200],"uses":[202],"CodeBERT,":[203],"pre-trained":[205],"model,":[206],"embed":[208],"source":[209],"tokens":[210,215],"into":[211],"vectors":[212],"capture":[214],"their":[217],"contexts.":[218],"trained":[221],"100,000":[223],"labeled":[225],"information":[229],"extracted":[230],"from":[231],"371":[232],"programs":[234,248],"manually":[236],"documented,":[237],"but":[238],"not":[239],"checked,":[240],"types.":[241,302],"We":[242],"evaluated":[243],"eight":[246],"found":[250],"that,":[251],"compared":[252],"inference,":[256],"69%":[259],"more":[260,300],"programmer-written":[264],"information.":[266],"Moreover,":[267],"can":[269,293],"predict":[270],"rare":[271],"appear":[274],"neither":[275],"in":[276,282],"library":[280],"nor":[281],"training":[284],"data.":[285],"Our":[286],"results":[287],"show":[288],"help":[294],"systems":[297],"effectively":[298],"produce":[299]},"counts_by_year":[{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":4}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
