{"id":"https://openalex.org/W4389158518","doi":"https://doi.org/10.1145/3611643.3616326","title":"Practical Inference of Nullability Types","display_name":"Practical Inference of Nullability Types","publication_year":2023,"publication_date":"2023-11-30","ids":{"openalex":"https://openalex.org/W4389158518","doi":"https://doi.org/10.1145/3611643.3616326"},"language":"en","primary_location":{"id":"doi:10.1145/3611643.3616326","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3611643.3616326","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3611643.3616326","source":null,"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 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3611643.3616326","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5093382282","display_name":"Nima Karimipour","orcid":"https://orcid.org/0000-0002-2599-7770"},"institutions":[{"id":"https://openalex.org/I103635307","display_name":"University of California, Riverside","ror":"https://ror.org/03nawhv43","country_code":"US","type":"education","lineage":["https://openalex.org/I103635307"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Nima Karimipour","raw_affiliation_strings":["University of California, Riverside, Riverside, USA"],"affiliations":[{"raw_affiliation_string":"University of California, Riverside, Riverside, USA","institution_ids":["https://openalex.org/I103635307"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5023742903","display_name":"Justin Pham","orcid":"https://orcid.org/0009-0005-3064-0601"},"institutions":[{"id":"https://openalex.org/I103635307","display_name":"University of California, Riverside","ror":"https://ror.org/03nawhv43","country_code":"US","type":"education","lineage":["https://openalex.org/I103635307"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Justin Pham","raw_affiliation_strings":["University of California, Riverside, Riverside, USA"],"affiliations":[{"raw_affiliation_string":"University of California, Riverside, Riverside, USA","institution_ids":["https://openalex.org/I103635307"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5048111556","display_name":"Lazaro Clapp","orcid":"https://orcid.org/0009-0001-9773-7273"},"institutions":[{"id":"https://openalex.org/I2946016260","display_name":"Uber AI (United States)","ror":"https://ror.org/05vm0ed18","country_code":"US","type":"company","lineage":["https://openalex.org/I2946016260"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Lazaro Clapp","raw_affiliation_strings":["Uber Technologies, San Francisco, USA"],"affiliations":[{"raw_affiliation_string":"Uber Technologies, San Francisco, USA","institution_ids":["https://openalex.org/I2946016260"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5038828346","display_name":"Manu Sridharan","orcid":"https://orcid.org/0000-0001-7993-302X"},"institutions":[{"id":"https://openalex.org/I103635307","display_name":"University of California, Riverside","ror":"https://ror.org/03nawhv43","country_code":"US","type":"education","lineage":["https://openalex.org/I103635307"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Manu Sridharan","raw_affiliation_strings":["University of California, Riverside, Riverside, USA"],"affiliations":[{"raw_affiliation_string":"University of California, Riverside, Riverside, USA","institution_ids":["https://openalex.org/I103635307"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5093382282"],"corresponding_institution_ids":["https://openalex.org/I103635307"],"apc_list":null,"apc_paid":null,"fwci":1.8266,"has_fulltext":true,"cited_by_count":4,"citation_normalized_percentile":{"value":0.88991724,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"1395","last_page":"1406"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9993000030517578,"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.9993000030517578,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9969000220298767,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.9959999918937683,"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.8648302555084229},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.8052159547805786},{"id":"https://openalex.org/keywords/oracle","display_name":"Oracle","score":0.7770843505859375},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5832183957099915},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.5549300312995911},{"id":"https://openalex.org/keywords/source-lines-of-code","display_name":"Source lines of code","score":0.5545995831489563},{"id":"https://openalex.org/keywords/software-deployment","display_name":"Software deployment","score":0.5246934294700623},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.45152559876441956},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4422210454940796},{"id":"https://openalex.org/keywords/generics-in-java","display_name":"Generics in Java","score":0.4257308840751648},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.384941041469574},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.344854474067688},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.3427165150642395},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.2507821321487427},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.24128279089927673},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.18821117281913757}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8648302555084229},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.8052159547805786},{"id":"https://openalex.org/C55166926","wikidata":"https://www.wikidata.org/wiki/Q2892946","display_name":"Oracle","level":2,"score":0.7770843505859375},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5832183957099915},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.5549300312995911},{"id":"https://openalex.org/C199519371","wikidata":"https://www.wikidata.org/wiki/Q942695","display_name":"Source lines of code","level":3,"score":0.5545995831489563},{"id":"https://openalex.org/C105339364","wikidata":"https://www.wikidata.org/wiki/Q2297740","display_name":"Software deployment","level":2,"score":0.5246934294700623},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.45152559876441956},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4422210454940796},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.4257308840751648},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.384941041469574},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.344854474067688},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3427165150642395},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.2507821321487427},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.24128279089927673},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.18821117281913757}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3611643.3616326","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3611643.3616326","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3611643.3616326","source":null,"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 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/3611643.3616326","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3611643.3616326","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3611643.3616326","source":null,"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 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","raw_type":"proceedings-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/9","score":0.47999998927116394,"display_name":"Industry, innovation and infrastructure"}],"awards":[{"id":"https://openalex.org/G2101301583","display_name":"Collaborative Research: SHF: Small: Lightweight Modular Typestate","funder_award_id":"2007024","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3047886343","display_name":"Collaborative Research: SHF: MEDIUM: General and Scalable Pluggable Type Inference","funder_award_id":"2312263","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6595359603","display_name":null,"funder_award_id":"CCF-2007024,CCF-2312263","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G848032724","display_name":null,"funder_award_id":"Science","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"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4389158518.pdf","grobid_xml":"https://content.openalex.org/works/W4389158518.grobid-xml"},"referenced_works_count":24,"referenced_works":["https://openalex.org/W1557561422","https://openalex.org/W1963569294","https://openalex.org/W2058895276","https://openalex.org/W2100945416","https://openalex.org/W2106355420","https://openalex.org/W2110908283","https://openalex.org/W2114692640","https://openalex.org/W2126508237","https://openalex.org/W2162635569","https://openalex.org/W2469513535","https://openalex.org/W2560674852","https://openalex.org/W2746727911","https://openalex.org/W2776911292","https://openalex.org/W2899384793","https://openalex.org/W2911468826","https://openalex.org/W2968585938","https://openalex.org/W2979679630","https://openalex.org/W2996400815","https://openalex.org/W3024847434","https://openalex.org/W3100869085","https://openalex.org/W3108921083","https://openalex.org/W3206533211","https://openalex.org/W4247981256","https://openalex.org/W4300978170"],"related_works":["https://openalex.org/W2547095320","https://openalex.org/W2541866089","https://openalex.org/W1572758480","https://openalex.org/W1519944186","https://openalex.org/W2365754790","https://openalex.org/W15884308","https://openalex.org/W1974508891","https://openalex.org/W2415486708","https://openalex.org/W3172992491","https://openalex.org/W2181544444"],"abstract_inverted_index":{"NullPointerExceptions":[0],"(NPEs),":[1],"caused":[2],"by":[3,205],"dereferencing":[4],"null,":[5],"fre-":[6],"quently":[7],"cause":[8],"crashes":[9],"in":[10,19,144,162,170,225,227],"Java":[11,21,218,250],"programs.":[12,219],"Pluggable":[13],"type":[14,44,78,100,106,182],"checking":[15,239],"is":[16,26],"highly":[17,223],"effective":[18,224],"preventing":[20],"NPEs.":[22],"However,":[23,118],"this":[24,119],"approach":[25,72,120,160,169],"difficult":[27],"to":[28,52,73,157,177,214,216,236,240],"adopt":[29],"for":[30,80,85,139],"large,":[31],"existing":[32,116],"code":[33,95],"bases,":[34],"as":[35,108,124],"it":[36,231],"requires":[37,131],"manually":[38],"inserting":[39],"a":[40,50,68,86,109,129,137,145,163,228],"significant":[41],"number":[42,200],"of":[43,60,76,88,94,128,201,249],"qualifiers":[45,56,79,89,143],"into":[46],"the":[47,92,105,126,133,159,180,199],"code.":[48,195,251],"Hence,":[49],"tool":[51,173],"automatically":[53],"infer":[54],"these":[55],"could":[57],"make":[58,158],"adoption":[59],"type-based":[61],"NPE":[62],"prevention":[63],"significantly":[64],"easier.":[65],"We":[66,135,153,166,184],"present":[67,136],"novel":[69],"and":[70,193],"practical":[71,161],"automatic":[74],"inference":[75],"nullability":[77],"Java.":[81],"Our":[82],"technique":[83,138],"searches":[84],"set":[87],"that":[90,96],"maximizes":[91],"amount":[93],"can":[97,121],"be":[98,122],"successfully":[99],"checked.":[101],"The":[102],"search":[103],"uses":[104],"checker":[107,147],"black":[110],"box":[111],"oracle,":[112],"easing":[113],"compatibility":[114],"with":[115,179],"tools.":[117],"costly,":[123],"evaluating":[125,141],"impact":[127],"qualifier":[130],"re-running":[132],"checker.":[134,183],"safely":[140],"many":[142],"single":[146],"run,":[148],"dramatically":[149],"reducing":[150],"running":[151],"times.":[152],"also":[154],"describe":[155],"extensions":[156],"real-world":[164],"deployment.":[165],"implemented":[167],"our":[168,210],"an":[171],"open-source":[172],"Null-":[174],"AwayAnnotator,":[175],"designed":[176],"work":[178],"NullAway":[181,203,238],"evaluated":[185],"NullAwayAnnotator\u2019s":[186],"effectiveness":[187],"on":[188,207],"both":[189],"open-":[190],"source":[191],"projects":[192],"commercial":[194],"NullAwayAnnotator":[196,213,220],"re-":[197],"duces":[198],"reported":[202],"errors":[204],"69.5%":[206],"average.":[208],"Further,":[209],"optimizations":[211],"enable":[212],"scale":[215],"large":[217],"has":[221,232],"been":[222,234],"practice:":[226],"production":[229,242],"deployment,":[230],"already":[233],"used":[235],"add":[237],"160":[241],"modules":[243],"totaling":[244],"over":[245],"1.3":[246],"million":[247],"lines":[248]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1}],"updated_date":"2026-03-27T05:58:40.876381","created_date":"2025-10-10T00:00:00"}
