{"id":"https://openalex.org/W2536760536","doi":"https://doi.org/10.1145/2986012.2986017","title":"Exploring cheap type inference heuristics in dynamically typed languages","display_name":"Exploring cheap type inference heuristics in dynamically typed languages","publication_year":2016,"publication_date":"2016-10-20","ids":{"openalex":"https://openalex.org/W2536760536","doi":"https://doi.org/10.1145/2986012.2986017","mag":"2536760536"},"language":"en","primary_location":{"id":"doi:10.1145/2986012.2986017","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2986012.2986017","pdf_url":"http://dl.acm.org/ft_gateway.cfm?id=2986017&type=pdf","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"http://dl.acm.org/ft_gateway.cfm?id=2986017&type=pdf","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5034888125","display_name":"Nevena Milojkovi\u0107","orcid":null},"institutions":[{"id":"https://openalex.org/I118564535","display_name":"University of Bern","ror":"https://ror.org/02k7v4d05","country_code":"CH","type":"education","lineage":["https://openalex.org/I118564535"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Nevena Milojkovi\u0107","raw_affiliation_strings":["University of Bern, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Bern, Switzerland","institution_ids":["https://openalex.org/I118564535"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5041096019","display_name":"Oscar Nierstrasz","orcid":"https://orcid.org/0000-0002-9975-9791"},"institutions":[{"id":"https://openalex.org/I118564535","display_name":"University of Bern","ror":"https://ror.org/02k7v4d05","country_code":"CH","type":"education","lineage":["https://openalex.org/I118564535"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Oscar Nierstrasz","raw_affiliation_strings":["University of Bern, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Bern, Switzerland","institution_ids":["https://openalex.org/I118564535"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.7614,"has_fulltext":true,"cited_by_count":4,"citation_normalized_percentile":{"value":0.92402526,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"43","last_page":"56"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9995999932289124,"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.9995999932289124,"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.996999979019165,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9884999990463257,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/heuristics","display_name":"Heuristics","score":0.8536883592605591},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.804532527923584},{"id":"https://openalex.org/keywords/variable","display_name":"Variable (mathematics)","score":0.642168402671814},{"id":"https://openalex.org/keywords/heuristic","display_name":"Heuristic","score":0.6051803231239319},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.580411970615387},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5528167486190796},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.545799970626831},{"id":"https://openalex.org/keywords/smalltalk","display_name":"Smalltalk","score":0.4740307629108429},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4714718163013458},{"id":"https://openalex.org/keywords/false-positive-paradox","display_name":"False positive paradox","score":0.4624609649181366},{"id":"https://openalex.org/keywords/program-comprehension","display_name":"Program comprehension","score":0.45415323972702026},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3625972867012024},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.347586452960968},{"id":"https://openalex.org/keywords/machine-learning","display_name":"Machine learning","score":0.2859363257884979},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.2852838933467865},{"id":"https://openalex.org/keywords/software-system","display_name":"Software system","score":0.23824837803840637},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.14425042271614075},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.1256260871887207}],"concepts":[{"id":"https://openalex.org/C127705205","wikidata":"https://www.wikidata.org/wiki/Q5748245","display_name":"Heuristics","level":2,"score":0.8536883592605591},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.804532527923584},{"id":"https://openalex.org/C182365436","wikidata":"https://www.wikidata.org/wiki/Q50701","display_name":"Variable (mathematics)","level":2,"score":0.642168402671814},{"id":"https://openalex.org/C173801870","wikidata":"https://www.wikidata.org/wiki/Q201413","display_name":"Heuristic","level":2,"score":0.6051803231239319},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.580411970615387},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5528167486190796},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.545799970626831},{"id":"https://openalex.org/C2777293101","wikidata":"https://www.wikidata.org/wiki/Q235086","display_name":"Smalltalk","level":3,"score":0.4740307629108429},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4714718163013458},{"id":"https://openalex.org/C64869954","wikidata":"https://www.wikidata.org/wiki/Q1859747","display_name":"False positive paradox","level":2,"score":0.4624609649181366},{"id":"https://openalex.org/C2777561058","wikidata":"https://www.wikidata.org/wiki/Q2652119","display_name":"Program comprehension","level":4,"score":0.45415323972702026},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3625972867012024},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.347586452960968},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.2859363257884979},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.2852838933467865},{"id":"https://openalex.org/C149091818","wikidata":"https://www.wikidata.org/wiki/Q2429814","display_name":"Software system","level":3,"score":0.23824837803840637},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.14425042271614075},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.1256260871887207},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2986012.2986017","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2986012.2986017","pdf_url":"http://dl.acm.org/ft_gateway.cfm?id=2986017&type=pdf","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software","raw_type":"proceedings-article"},{"id":"pmh:oai:boris.unibe.ch:99619","is_oa":false,"landing_page_url":"https://boris.unibe.ch/99619/","pdf_url":null,"source":{"id":"https://openalex.org/S4306401086","display_name":"Bern Open Repository and Information System (University of Bern)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I118564535","host_organization_name":"University of Bern","host_organization_lineage":["https://openalex.org/I118564535"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Milojkovi\u0107, Nevena; Nierstrasz, Oscar Marius (2016). Exploring Cheap Type Inference Heuristics in Dynamically Typed Languages. In: 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2016 (pp. 43-56). New York, NY, USA: ACM 10.1145/2986012.2986017 &lt;http://dx.doi.org/10.1145/2986012.2986017&gt;","raw_type":"info:eu-repo/semantics/conferenceObject"}],"best_oa_location":{"id":"doi:10.1145/2986012.2986017","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2986012.2986017","pdf_url":"http://dl.acm.org/ft_gateway.cfm?id=2986017&type=pdf","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software","raw_type":"proceedings-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education","score":0.7599999904632568}],"awards":[{"id":"https://openalex.org/G4462509502","display_name":"Agile Software Analysis","funder_award_id":"162352","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G5599649393","display_name":null,"funder_award_id":"200020","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G628552264","display_name":null,"funder_award_id":"200020","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G6438038747","display_name":null,"funder_award_id":"200020-162352","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320320924","display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","ror":"https://ror.org/00yjd3n13"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2536760536.pdf","grobid_xml":"https://content.openalex.org/works/W2536760536.grobid-xml"},"referenced_works_count":46,"referenced_works":["https://openalex.org/W59286762","https://openalex.org/W104306449","https://openalex.org/W239634878","https://openalex.org/W1490866972","https://openalex.org/W1503606081","https://openalex.org/W1577728776","https://openalex.org/W1986736724","https://openalex.org/W1990053053","https://openalex.org/W1999597367","https://openalex.org/W2007313703","https://openalex.org/W2012031603","https://openalex.org/W2035206966","https://openalex.org/W2045723688","https://openalex.org/W2050198180","https://openalex.org/W2051882031","https://openalex.org/W2058206062","https://openalex.org/W2061721578","https://openalex.org/W2075811056","https://openalex.org/W2100044779","https://openalex.org/W2104166366","https://openalex.org/W2106558531","https://openalex.org/W2110001365","https://openalex.org/W2110549939","https://openalex.org/W2112939580","https://openalex.org/W2119590117","https://openalex.org/W2127172188","https://openalex.org/W2127552757","https://openalex.org/W2134852596","https://openalex.org/W2138930545","https://openalex.org/W2142181967","https://openalex.org/W2149539713","https://openalex.org/W2154773173","https://openalex.org/W2166822586","https://openalex.org/W2181943201","https://openalex.org/W2293770661","https://openalex.org/W2399721784","https://openalex.org/W2539224897","https://openalex.org/W2750209058","https://openalex.org/W3006419313","https://openalex.org/W3007606193","https://openalex.org/W4232344118","https://openalex.org/W4239628796","https://openalex.org/W4244847862","https://openalex.org/W4255673069","https://openalex.org/W4285719527","https://openalex.org/W6601094606"],"related_works":["https://openalex.org/W2122804569","https://openalex.org/W2064950154","https://openalex.org/W4308823623","https://openalex.org/W2741284040","https://openalex.org/W2240979497","https://openalex.org/W1854764556","https://openalex.org/W1582488550","https://openalex.org/W2025599150","https://openalex.org/W2030611910","https://openalex.org/W2019168903"],"abstract_inverted_index":{"Although":[0],"dynamically":[1],"typed":[2],"languages":[3],"allow":[4],"developers":[5,36],"to":[6,37,50,60,94,134,141,161,177],"be":[7,142,178],"more":[8],"productive":[9],"in":[10,89,118,158],"writing":[11],"source":[12,92],"code,":[13],"their":[14],"lack":[15],"of":[16,21,25,43,45,64,75,86,102,105,113,149,155,163],"in-":[17],"formation":[18],"about":[19,83],"types":[20,44,66,107,127,148],"variables":[22,46],"is":[23,59],"one":[24,184],"the":[26,62,84,90,96,100,103,146,153,156,169,179,190],"main":[27,57],"obstacles":[28],"during":[29],"program":[30],"comprehension.":[31],"Static":[32],"type":[33,98,186],"information":[34,82],"helps":[35],"decrease":[38],"software":[39],"maintenance":[40],"time.":[41],"Inference":[42],"requires":[47],"complex":[48],"algorithms":[49],"avoid":[51],"false":[52],"positives":[53],"or":[54],"negatives.":[55],"Their":[56],"aim":[58],"shorten":[61],"list":[63,104,157],"possible":[65,106],"for":[67,108,124],"a":[68,73,109,114,150],"variable.":[69,110],"We":[70],"have":[71],"developed":[72],"couple":[74],"cheap":[76],"heuristics":[77,132,139],"that":[78,122,174],"use":[79],"easily":[80],"accessible":[81],"presence":[85],"each":[87],"class":[88],"available":[91],"code":[93],"promote":[95],"correct":[97,147],"towards":[99,152],"top":[101,154],"Our":[111],"evaluation":[112],"proof-of-concept":[115],"prototype,":[116],"implemented":[117],"Pharo":[119],"Smalltalk,":[120],"shows":[121],"both":[123],"domain-":[125],"specific":[126],"and":[128,189],"standard":[129],"libraries":[130],"these":[131],"tend":[133],"work":[135],"well.":[136],"The":[137,172],"evaluated":[138],"prove":[140],"reasonably":[143],"precise,":[144],"promoting":[145],"variable":[151],"50.67%":[159],"up":[160],"89.09%":[162],"cases":[164],"on":[165,168],"average,":[166],"depending":[167],"applied":[170],"heuristic.":[171],"heuristic":[173,192],"has":[175],"proved":[176],"best":[180,191],"was":[181],"compared":[182],"with":[183,197],"existing":[185],"inference":[187],"algorithm":[188],"yields":[193],"significantly":[194],"better":[195],"results":[196],"less":[198],"effort.":[199]},"counts_by_year":[{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
