{"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":{"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},"type":"article","type_crossref":"journal-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":false},"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"],"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"],"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"],"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"],"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University","institution_ids":["https://openalex.org/I74973139"]}]}],"institution_assertions":[],"countries_distinct_count":3,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":8.922,"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":72,"citation_normalized_percentile":{"value":0.999969,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":97,"max":98},"biblio":{"volume":"36","issue":"4","first_page":"1","last_page":"44"},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998,"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.9998,"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.9959,"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.9945,"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/type-safety","display_name":"Type safety","score":0.43429026}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.91445774},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.82680786},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.5808251},{"id":"https://openalex.org/C2781238097","wikidata":"https://www.wikidata.org/wiki/Q175026","display_name":"Object (grammar)","level":2,"score":0.5339234},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.5121324},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.4994731},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.43887562},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.43429026},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3277992},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12016982}],"mesh":[],"locations_count":1,"locations":[{"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}],"best_oa_location":{"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},"sustainable_development_goals":[{"display_name":"Peace, justice, and strong institutions","score":0.48,"id":"https://metadata.un.org/sdg/16"}],"grants":[{"funder":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation","award_id":"#0937060"},{"funder":"https://openalex.org/F4320308633","funder_display_name":"Computing Research Association","award_id":null},{"funder":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada","award_id":null},{"funder":"https://openalex.org/F4320337387","funder_display_name":"Division of Computing and Communication Foundations","award_id":"#CCF-0811592 and #CCF-1116907"},{"funder":"https://openalex.org/F4320338073","funder_display_name":"Fondo Nacional de Desarrollo Cient\u00edfico y Tecnol\u00f3gico","award_id":null}],"datasets":[],"versions":[],"referenced_works_count":37,"referenced_works":["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","https://openalex.org/W634491767"],"related_works":["https://openalex.org/W3000294674","https://openalex.org/W2611825707","https://openalex.org/W2552002334","https://openalex.org/W2104216136","https://openalex.org/W2054577134","https://openalex.org/W1987203566","https://openalex.org/W1910488985","https://openalex.org/W1578809901","https://openalex.org/W1547394117","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]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W2123691799","counts_by_year":[{"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":8},{"year":2018,"cited_by_count":5},{"year":2017,"cited_by_count":4},{"year":2016,"cited_by_count":11},{"year":2015,"cited_by_count":9},{"year":2014,"cited_by_count":3}],"updated_date":"2024-12-13T02:35:47.004363","created_date":"2016-06-24"}