{"id":"https://openalex.org/W2008475907","doi":"https://doi.org/10.1145/1639950.1640008","title":"Dynamically inferring, refining, and checking API usage protocols","display_name":"Dynamically inferring, refining, and checking API usage protocols","publication_year":2009,"publication_date":"2009-10-25","ids":{"openalex":"https://openalex.org/W2008475907","doi":"https://doi.org/10.1145/1639950.1640008","mag":"2008475907"},"language":"en","primary_location":{"id":"doi:10.1145/1639950.1640008","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1639950.1640008","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications","raw_type":"proceedings-article"},"type":"conference-paper","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/A5013438083","display_name":"Michael Pradel","orcid":"https://orcid.org/0000-0003-1623-498X"},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":true,"raw_author_name":"Michael Pradel","raw_affiliation_strings":["Swiss Federal Institute of Technology (ETH), Zurich, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Swiss Federal Institute of Technology (ETH), Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5013438083"],"corresponding_institution_ids":["https://openalex.org/I35440088"],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"773","last_page":"774"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9988999962806702,"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/T11424","display_name":"Security and Verification in Computing","score":0.998199999332428,"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.9003458023071289},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.7573040723800659},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6946122646331787},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.6417473554611206},{"id":"https://openalex.org/keywords/protocol","display_name":"Protocol (science)","score":0.6136764287948608},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.5322325825691223},{"id":"https://openalex.org/keywords/model-checking","display_name":"Model checking","score":0.4757941961288452},{"id":"https://openalex.org/keywords/formal-methods","display_name":"Formal methods","score":0.42582905292510986},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.37355953454971313},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.32543450593948364}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9003458023071289},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.7573040723800659},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6946122646331787},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.6417473554611206},{"id":"https://openalex.org/C2780385302","wikidata":"https://www.wikidata.org/wiki/Q367158","display_name":"Protocol (science)","level":3,"score":0.6136764287948608},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.5322325825691223},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.4757941961288452},{"id":"https://openalex.org/C75606506","wikidata":"https://www.wikidata.org/wiki/Q1049183","display_name":"Formal methods","level":2,"score":0.42582905292510986},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.37355953454971313},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.32543450593948364},{"id":"https://openalex.org/C71924100","wikidata":"https://www.wikidata.org/wiki/Q11190","display_name":"Medicine","level":0,"score":0.0},{"id":"https://openalex.org/C142724271","wikidata":"https://www.wikidata.org/wiki/Q7208","display_name":"Pathology","level":1,"score":0.0},{"id":"https://openalex.org/C204787440","wikidata":"https://www.wikidata.org/wiki/Q188504","display_name":"Alternative medicine","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1639950.1640008","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1639950.1640008","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions","score":0.6299999952316284}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":10,"referenced_works":["https://openalex.org/W1521711401","https://openalex.org/W2091712774","https://openalex.org/W2093938715","https://openalex.org/W2121059325","https://openalex.org/W2131954495","https://openalex.org/W2136646111","https://openalex.org/W2150593762","https://openalex.org/W2166091242","https://openalex.org/W2295399529","https://openalex.org/W4231709874"],"related_works":["https://openalex.org/W2379153735","https://openalex.org/W2046172023","https://openalex.org/W2972896947","https://openalex.org/W2170146914","https://openalex.org/W2355105570","https://openalex.org/W2083974823","https://openalex.org/W2072751097","https://openalex.org/W2015567081","https://openalex.org/W4237177615","https://openalex.org/W2037121848"],"abstract_inverted_index":{"Using":[0],"a":[1,10,34],"set":[2],"of":[3,29,44,73],"API":[4],"methods":[5],"often":[6],"requires":[7],"compliance":[8],"with":[9,51],"protocol,":[11],"whose":[12],"violation":[13],"can":[14,58],"lead":[15],"to":[16,82],"errors":[17],"in":[18],"the":[19,74,83],"program.":[20],"However,":[21],"most":[22],"APIs":[23],"lack":[24],"explicit":[25],"and":[26,41],"formal":[27],"definitions":[28],"these":[30],"protocols.":[31],"We":[32],"propose":[33],"dynamic":[35],"program":[36],"analysis":[37,70],"for":[38],"automatically":[39],"inferring":[40],"refining":[42],"specifications":[43,76],"correct":[45],"method":[46],"call":[47],"sequences.":[48],"Our":[49],"experiments":[50],"several":[52],"Java":[53],"programs":[54],"show":[55],"that":[56,77],"we":[57],"infer":[59],"meaningful":[60],"protocols,":[61],"such":[62],"as":[63],"widely":[64],"respected":[65],"programming":[66],"rules.":[67],"Furthermore,":[68],"our":[69],"finds":[71],"violations":[72],"inferred":[75],"point":[78],"out":[79],"potential":[80],"bugs":[81],"programmer.":[84]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-07-14T23:27:15.235271","created_date":"2025-10-10T00:00:00"}
