{"id":"https://openalex.org/W2566053985","doi":"https://doi.org/10.1093/comjnl/bxw108","title":"SSA Transformations to Facilitate Type Inference in Dynamically Typed Code","display_name":"SSA Transformations to Facilitate Type Inference in Dynamically Typed Code","publication_year":2016,"publication_date":"2016-12-08","ids":{"openalex":"https://openalex.org/W2566053985","doi":"https://doi.org/10.1093/comjnl/bxw108","mag":"2566053985"},"language":"en","primary_location":{"id":"doi:10.1093/comjnl/bxw108","is_oa":false,"landing_page_url":"https://doi.org/10.1093/comjnl/bxw108","pdf_url":null,"source":{"id":"https://openalex.org/S44643521","display_name":"The Computer Journal","issn_l":"0010-4620","issn":["0010-4620","1460-2067"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311648","host_organization_name":"Oxford University Press","host_organization_lineage":["https://openalex.org/P4310311648","https://openalex.org/P4310311647"],"host_organization_lineage_names":["Oxford University Press","University of Oxford"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Computer Journal","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://hdl.handle.net/10651/53507","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5087331128","display_name":"Jos\u00e9 Quiroga","orcid":"https://orcid.org/0000-0002-1646-4796"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Jose Quiroga","raw_affiliation_strings":["Computational Reflection Research Group, Department of Computer Science, Calvo Sotelo s/n, Oviedo 33007, Spain"],"affiliations":[{"raw_affiliation_string":"Computational Reflection Research Group, Department of Computer Science, Calvo Sotelo s/n, Oviedo 33007, Spain","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5070067089","display_name":"Francisco Ort\u00edn","orcid":"https://orcid.org/0000-0003-1199-8649"},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Francisco Ortin","raw_affiliation_strings":["Computational Reflection Research Group, Department of Computer Science, Calvo Sotelo s/n, Oviedo 33007, Spain"],"affiliations":[{"raw_affiliation_string":"Computational Reflection Research Group, Department of Computer Science, Calvo Sotelo s/n, Oviedo 33007, Spain","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5070067089"],"corresponding_institution_ids":[],"apc_list":{"value":2635,"currency":"GBP","value_usd":3232},"apc_paid":null,"fwci":0.8887,"has_fulltext":false,"cited_by_count":6,"citation_normalized_percentile":{"value":0.85358157,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"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.9997000098228455,"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.9997000098228455,"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/T10639","display_name":"Advanced Software Engineering Methodologies","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.9959999918937683,"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.8791887760162354},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7852876782417297},{"id":"https://openalex.org/keywords/code-reuse","display_name":"Code reuse","score":0.6180242300033569},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.585867702960968},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5466764569282532},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5395841002464294},{"id":"https://openalex.org/keywords/variable","display_name":"Variable (mathematics)","score":0.5128755569458008},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.49845314025878906},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.44097936153411865},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4318869709968567},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.4303346276283264},{"id":"https://openalex.org/keywords/reuse","display_name":"Reuse","score":0.41733619570732117},{"id":"https://openalex.org/keywords/reflection","display_name":"Reflection (computer programming)","score":0.41240859031677246},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3624774217605591},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.34477323293685913},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.15497568249702454},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.12735632061958313}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8791887760162354},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7852876782417297},{"id":"https://openalex.org/C2778583558","wikidata":"https://www.wikidata.org/wiki/Q771245","display_name":"Code reuse","level":3,"score":0.6180242300033569},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.585867702960968},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5466764569282532},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5395841002464294},{"id":"https://openalex.org/C182365436","wikidata":"https://www.wikidata.org/wiki/Q50701","display_name":"Variable (mathematics)","level":2,"score":0.5128755569458008},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.49845314025878906},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.44097936153411865},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4318869709968567},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.4303346276283264},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.41733619570732117},{"id":"https://openalex.org/C65682993","wikidata":"https://www.wikidata.org/wiki/Q1056451","display_name":"Reflection (computer programming)","level":2,"score":0.41240859031677246},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3624774217605591},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.34477323293685913},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.15497568249702454},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12735632061958313},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","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/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","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}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1093/comjnl/bxw108","is_oa":false,"landing_page_url":"https://doi.org/10.1093/comjnl/bxw108","pdf_url":null,"source":{"id":"https://openalex.org/S44643521","display_name":"The Computer Journal","issn_l":"0010-4620","issn":["0010-4620","1460-2067"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311648","host_organization_name":"Oxford University Press","host_organization_lineage":["https://openalex.org/P4310311648","https://openalex.org/P4310311647"],"host_organization_lineage_names":["Oxford University Press","University of Oxford"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Computer Journal","raw_type":"journal-article"},{"id":"pmh:oai:digibuo.uniovi.es:10651/53507","is_oa":true,"landing_page_url":"http://hdl.handle.net/10651/53507","pdf_url":null,"source":{"id":"https://openalex.org/S4306402334","display_name":"Consultation of the Doctoral Thesis Database (TESEO) (Ministerio de Educaci\u00f3n, Cultura y Deporte)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I2801976130","host_organization_name":"Ministerio de Educaci\u00f3n Cultura y Deporte","host_organization_lineage":["https://openalex.org/I2801976130"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/article"}],"best_oa_location":{"id":"pmh:oai:digibuo.uniovi.es:10651/53507","is_oa":true,"landing_page_url":"http://hdl.handle.net/10651/53507","pdf_url":null,"source":{"id":"https://openalex.org/S4306402334","display_name":"Consultation of the Doctoral Thesis Database (TESEO) (Ministerio de Educaci\u00f3n, Cultura y Deporte)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I2801976130","host_organization_name":"Ministerio de Educaci\u00f3n Cultura y Deporte","host_organization_lineage":["https://openalex.org/I2801976130"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/article"},"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320320300","display_name":"European Commission","ror":"https://ror.org/00k4n6c32"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":42,"referenced_works":["https://openalex.org/W175791261","https://openalex.org/W178660737","https://openalex.org/W236577970","https://openalex.org/W1511443568","https://openalex.org/W1535654799","https://openalex.org/W1538858001","https://openalex.org/W1546727036","https://openalex.org/W1568983194","https://openalex.org/W1605034451","https://openalex.org/W1649645444","https://openalex.org/W1828631218","https://openalex.org/W1829244603","https://openalex.org/W1967144497","https://openalex.org/W1982205631","https://openalex.org/W1990370351","https://openalex.org/W1993335798","https://openalex.org/W2004340162","https://openalex.org/W2010452422","https://openalex.org/W2022443117","https://openalex.org/W2042025768","https://openalex.org/W2057651724","https://openalex.org/W2062950667","https://openalex.org/W2070566991","https://openalex.org/W2082709037","https://openalex.org/W2086733238","https://openalex.org/W2101811680","https://openalex.org/W2102890180","https://openalex.org/W2108141856","https://openalex.org/W2128457714","https://openalex.org/W2129897994","https://openalex.org/W2135259631","https://openalex.org/W2149127686","https://openalex.org/W2149207009","https://openalex.org/W2153185479","https://openalex.org/W2159507384","https://openalex.org/W2168563078","https://openalex.org/W2182074320","https://openalex.org/W2289110480","https://openalex.org/W2523233918","https://openalex.org/W2622427009","https://openalex.org/W3137596000","https://openalex.org/W4246166885"],"related_works":["https://openalex.org/W4379521304","https://openalex.org/W4287876714","https://openalex.org/W2111320546","https://openalex.org/W2065789159","https://openalex.org/W2433374248","https://openalex.org/W2315155300","https://openalex.org/W2104656753","https://openalex.org/W4328027208","https://openalex.org/W2531621405","https://openalex.org/W2810627707"],"abstract_inverted_index":{"In":[0],"most":[1],"dynamically":[2,55,116,137],"typed":[3,56,117,138],"languages,":[4],"variables":[5,21,66,77],"are":[6,67,147],"created":[7],"without":[8],"declaring":[9,76],"their":[10],"type.":[11],"This":[12],"way":[13],"of":[14,51,75,98,104,115],"programming":[15],"allows":[16],"variable":[17,40],"reuse,":[18],"so":[19],"that":[20,136],"sometimes":[22],"hold":[23,42],"different":[24,43],"dynamic":[25,44,65],"types":[26],"in":[27,84,125],"the":[28,38,48,52,64,79,96,102,113,130,144],"same":[29,39],"scope.":[30],"Besides,":[31],"it":[32,150],"is":[33,58,135],"also":[34],"common":[35],"to":[36,41,110],"use":[37,97,103],"types,":[45],"depending":[46],"on":[47],"execution":[49],"flow":[50],"program.":[53],"When":[54],"code":[57,139],"compiled":[59],"into":[60],"Java":[61,85],"and":[62,86,90,149],".Net,":[63],"usually":[68],"generated":[69],"as":[70],"Object":[71,83],"references.":[72],"The":[73,120,133],"approach":[74,121],"with":[78],"top":[80],"type":[81,92,114],"(e.g.":[82],".Net)":[87],"requires":[88],"unsafe":[89],"inefficient":[91],"casts":[93],"and,":[94],"sometimes,":[95],"reflection.":[99],"We":[100],"propose":[101],"SSA":[105,145],"(Static":[106],"Single":[107],"Assignment)":[108],"transformations":[109,146],"facilitate":[111],"inferring":[112],"local":[118],"variables.":[119],"has":[122],"been":[123],"included":[124],"an":[126],"existing":[127],"compiler":[128],"for":[129],".Net":[131],"framework.":[132],"result":[134],"performs":[140],"significantly":[141],"better":[142],"when":[143],"used,":[148],"outperforms":[151],"C#.":[152],"Our":[153],"technique":[154],"reduces":[155],"memory":[156],"consumption":[157],"at":[158],"runtime":[159],"by":[160,166],"35%,":[161],"but":[162],"increases":[163],"compilation":[164],"time":[165],"13%.":[167]},"counts_by_year":[{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":2}],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2025-10-10T00:00:00"}
