{"id":"https://openalex.org/W3116200388","doi":"https://doi.org/10.1145/3434298","title":"Verifying correct usage of context-free API protocols","display_name":"Verifying correct usage of context-free API protocols","publication_year":2021,"publication_date":"2021-01-04","ids":{"openalex":"https://openalex.org/W3116200388","doi":"https://doi.org/10.1145/3434298","mag":"3116200388"},"language":"en","primary_location":{"id":"doi:10.1145/3434298","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3434298","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3434298","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3434298","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5022616286","display_name":"Kostas Ferles","orcid":"https://orcid.org/0000-0002-8370-5465"},"institutions":[{"id":"https://openalex.org/I86519309","display_name":"The University of Texas at Austin","ror":"https://ror.org/00hj54h04","country_code":"US","type":"education","lineage":["https://openalex.org/I86519309"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Kostas Ferles","raw_affiliation_strings":["University of Texas at Austin, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Texas at Austin, USA","institution_ids":["https://openalex.org/I86519309"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110662994","display_name":"Jon Stephens","orcid":null},"institutions":[{"id":"https://openalex.org/I86519309","display_name":"The University of Texas at Austin","ror":"https://ror.org/00hj54h04","country_code":"US","type":"education","lineage":["https://openalex.org/I86519309"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jon Stephens","raw_affiliation_strings":["University of Texas at Austin, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Texas at Austin, USA","institution_ids":["https://openalex.org/I86519309"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5006424908","display_name":"I\u015f\u0131l Dillig","orcid":"https://orcid.org/0000-0001-8006-1230"},"institutions":[{"id":"https://openalex.org/I86519309","display_name":"The University of Texas at Austin","ror":"https://ror.org/00hj54h04","country_code":"US","type":"education","lineage":["https://openalex.org/I86519309"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Isil Dillig","raw_affiliation_strings":["University of Texas at Austin, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Texas at Austin, USA","institution_ids":["https://openalex.org/I86519309"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I86519309"],"apc_list":null,"apc_paid":null,"fwci":3.7808,"has_fulltext":true,"cited_by_count":11,"citation_normalized_percentile":{"value":0.9128183,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":98},"biblio":{"volume":"5","issue":"POPL","first_page":"1","last_page":"30"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9984999895095825,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9984999895095825,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.9958000183105469,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9957000017166138,"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.9046099185943604},{"id":"https://openalex.org/keywords/serialization","display_name":"Serialization","score":0.7869217395782471},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7801798582077026},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.587145984172821},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5400280952453613},{"id":"https://openalex.org/keywords/counterexample","display_name":"Counterexample","score":0.4661148190498352},{"id":"https://openalex.org/keywords/abstraction","display_name":"Abstraction","score":0.46265655755996704},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.4186728000640869},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.33984023332595825},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.16556131839752197}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9046099185943604},{"id":"https://openalex.org/C52723943","wikidata":"https://www.wikidata.org/wiki/Q1127410","display_name":"Serialization","level":2,"score":0.7869217395782471},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7801798582077026},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.587145984172821},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5400280952453613},{"id":"https://openalex.org/C162838799","wikidata":"https://www.wikidata.org/wiki/Q596077","display_name":"Counterexample","level":2,"score":0.4661148190498352},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.46265655755996704},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.4186728000640869},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.33984023332595825},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.16556131839752197},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"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":1,"locations":[{"id":"doi:10.1145/3434298","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3434298","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3434298","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3434298","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3434298","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3434298","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/10","score":0.46000000834465027,"display_name":"Reduced inequalities"}],"awards":[{"id":"https://openalex.org/G3467294085","display_name":"CAREER: UNITY: Bridging the Gap Between Program Analyzers and Deductive Verifiers via Abductive Reasoning","funder_award_id":"1453386","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G4713059963","display_name":null,"funder_award_id":"FA8750","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G980950592","display_name":null,"funder_award_id":"#FA8750-20-C-0208","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3116200388.pdf","grobid_xml":"https://content.openalex.org/works/W3116200388.grobid-xml"},"referenced_works_count":88,"referenced_works":["https://openalex.org/W33001676","https://openalex.org/W35710305","https://openalex.org/W96134206","https://openalex.org/W110849379","https://openalex.org/W967948971","https://openalex.org/W1511982475","https://openalex.org/W1565898282","https://openalex.org/W1593690673","https://openalex.org/W1596552075","https://openalex.org/W1711395388","https://openalex.org/W1870299213","https://openalex.org/W1875182499","https://openalex.org/W1879732467","https://openalex.org/W1884709457","https://openalex.org/W1966032455","https://openalex.org/W1993836075","https://openalex.org/W1997981086","https://openalex.org/W1998344822","https://openalex.org/W2002089154","https://openalex.org/W2005301799","https://openalex.org/W2007846881","https://openalex.org/W2016321105","https://openalex.org/W2023090947","https://openalex.org/W2026114025","https://openalex.org/W2028072917","https://openalex.org/W2035260626","https://openalex.org/W2040713190","https://openalex.org/W2044590882","https://openalex.org/W2055489377","https://openalex.org/W2080573945","https://openalex.org/W2080696000","https://openalex.org/W2086991228","https://openalex.org/W2089139117","https://openalex.org/W2091712774","https://openalex.org/W2099952304","https://openalex.org/W2107398710","https://openalex.org/W2107412422","https://openalex.org/W2107794009","https://openalex.org/W2110833886","https://openalex.org/W2111894887","https://openalex.org/W2114132089","https://openalex.org/W2114987070","https://openalex.org/W2115725211","https://openalex.org/W2119137801","https://openalex.org/W2119736157","https://openalex.org/W2123691799","https://openalex.org/W2131195907","https://openalex.org/W2133497528","https://openalex.org/W2134311998","https://openalex.org/W2134429122","https://openalex.org/W2134875273","https://openalex.org/W2140021378","https://openalex.org/W2149907859","https://openalex.org/W2150593762","https://openalex.org/W2151033407","https://openalex.org/W2151463894","https://openalex.org/W2154173307","https://openalex.org/W2156915601","https://openalex.org/W2158395308","https://openalex.org/W2159756689","https://openalex.org/W2206626735","https://openalex.org/W2228938473","https://openalex.org/W2293685560","https://openalex.org/W2295857493","https://openalex.org/W2295903414","https://openalex.org/W2483771058","https://openalex.org/W2493946278","https://openalex.org/W2545845195","https://openalex.org/W2561266941","https://openalex.org/W2777662281","https://openalex.org/W2794823999","https://openalex.org/W2796681537","https://openalex.org/W2899642440","https://openalex.org/W2900044545","https://openalex.org/W2912538643","https://openalex.org/W2913256667","https://openalex.org/W3008053328","https://openalex.org/W3033818254","https://openalex.org/W3093247589","https://openalex.org/W3109562041","https://openalex.org/W3141181691","https://openalex.org/W3145806289","https://openalex.org/W4230796557","https://openalex.org/W4240621788","https://openalex.org/W4240735127","https://openalex.org/W4243644740","https://openalex.org/W4254377784","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2349952486","https://openalex.org/W1489260687","https://openalex.org/W3204670144","https://openalex.org/W2163101548","https://openalex.org/W1988934358","https://openalex.org/W2587222766","https://openalex.org/W4389574038","https://openalex.org/W2162945176","https://openalex.org/W4240080598","https://openalex.org/W1558442354"],"abstract_inverted_index":{"Several":[0],"real-world":[1],"libraries":[2],"(e.g.,":[3],"reentrant":[4],"locks,":[5],"GUI":[6],"frameworks,":[7],"serialization":[8],"libraries)":[9],"require":[10],"their":[11],"clients":[12,176],"to":[13,23,53,85,98,116,122,168],"use":[14,152,178],"the":[15,39,55,75,88,101,123,128,135,173,210],"provided":[16],"API":[17,44,58,156,174],"in":[18,87,138,175],"a":[19,24,34,62,94,139,158],"manner":[20],"that":[21,151,164,177,186,200,207],"conforms":[22],"context-free":[25,43,63,159],"specification.":[26,76,160],"Motivated":[27],"by":[28],"this":[29,31,72,79],"observation,":[30],"paper":[32],"describes":[33],"new":[35,118],"technique":[36,51,97],"for":[37,184],"verifying":[38],"correct":[40,170],"usage":[41,171],"of":[42,172,204,212],"protocols.":[45],"The":[46],"key":[47],"idea":[48],"underlying":[49],"our":[50,105,192],"is":[52,166],"over-approximate":[54],"program\u2019s":[56,89,129],"feasible":[57],"call":[59],"sequences":[60],"using":[61],"grammar":[64,73,124],"(CFG)":[65],"and":[66,74,113,120,143,181,198],"then":[67],"check":[68,81],"language":[69],"inclusion":[70,80,111],"between":[71],"However,":[77],"since":[78],"may":[82],"fail":[83],"due":[84],"imprecision":[86],"CFG":[90,110],"abstraction,":[91],"we":[92],"propose":[93],"novel":[95],"refinement":[96],"progressively":[99],"improve":[100],"CFG.":[102],"In":[103],"particular,":[104],"method":[106,193],"obtains":[107],"counterexamples":[108,183],"from":[109],"queries":[112],"uses":[114],"them":[115],"introduce":[117],"non-terminals":[119],"productions":[121],"while":[125],"still":[126],"over-approximating":[127],"relevant":[130,196],"behavior.":[131],"We":[132,189],"have":[133],"implemented":[134],"proposed":[136],"algorithm":[137],"tool":[140],"called":[141],"CFPChecker":[142,165,201],"evaluate":[144],"it":[145,179],"on":[146],"10":[147],"popular":[148],"Java":[149],"applications":[150],"at":[153],"least":[154],"one":[155],"with":[157],"Our":[161],"evaluation":[162],"shows":[163],"able":[167],"verify":[169],"correctly":[180],"produces":[182],"those":[185],"do":[187],"not.":[188],"also":[190],"compare":[191],"against":[194],"three":[195],"baselines":[197],"demonstrate":[199],"enables":[202],"verification":[203],"safety":[205],"properties":[206],"are":[208],"beyond":[209],"reach":[211],"existing":[213],"tools.":[214]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":5},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":2}],"updated_date":"2026-08-01T09:00:35.917206","created_date":"2025-10-10T00:00:00"}
