{"id":"https://openalex.org/W2118462394","doi":"https://doi.org/10.1145/1480945.1480965","title":"Bidirectional data-flow analyses, type-systematically","display_name":"Bidirectional data-flow analyses, type-systematically","publication_year":2009,"publication_date":"2009-01-19","ids":{"openalex":"https://openalex.org/W2118462394","doi":"https://doi.org/10.1145/1480945.1480965","mag":"2118462394"},"language":"en","primary_location":{"id":"doi:10.1145/1480945.1480965","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1480945.1480965","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation","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/A5076487260","display_name":"Maria Jo\u00e3o Frade","orcid":"https://orcid.org/0000-0002-4479-1057"},"institutions":[{"id":"https://openalex.org/I99682543","display_name":"University of Minho","ror":"https://ror.org/037wpkx04","country_code":"PT","type":"education","lineage":["https://openalex.org/I99682543"]}],"countries":["PT"],"is_corresponding":true,"raw_author_name":"Maria Jo\u00e3o Frade","raw_affiliation_strings":["Universidade do Minho, Braga, Portugal","[Universidade do Minho, Braga, Portugal]"],"affiliations":[{"raw_affiliation_string":"Universidade do Minho, Braga, Portugal","institution_ids":["https://openalex.org/I99682543"]},{"raw_affiliation_string":"[Universidade do Minho, Braga, Portugal]","institution_ids":["https://openalex.org/I99682543"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5058867828","display_name":"Ando Saabas","orcid":"https://orcid.org/0009-0001-9449-0404"},"institutions":[{"id":"https://openalex.org/I111112146","display_name":"Tallinn University of Technology","ror":"https://ror.org/0443cwa12","country_code":"EE","type":"education","lineage":["https://openalex.org/I111112146"]}],"countries":["EE"],"is_corresponding":false,"raw_author_name":"Ando Saabas","raw_affiliation_strings":["Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia","Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia#TAB#"],"affiliations":[{"raw_affiliation_string":"Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia","institution_ids":["https://openalex.org/I111112146"]},{"raw_affiliation_string":"Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia#TAB#","institution_ids":["https://openalex.org/I111112146"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5074922343","display_name":"Tarmo Uustalu","orcid":"https://orcid.org/0000-0002-1297-0579"},"institutions":[{"id":"https://openalex.org/I111112146","display_name":"Tallinn University of Technology","ror":"https://ror.org/0443cwa12","country_code":"EE","type":"education","lineage":["https://openalex.org/I111112146"]}],"countries":["EE"],"is_corresponding":false,"raw_author_name":"Tarmo Uustalu","raw_affiliation_strings":["Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia","Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia#TAB#"],"affiliations":[{"raw_affiliation_string":"Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia","institution_ids":["https://openalex.org/I111112146"]},{"raw_affiliation_string":"Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia#TAB#","institution_ids":["https://openalex.org/I111112146"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5076487260"],"corresponding_institution_ids":["https://openalex.org/I99682543"],"apc_list":null,"apc_paid":null,"fwci":0.9033,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.81312722,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"141","last_page":"150"},"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.9998000264167786,"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.9998000264167786,"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/T10260","display_name":"Software Engineering Research","score":0.9994000196456909,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.994700014591217,"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/soundness","display_name":"Soundness","score":0.8959794044494629},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7917773723602295},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.7655409574508667},{"id":"https://openalex.org/keywords/mathematical-proof","display_name":"Mathematical proof","score":0.7266337871551514},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.657016396522522},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.5597326159477234},{"id":"https://openalex.org/keywords/data-flow-diagram","display_name":"Data flow diagram","score":0.5363385081291199},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.5298813581466675},{"id":"https://openalex.org/keywords/salient","display_name":"Salient","score":0.5224039554595947},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5082225799560547},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.507748007774353},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.503438413143158},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.49947309494018555},{"id":"https://openalex.org/keywords/stack","display_name":"Stack (abstract data type)","score":0.4724486470222473},{"id":"https://openalex.org/keywords/program-analysis","display_name":"Program analysis","score":0.4609904885292053},{"id":"https://openalex.org/keywords/principal","display_name":"Principal (computer security)","score":0.45934659242630005},{"id":"https://openalex.org/keywords/data-flow-analysis","display_name":"Data-flow analysis","score":0.45005014538764954},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.1878214180469513},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.14479240775108337}],"concepts":[{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.8959794044494629},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7917773723602295},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.7655409574508667},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.7266337871551514},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.657016396522522},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.5597326159477234},{"id":"https://openalex.org/C489000","wikidata":"https://www.wikidata.org/wiki/Q747385","display_name":"Data flow diagram","level":2,"score":0.5363385081291199},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.5298813581466675},{"id":"https://openalex.org/C2780719617","wikidata":"https://www.wikidata.org/wiki/Q1030752","display_name":"Salient","level":2,"score":0.5224039554595947},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5082225799560547},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.507748007774353},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.503438413143158},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.49947309494018555},{"id":"https://openalex.org/C9395851","wikidata":"https://www.wikidata.org/wiki/Q177929","display_name":"Stack (abstract data type)","level":2,"score":0.4724486470222473},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.4609904885292053},{"id":"https://openalex.org/C144559511","wikidata":"https://www.wikidata.org/wiki/Q2986279","display_name":"Principal (computer security)","level":2,"score":0.45934659242630005},{"id":"https://openalex.org/C88468194","wikidata":"https://www.wikidata.org/wiki/Q1172416","display_name":"Data-flow analysis","level":3,"score":0.45005014538764954},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.1878214180469513},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.14479240775108337},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","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/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"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/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/1480945.1480965","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1480945.1480965","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.159.5188","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.159.5188","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.ioc.ee/~tarmo/papers/pepm09.pdf","raw_type":"text"},{"id":"pmh:oai:repositorium.sdum.uminho.pt:1822/18190","is_oa":false,"landing_page_url":"http://hdl.handle.net/1822/18190","pdf_url":null,"source":{"id":"https://openalex.org/S4306401240","display_name":"Reposit\u00f3riUM (Universidade do Minho)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I99682543","host_organization_name":"University of Minho","host_organization_lineage":["https://openalex.org/I99682543"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"conference paper"},{"id":"pmh:oai:repositorium.uminho.pt:1822/18190","is_oa":false,"landing_page_url":"https://hdl.handle.net/1822/18190","pdf_url":null,"source":{"id":"https://openalex.org/S4306402433","display_name":"Portuguese National Funding Agency for Science, Research and Technology (RCAAP Project by FCT)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"conference paper"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":22,"referenced_works":["https://openalex.org/W62419442","https://openalex.org/W1502777940","https://openalex.org/W1503028102","https://openalex.org/W1561578075","https://openalex.org/W1586636845","https://openalex.org/W1982582946","https://openalex.org/W1984580286","https://openalex.org/W1989185026","https://openalex.org/W1991158186","https://openalex.org/W2005172143","https://openalex.org/W2014521146","https://openalex.org/W2088064948","https://openalex.org/W2107787226","https://openalex.org/W2112888217","https://openalex.org/W2114519152","https://openalex.org/W2128433129","https://openalex.org/W2129659538","https://openalex.org/W2144540543","https://openalex.org/W2149925406","https://openalex.org/W2149996206","https://openalex.org/W2152224381","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W3130884665","https://openalex.org/W2112150205","https://openalex.org/W4384648301","https://openalex.org/W2949482260","https://openalex.org/W1550049051","https://openalex.org/W1968803687","https://openalex.org/W1557199137","https://openalex.org/W4287025197","https://openalex.org/W2076653850","https://openalex.org/W4296000674"],"abstract_inverted_index":{"We":[0],"show":[1],"that":[2,121],"a":[3,29,35,129,133,140,145,152,157],"wide":[4],"class":[5],"of":[6,22,76,105,114,139],"bidirectional":[7,98],"data-flow":[8,130],"analyses":[9,67,87],"and":[10,38,64,68,85,107,148],"program":[11,77],"optimizations":[12],"based":[13],"on":[14],"them":[15],"admit":[16],"declarative":[17],"descriptions":[18],"in":[19,80,95],"the":[20,40,47,93,96,112,115,137,149],"form":[21],"type":[23,48,52,125,138],"systems.":[24],"The":[25,55],"salient":[26],"feature":[27],"is":[28],"clear":[30],"separation":[31],"between":[32],"what":[33],"constitutes":[34],"valid":[36,106],"analysis":[37,150],"how":[39],"strongest":[41],"one":[42],"can":[43],"be":[44],"computed":[45],"(via":[46],"checking":[49],"versus":[50],"principal":[51,108],"inference":[53,126],"distinction).":[54],"approach":[56,116],"also":[57],"facilitates":[58],"elegant":[59],"relational":[60],"semantic":[61],"soundness":[62],"definitions":[63],"proofs":[65],"for":[66,132,156],"optimizations,":[69],"with":[70],"an":[71],"application":[72],"to":[73],"mechanical":[74],"transformation":[75],"proofs,":[78],"useful":[79],"proof-carrying":[81],"code.":[82],"Unidirectional":[83],"forward":[84],"backward":[86],"are":[88,122],"covered":[89],"as":[90,128],"special":[91],"cases;":[92],"technicalities":[94],"general":[97],"case":[99],"arise":[100],"from":[101],"more":[102],"subtle":[103],"notions":[104],"types.":[109],"To":[110],"demonstrate":[111],"viability":[113],"we":[117],"consider":[118],"two":[119],"examples":[120],"inherently":[123],"bidirectional:":[124],"(seen":[127],"problem)":[131],"structured":[134],"language":[135],"where":[136],"variable":[141],"may":[142],"change":[143],"over":[144],"program's":[146],"run":[147],"underlying":[151],"stack":[153],"usage":[154],"optimization":[155],"stack-based":[158],"low-level":[159],"language.":[160]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
