{"id":"https://openalex.org/W2123691799","doi":"https://doi.org/10.1145/2629609","title":"Foundations of Typestate-Oriented Programming","display_name":"Foundations of Typestate-Oriented Programming","publication_year":2014,"publication_date":"2014-10-28","ids":{"openalex":"https://openalex.org/W2123691799","doi":"https://doi.org/10.1145/2629609","mag":"2123691799"},"language":"en","primary_location":{"id":"doi:10.1145/2629609","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2629609","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2629609","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/2629609","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5051937731","display_name":"Ronald Garcia","orcid":"https://orcid.org/0000-0002-0982-1118"},"institutions":[{"id":"https://openalex.org/I141945490","display_name":"University of British Columbia","ror":"https://ror.org/03rmrcq20","country_code":"CA","type":"education","lineage":["https://openalex.org/I141945490"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ronald Garcia","raw_affiliation_strings":["University of British Columbia"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of British Columbia","institution_ids":["https://openalex.org/I141945490"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5074606459","display_name":"\u00c9ric Tanter","orcid":"https://orcid.org/0000-0002-7359-890X"},"institutions":[{"id":"https://openalex.org/I69737025","display_name":"University of Chile","ror":"https://ror.org/047gc3g35","country_code":"CL","type":"education","lineage":["https://openalex.org/I69737025"]}],"countries":["CL"],"is_corresponding":false,"raw_author_name":"\u00c9ric Tanter","raw_affiliation_strings":["University of Chile"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Chile","institution_ids":["https://openalex.org/I69737025"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5075872914","display_name":"Roger Wolff","orcid":null},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Roger Wolff","raw_affiliation_strings":["Carnegie Mellon University"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5091372985","display_name":"Jonathan Aldrich","orcid":"https://orcid.org/0000-0003-0631-5591"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jonathan Aldrich","raw_affiliation_strings":["Carnegie Mellon University"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University","institution_ids":["https://openalex.org/I74973139"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":12.993,"has_fulltext":true,"cited_by_count":77,"citation_normalized_percentile":{"value":0.98610576,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":93,"max":99},"biblio":{"volume":"36","issue":"4","first_page":"1","last_page":"44"},"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/T10142","display_name":"Formal Methods in Verification","score":0.9958999752998352,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T11424","display_name":"Security and Verification in Computing","score":0.9944999814033508,"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/computer-science","display_name":"Computer science","score":0.9144577383995056},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8268078565597534},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.5808250904083252},{"id":"https://openalex.org/keywords/object","display_name":"Object (grammar)","score":0.5339233875274658},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.5121324062347412},{"id":"https://openalex.org/keywords/state","display_name":"State (computer science)","score":0.49947309494018555},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.43887561559677124},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.4342902600765228},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3277992010116577},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.12016981840133667}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9144577383995056},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8268078565597534},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.5808250904083252},{"id":"https://openalex.org/C2781238097","wikidata":"https://www.wikidata.org/wiki/Q175026","display_name":"Object (grammar)","level":2,"score":0.5339233875274658},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.5121324062347412},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.49947309494018555},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.43887561559677124},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.4342902600765228},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3277992010116577},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12016981840133667}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/2629609","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2629609","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2629609","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},{"id":"pmh:oai:repository.cmu.edu:compsci-3560","is_oa":false,"landing_page_url":"http://repository.cmu.edu/cgi/viewcontent.cgi?article=3560&context=compsci","pdf_url":null,"source":{"id":"https://openalex.org/S7407050927","display_name":"KiltHub Repository","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I74973139","host_organization_name":"Carnegie Mellon University","host_organization_lineage":["https://openalex.org/I74973139"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Computer Science Department","raw_type":"text"},{"id":"pmh:oai:americanae.aecid.es:3271734","is_oa":true,"landing_page_url":"http://americanae.aecid.es/americanae/es/registros/registro.do?tipoRegistro=MTD&idBib=3271734","pdf_url":null,"source":{"id":"https://openalex.org/S4306400786","display_name":"Americanae (AECID Library)","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":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS","raw_type":"info:eu-repo/semantics/article"},{"id":"pmh:oai:localhost:10533/135568","is_oa":true,"landing_page_url":"http://hdl.handle.net/10533/135568","pdf_url":null,"source":{"id":"https://openalex.org/S4306402641","display_name":"LA Referencia (Red Federada de Repositorios Institucionales de Publicaciones Cient\u00edficas)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I4383465926","host_organization_name":"LA Referencia","host_organization_lineage":["https://openalex.org/I4383465926"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS","raw_type":"info:eu-repo/semantics/article"}],"best_oa_location":{"id":"doi:10.1145/2629609","is_oa":true,"landing_page_url":"https://doi.org/10.1145/2629609","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/2629609","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"sustainable_development_goals":[{"score":0.47999998927116394,"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions"}],"awards":[{"id":"https://openalex.org/G1811662502","display_name":"CPA-SEL: Practical Typestate Verification with Assume-Guarantee Reasoning","funder_award_id":"0811592","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6990480813","display_name":null,"funder_award_id":"#CCF-0811592 and #CCF-1116907","funder_id":"https://openalex.org/F4320337387","funder_display_name":"Division of Computing and Communication Foundations"},{"id":"https://openalex.org/G7919195301","display_name":"Computing Innovation Fellows Project","funder_award_id":"0937060","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G8227137351","display_name":"SHF :Small: Foundations of Permission-Based Object-Oriented Languages","funder_award_id":"1116907","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320308633","display_name":"Computing Research Association","ror":"https://ror.org/00agrkd75"},{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"},{"id":"https://openalex.org/F4320337387","display_name":"Division of Computing and Communication Foundations","ror":"https://ror.org/01mng8331"},{"id":"https://openalex.org/F4320338073","display_name":"Fondo Nacional de Desarrollo Cient\u00edfico y Tecnol\u00f3gico","ror":"https://ror.org/02ap3w078"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2123691799.pdf","grobid_xml":"https://content.openalex.org/works/W2123691799.grobid-xml"},"referenced_works_count":37,"referenced_works":["https://openalex.org/W634491767","https://openalex.org/W1511982475","https://openalex.org/W1538858001","https://openalex.org/W1553136405","https://openalex.org/W1557561422","https://openalex.org/W1559019450","https://openalex.org/W1568983194","https://openalex.org/W1576361343","https://openalex.org/W1649645444","https://openalex.org/W1711395388","https://openalex.org/W1773735832","https://openalex.org/W1861989620","https://openalex.org/W1971327145","https://openalex.org/W1975575519","https://openalex.org/W1976247299","https://openalex.org/W1983086540","https://openalex.org/W1998344822","https://openalex.org/W2003498848","https://openalex.org/W2032774097","https://openalex.org/W2033348393","https://openalex.org/W2042694844","https://openalex.org/W2044590882","https://openalex.org/W2070088936","https://openalex.org/W2079043385","https://openalex.org/W2091712774","https://openalex.org/W2094694891","https://openalex.org/W2115725211","https://openalex.org/W2144160229","https://openalex.org/W2156881251","https://openalex.org/W2171043779","https://openalex.org/W2286529493","https://openalex.org/W2561675875","https://openalex.org/W2911865844","https://openalex.org/W2912880222","https://openalex.org/W3028779248","https://openalex.org/W3137596000","https://openalex.org/W4241045451"],"related_works":["https://openalex.org/W3000294674","https://openalex.org/W1578809901","https://openalex.org/W2611825707","https://openalex.org/W2104216136","https://openalex.org/W1910488985","https://openalex.org/W2552002334","https://openalex.org/W1547394117","https://openalex.org/W2054577134","https://openalex.org/W1987203566","https://openalex.org/W1517148154"],"abstract_inverted_index":{"Typestate":[0,168,215],"reflects":[1],"how":[2,51],"the":[3,34,42,102,106,170,220,260],"legal":[4],"operations":[5],"on":[6,82],"imperative":[7],"objects":[8,123],"can":[9,21,55,119,264],"change":[10,120,154],"at":[11],"runtime":[12,134,241],"as":[13,70,158],"their":[14],"internal":[15],"state":[16,39,63,150,181],"changes.":[17],"A":[18],"typestate":[19,53,66,75,107,153,156,195,230],"checker":[20,263],"statically":[22,165],"ensure,":[23],"for":[24,40,140,191,201,227],"instance,":[25],"that":[26,117,151],"an":[27,78,85,109],"object":[28,35,110,173],"method":[29],"is":[30,36,44,197],"only":[31,126,265],"called":[32],"when":[33,259],"in":[37,101],"a":[38,71,90,144,164,185,210],"which":[41],"operation":[43],"well":[45],"defined.":[46],"Prior":[47],"work":[48],"has":[49],"shown":[50],"modular":[52],"checking":[54,157,196,231,237],"be":[56],"achieved":[57],"thanks":[58],"to":[59,113,225,253],"access":[60,178],"permissions":[61,179],"and":[62,116,133,155,180,235],"guarantees.":[64,182],"However,":[65],"was":[67],"not":[68,125],"treated":[69],"primitive":[72,159],"language":[73,94,147,208,218],"concept:":[74],"checkers":[76],"are":[77,175],"additional":[79],"verification":[80],"layer":[81],"top":[83],"of":[84,108,172,222,249],"existing":[86],"language.":[87],"In":[88],"contrast,":[89],"typestate-oriented":[91],"programming":[92,104],"(TSOP)":[93],"directly":[95,111],"supports":[96],"expressing":[97],"typestates.":[98],"For":[99],"example,":[100],"Plaid":[103,122],"language,":[105],"corresponds":[112],"its":[114],"class,":[115],"class":[118],"dynamically.":[121],"have":[124],"typestate-dependent":[127,131],"interfaces":[128],"but":[129],"also":[130],"behaviors":[132],"representations.":[135],"This":[136,217],"article":[137],"lays":[138],"foundations":[139],"TSOP":[141],"by":[142,238],"formalizing":[143],"nominal":[145],"object-oriented":[146],"with":[148,177],"mutable":[149],"integrates":[152],"concepts.":[160],"We":[161,183],"first":[162],"describe":[163,184],"typed":[166,212],"language\u2014Featherweight":[167],"(FT)\u2014where":[169],"types":[171],"references":[174],"augmented":[176],"novel":[186],"flow-sensitive":[187],"permission-based":[188],"type":[189,247,262],"system":[190,248],"FT.":[192],"Because":[193],"static":[194,234,261],"still":[198],"too":[199],"rigid":[200],"some":[202],"applications,":[203],"we":[204],"then":[205],"extend":[206],"this":[207],"into":[209,243],"gradually":[211],"language\u2014Gradual":[213],"Featherweight":[214],"(GFT).":[216],"extends":[219],"notion":[221],"gradual":[223,229,246],"typing":[224],"account":[226],"typestate:":[228],"seamlessly":[232],"combines":[233],"dynamic":[236],"automatically":[239],"inserting":[240],"checks":[242],"programs.":[244],"The":[245],"GFT":[250],"allows":[251],"programmers":[252],"write":[254],"dynamically":[255],"safe":[256],"code":[257],"even":[258],"partly":[266],"verify":[267],"it.":[268]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":8},{"year":2020,"cited_by_count":14},{"year":2019,"cited_by_count":7},{"year":2018,"cited_by_count":6},{"year":2017,"cited_by_count":4},{"year":2016,"cited_by_count":10},{"year":2015,"cited_by_count":9},{"year":2014,"cited_by_count":3}],"updated_date":"2026-08-26T07:47:46.906454","created_date":"2025-10-10T00:00:00"}
