{"id":"https://openalex.org/W4249990212","doi":"https://doi.org/10.1145/1640089.1640110","title":"Profile-guided static typing for dynamic scripting languages","display_name":"Profile-guided static typing for dynamic scripting languages","publication_year":2009,"publication_date":"2009-10-25","ids":{"openalex":"https://openalex.org/W4249990212","doi":"https://doi.org/10.1145/1640089.1640110"},"language":"en","primary_location":{"id":"doi:10.1145/1640089.1640110","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1640089.1640110","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications","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/A5084401345","display_name":"Michael Furr","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":true,"raw_author_name":"Michael Furr","raw_affiliation_strings":["University of Maryland, College Park, MD, USA"],"affiliations":[{"raw_affiliation_string":"University of Maryland, College Park, MD, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5004074496","display_name":"Jong-hoon An","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":"Jong-hoon (David) An","raw_affiliation_strings":["University of Maryland, College Park, MD, USA"],"affiliations":[{"raw_affiliation_string":"University of Maryland, College Park, MD, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5038702707","display_name":"Jeffrey S. Foster","orcid":"https://orcid.org/0000-0001-8043-1166"},"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":"Jeffrey S. Foster","raw_affiliation_strings":["University of Maryland, College Park, MD, USA"],"affiliations":[{"raw_affiliation_string":"University of Maryland, College Park, MD, USA","institution_ids":["https://openalex.org/I66946132"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5084401345"],"corresponding_institution_ids":["https://openalex.org/I66946132"],"apc_list":null,"apc_paid":null,"fwci":10.0322,"has_fulltext":false,"cited_by_count":63,"citation_normalized_percentile":{"value":0.9827662,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"283","last_page":"300"},"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.9993000030517578,"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.9993000030517578,"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.9993000030517578,"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/T10260","display_name":"Software Engineering Research","score":0.9988999962806702,"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.878383219242096},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8313419818878174},{"id":"https://openalex.org/keywords/perl","display_name":"Perl","score":0.7935321927070618},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.7686620950698853},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.7503950595855713},{"id":"https://openalex.org/keywords/scripting-language","display_name":"Scripting language","score":0.7286617755889893},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6752923727035522},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.4668465554714203},{"id":"https://openalex.org/keywords/string","display_name":"String (physics)","score":0.43824300169944763},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.356540322303772},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.16050413250923157}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.878383219242096},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8313419818878174},{"id":"https://openalex.org/C2777002779","wikidata":"https://www.wikidata.org/wiki/Q42478","display_name":"Perl","level":2,"score":0.7935321927070618},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.7686620950698853},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.7503950595855713},{"id":"https://openalex.org/C61423126","wikidata":"https://www.wikidata.org/wiki/Q187432","display_name":"Scripting language","level":2,"score":0.7286617755889893},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6752923727035522},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.4668465554714203},{"id":"https://openalex.org/C157486923","wikidata":"https://www.wikidata.org/wiki/Q1376436","display_name":"String (physics)","level":2,"score":0.43824300169944763},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.356540322303772},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.16050413250923157},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1640089.1640110","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1640089.1640110","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications","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":26,"referenced_works":["https://openalex.org/W78774630","https://openalex.org/W1578785003","https://openalex.org/W1972969106","https://openalex.org/W1973186567","https://openalex.org/W1983256770","https://openalex.org/W1987203566","https://openalex.org/W1987809485","https://openalex.org/W2014377495","https://openalex.org/W2061721578","https://openalex.org/W2085050771","https://openalex.org/W2108341399","https://openalex.org/W2121417161","https://openalex.org/W2129345992","https://openalex.org/W2135536553","https://openalex.org/W2144551802","https://openalex.org/W2148535470","https://openalex.org/W2156249516","https://openalex.org/W2162405266","https://openalex.org/W2165304392","https://openalex.org/W2170830071","https://openalex.org/W2171362714","https://openalex.org/W2293770661","https://openalex.org/W2742478755","https://openalex.org/W3137596000","https://openalex.org/W6651525624","https://openalex.org/W6679419702"],"related_works":["https://openalex.org/W1537913012","https://openalex.org/W3127882307","https://openalex.org/W4205473801","https://openalex.org/W4210946276","https://openalex.org/W1493349649","https://openalex.org/W84769035","https://openalex.org/W1588752736","https://openalex.org/W2129345992","https://openalex.org/W2467914100","https://openalex.org/W2122592814"],"abstract_inverted_index":{"Many":[0],"popular":[1],"scripting":[2],"languages":[3],"such":[4,15],"as":[5,16,24],"Ruby,":[6],"Python,":[7],"and":[8,32,68],"Perl":[9],"include":[10],"highly":[11,78],"dynamic":[12,66,79,97,103],"language":[13],"constructs,":[14],"an":[17,47],"eval":[18],"method":[19],"that":[20,70],"evaluates":[21],"a":[22,53,64],"string":[23],"program":[25],"text.":[26],"While":[27],"these":[28],"constructs":[29],"allow":[30],"terse":[31],"expressive":[33],"code,":[34],"they":[35],"have":[36],"traditionally":[37],"obstructed":[38],"static":[39,54,133],"analysis.":[40],"In":[41],"this":[42],"paper":[43],"we":[44,88,101,130],"present":[45],"PRuby,":[46],"extension":[48],"to":[49,73,92,117,140],"Diamondback":[50],"Ruby":[51],"(DRuby),":[52],"type":[55,75,134,142],"inference":[56,135],"system":[57],"for":[58],"Ruby.":[59],"PRuby":[60],"augments":[61],"DRuby":[62],"with":[63,105],"novel":[65],"analysis":[67,82],"transformation":[69],"allows":[71],"us":[72],"precisely":[74],"uses":[76],"of":[77,96],"constructs.":[80],"PRuby's":[81],"proceeds":[83],"in":[84],"three":[85],"steps.":[86],"First,":[87],"use":[89],"run-time":[90],"instrumentation":[91,116],"gather":[93],"per-application":[94],"profiles":[95],"feature":[98],"usage.":[99],"Next,":[100],"replace":[102],"features":[104],"statically":[106],"analyzable":[107],"alternatives":[108],"based":[109],"on":[110,136],"the":[111,127,137],"profile.":[112,128],"We":[113],"also":[114],"add":[115],"safely":[118],"handle":[119],"cases":[120],"when":[121],"subsequent":[122],"runs":[123],"do":[124],"not":[125],"match":[126],"Finally,":[129],"run":[131],"DRuby's":[132],"transformed":[138],"code":[139],"enforce":[141],"safety.":[143]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":2},{"year":2016,"cited_by_count":7},{"year":2015,"cited_by_count":8},{"year":2014,"cited_by_count":6},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":7}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
