{"id":"https://openalex.org/W2154773173","doi":"https://doi.org/10.1145/1146841.1146845","title":"Dynamic data polyvariance using source-tagged classes","display_name":"Dynamic data polyvariance using source-tagged classes","publication_year":2005,"publication_date":"2005-01-01","ids":{"openalex":"https://openalex.org/W2154773173","doi":"https://doi.org/10.1145/1146841.1146845","mag":"2154773173"},"language":"en","primary_location":{"id":"doi:10.1145/1146841.1146845","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1146841.1146845","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2005 conference on Dynamic languages symposium  - DLS '05","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/A5007533156","display_name":"S. Alexander Spoon","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"S. Alexander Spoon","raw_affiliation_strings":[""],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5022683458","display_name":"Olin Shivers","orcid":"https://orcid.org/0000-0001-8171-386X"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Olin Shivers","raw_affiliation_strings":[""],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.15886787,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"35","last_page":"48"},"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.9979000091552734,"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.9979000091552734,"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.996399998664856,"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"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9957000017166138,"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.8432040214538574},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7175110578536987},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.7007452249526978},{"id":"https://openalex.org/keywords/smalltalk","display_name":"Smalltalk","score":0.6390502452850342},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.6211733818054199},{"id":"https://openalex.org/keywords/subdivision","display_name":"Subdivision","score":0.6067936420440674},{"id":"https://openalex.org/keywords/pruning","display_name":"Pruning","score":0.5462737083435059},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.51811283826828},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.46053528785705566},{"id":"https://openalex.org/keywords/extension","display_name":"Extension (predicate logic)","score":0.44253721833229065},{"id":"https://openalex.org/keywords/abstract-data-type","display_name":"Abstract data type","score":0.43346500396728516},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3903748393058777},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3235982060432434},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.23011386394500732},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.21459832787513733}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8432040214538574},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7175110578536987},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.7007452249526978},{"id":"https://openalex.org/C2777293101","wikidata":"https://www.wikidata.org/wiki/Q235086","display_name":"Smalltalk","level":3,"score":0.6390502452850342},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.6211733818054199},{"id":"https://openalex.org/C143392562","wikidata":"https://www.wikidata.org/wiki/Q449111","display_name":"Subdivision","level":2,"score":0.6067936420440674},{"id":"https://openalex.org/C108010975","wikidata":"https://www.wikidata.org/wiki/Q500094","display_name":"Pruning","level":2,"score":0.5462737083435059},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.51811283826828},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.46053528785705566},{"id":"https://openalex.org/C2778029271","wikidata":"https://www.wikidata.org/wiki/Q5421931","display_name":"Extension (predicate logic)","level":2,"score":0.44253721833229065},{"id":"https://openalex.org/C175971053","wikidata":"https://www.wikidata.org/wiki/Q827335","display_name":"Abstract data type","level":2,"score":0.43346500396728516},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3903748393058777},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3235982060432434},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.23011386394500732},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.21459832787513733},{"id":"https://openalex.org/C6557445","wikidata":"https://www.wikidata.org/wiki/Q173113","display_name":"Agronomy","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","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/C95457728","wikidata":"https://www.wikidata.org/wiki/Q309","display_name":"History","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/1146841.1146845","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1146841.1146845","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2005 conference on Dynamic languages symposium  - DLS '05","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.111.8193","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.111.8193","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.lexspoon.org/chuck/spoon05-ddpct.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.137.2881","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.2881","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://anoncvs.plt-scheme.org/home/shivers/papers/datapoly.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/9","score":0.4399999976158142,"display_name":"Industry, innovation and infrastructure"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":33,"referenced_works":["https://openalex.org/W10127936","https://openalex.org/W148396834","https://openalex.org/W1490866972","https://openalex.org/W1512023806","https://openalex.org/W1553894716","https://openalex.org/W1577728776","https://openalex.org/W1594760592","https://openalex.org/W1644882639","https://openalex.org/W1649645444","https://openalex.org/W1783388813","https://openalex.org/W1974895492","https://openalex.org/W1987809485","https://openalex.org/W2002301065","https://openalex.org/W2017971446","https://openalex.org/W2046699259","https://openalex.org/W2057085278","https://openalex.org/W2070049093","https://openalex.org/W2091909330","https://openalex.org/W2101225843","https://openalex.org/W2123385764","https://openalex.org/W2124241419","https://openalex.org/W2127172188","https://openalex.org/W2147749818","https://openalex.org/W2151360539","https://openalex.org/W2172147300","https://openalex.org/W2998551599","https://openalex.org/W3001317749","https://openalex.org/W3161148477","https://openalex.org/W4240795613","https://openalex.org/W4250199140","https://openalex.org/W4253189236","https://openalex.org/W4255249960","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W1718424146","https://openalex.org/W1996169556","https://openalex.org/W4213129642","https://openalex.org/W624617926","https://openalex.org/W4255297603","https://openalex.org/W4237938900","https://openalex.org/W2051792318","https://openalex.org/W4239656342","https://openalex.org/W2093762890","https://openalex.org/W1518516481"],"abstract_inverted_index":{"The":[0,90],"DDP":[1,79],"(Demand-driven/Pruning)":[2],"analysis":[3,124],"algorithm":[4,46],"allows":[5],"us":[6],"to":[7,38,78,82,101,128],"perform":[8],"data-flow":[9],"analyses":[10],"of":[11,44,66,111,121,135,144],"programming":[12],"languages":[13],"that":[14,61,80,98,116],"are":[15],"dynamically":[16],"typed":[17],"and":[18,32],"have":[19],"higher-order":[20],"control":[21],"flow,":[22],"such":[23],"as":[24],"Smalltalk":[25],"or":[26],"Scheme.":[27],"Because":[28],"it":[29,36],"is":[30,92],"demand-driven":[31],"employs":[33],"search":[34],"pruning,":[35],"scales":[37],"large":[39],"code":[40,107],"bases.":[41],"However,":[42],"versions":[43],"the":[45,105,112,129,136,145],"previously":[47],"described":[48],"[19]":[49],"do":[50],"not":[51],"handle":[52],"data":[53,59],"polymorphism":[54],"well,":[55],"conservatively":[56],"merging":[57],"separate":[58],"flows":[60],"go":[62],"through":[63],"distinct":[64],"instantiations":[65],"a":[67,75,102,109,133],"collection":[68],"type.":[69],"In":[70],"this":[71,122],"paper,":[72],"we":[73,141],"describe":[74],"new":[76],"extension":[77,91],"helps":[81],"disentangle":[83],"these":[84],"flows,":[85],"permitting":[86],"more":[87],"precise":[88],"results.":[89],"based":[93],"on":[94],"source-tagging":[95],"classes":[96],"so":[97],"each":[99],"reference":[100],"class":[103],"in":[104,147],"source":[106],"yields":[108],"subdivision":[110],"type":[113],"associated":[114],"with":[115],"class.":[117],"An":[118],"initial":[119],"implementation":[120],"polyvariant":[123],"has":[125],"been":[126],"added":[127],"DDP-based":[130],"tool":[131,146],"Chuck,":[132],"part":[134],"integrated":[137],"Squeak":[138],"program-development":[139],"environment;":[140],"show":[142],"examples":[143],"action.":[148]},"counts_by_year":[{"year":2017,"cited_by_count":2},{"year":2016,"cited_by_count":2},{"year":2013,"cited_by_count":2}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
