{"id":"https://openalex.org/W2069892440","doi":"https://doi.org/10.1145/1449764.1449784","title":"Enforcing object protocols by combining static and runtime analysis","display_name":"Enforcing object protocols by combining static and runtime analysis","publication_year":2008,"publication_date":"2008-10-19","ids":{"openalex":"https://openalex.org/W2069892440","doi":"https://doi.org/10.1145/1449764.1449784","mag":"2069892440"},"language":"en","primary_location":{"id":"doi:10.1145/1449764.1449784","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1449764.1449784","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications","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/A5088860188","display_name":"Madhu Gopinathan","orcid":null},"institutions":[{"id":"https://openalex.org/I59270414","display_name":"Indian Institute of Science Bangalore","ror":"https://ror.org/04dese585","country_code":"IN","type":"education","lineage":["https://openalex.org/I59270414"]}],"countries":["IN"],"is_corresponding":true,"raw_author_name":"Madhu Gopinathan","raw_affiliation_strings":["Indian Institute of Science, Bangalore, India"],"affiliations":[{"raw_affiliation_string":"Indian Institute of Science, Bangalore, India","institution_ids":["https://openalex.org/I59270414"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5076139746","display_name":"Sriram K. Rajamani","orcid":"https://orcid.org/0000-0002-1400-7065"},"institutions":[{"id":"https://openalex.org/I4210124949","display_name":"Microsoft Research (India)","ror":"https://ror.org/02w7f3w92","country_code":"IN","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210124949"]},{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["IN","US"],"is_corresponding":false,"raw_author_name":"Sriram K. Rajamani","raw_affiliation_strings":["Microsoft Research India, Bangalore, India","Microsoft Research india, Bangalore, India#TAB#"],"affiliations":[{"raw_affiliation_string":"Microsoft Research India, Bangalore, India","institution_ids":["https://openalex.org/I4210124949"]},{"raw_affiliation_string":"Microsoft Research india, Bangalore, India#TAB#","institution_ids":["https://openalex.org/I1290206253"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5088860188"],"corresponding_institution_ids":["https://openalex.org/I59270414"],"apc_list":null,"apc_paid":null,"fwci":7.0246,"has_fulltext":false,"cited_by_count":16,"citation_normalized_percentile":{"value":0.96556163,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"245","last_page":"260"},"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.9987999796867371,"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.9987999796867371,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9973999857902527,"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.9950000047683716,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.8987845182418823},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8831689357757568},{"id":"https://openalex.org/keywords/protocol","display_name":"Protocol (science)","score":0.7738475799560547},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7341969013214111},{"id":"https://openalex.org/keywords/model-checking","display_name":"Model checking","score":0.5466195344924927},{"id":"https://openalex.org/keywords/protocol-analysis","display_name":"Protocol analysis","score":0.5181257128715515},{"id":"https://openalex.org/keywords/universal-composability","display_name":"Universal composability","score":0.5002362728118896},{"id":"https://openalex.org/keywords/general-inter-orb-protocol","display_name":"General Inter-ORB Protocol","score":0.49797797203063965},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.4802951514720917},{"id":"https://openalex.org/keywords/object","display_name":"Object (grammar)","score":0.4783743917942047},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.4705280065536499},{"id":"https://openalex.org/keywords/program-analysis","display_name":"Program analysis","score":0.45516952872276306},{"id":"https://openalex.org/keywords/invariant","display_name":"Invariant (physics)","score":0.44205284118652344},{"id":"https://openalex.org/keywords/predicate-abstraction","display_name":"Predicate abstraction","score":0.43856891989707947},{"id":"https://openalex.org/keywords/interaction-protocol","display_name":"Interaction protocol","score":0.43518221378326416},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.36231565475463867},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.24906909465789795},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.20103532075881958},{"id":"https://openalex.org/keywords/cryptographic-protocol","display_name":"Cryptographic protocol","score":0.18060335516929626},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.15946215391159058},{"id":"https://openalex.org/keywords/reverse-address-resolution-protocol","display_name":"Reverse Address Resolution Protocol","score":0.14744174480438232}],"concepts":[{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.8987845182418823},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8831689357757568},{"id":"https://openalex.org/C2780385302","wikidata":"https://www.wikidata.org/wiki/Q367158","display_name":"Protocol (science)","level":3,"score":0.7738475799560547},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7341969013214111},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.5466195344924927},{"id":"https://openalex.org/C133112747","wikidata":"https://www.wikidata.org/wiki/Q7251931","display_name":"Protocol analysis","level":2,"score":0.5181257128715515},{"id":"https://openalex.org/C165751822","wikidata":"https://www.wikidata.org/wiki/Q7894118","display_name":"Universal composability","level":4,"score":0.5002362728118896},{"id":"https://openalex.org/C75114861","wikidata":"https://www.wikidata.org/wiki/Q594324","display_name":"General Inter-ORB Protocol","level":5,"score":0.49797797203063965},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.4802951514720917},{"id":"https://openalex.org/C2781238097","wikidata":"https://www.wikidata.org/wiki/Q175026","display_name":"Object (grammar)","level":2,"score":0.4783743917942047},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.4705280065536499},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.45516952872276306},{"id":"https://openalex.org/C190470478","wikidata":"https://www.wikidata.org/wiki/Q2370229","display_name":"Invariant (physics)","level":2,"score":0.44205284118652344},{"id":"https://openalex.org/C2779907942","wikidata":"https://www.wikidata.org/wiki/Q7239630","display_name":"Predicate abstraction","level":3,"score":0.43856891989707947},{"id":"https://openalex.org/C2775851571","wikidata":"https://www.wikidata.org/wiki/Q6045205","display_name":"Interaction protocol","level":3,"score":0.43518221378326416},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.36231565475463867},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.24906909465789795},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.20103532075881958},{"id":"https://openalex.org/C33884865","wikidata":"https://www.wikidata.org/wiki/Q1254335","display_name":"Cryptographic protocol","level":3,"score":0.18060335516929626},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.15946215391159058},{"id":"https://openalex.org/C71065454","wikidata":"https://www.wikidata.org/wiki/Q721869","display_name":"Reverse Address Resolution Protocol","level":4,"score":0.14744174480438232},{"id":"https://openalex.org/C204787440","wikidata":"https://www.wikidata.org/wiki/Q188504","display_name":"Alternative medicine","level":2,"score":0.0},{"id":"https://openalex.org/C110875604","wikidata":"https://www.wikidata.org/wiki/Q75","display_name":"The Internet","level":2,"score":0.0},{"id":"https://openalex.org/C178489894","wikidata":"https://www.wikidata.org/wiki/Q8789","display_name":"Cryptography","level":2,"score":0.0},{"id":"https://openalex.org/C37914503","wikidata":"https://www.wikidata.org/wiki/Q156495","display_name":"Mathematical physics","level":1,"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/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.0},{"id":"https://openalex.org/C71924100","wikidata":"https://www.wikidata.org/wiki/Q11190","display_name":"Medicine","level":0,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"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/C35341882","wikidata":"https://www.wikidata.org/wiki/Q8795","display_name":"Internet Protocol","level":3,"score":0.0},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/1449764.1449784","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1449764.1449784","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications","raw_type":"proceedings-article"},{"id":"pmh:oai:eprints.iisc.ac.in:18792","is_oa":false,"landing_page_url":null,"pdf_url":null,"source":{"id":"https://openalex.org/S4377196309","display_name":"NOT FOUND REPOSITORY (Indian Institute of Science Bangalore)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I59270414","host_organization_name":"Indian Institute of Science Bangalore","host_organization_lineage":["https://openalex.org/I59270414"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"","raw_type":"Journal Article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.463.652","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.463.652","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://research.microsoft.com/pubs/74558/oopsla2008.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":28,"referenced_works":["https://openalex.org/W1489778371","https://openalex.org/W1523197392","https://openalex.org/W1558367238","https://openalex.org/W1959256509","https://openalex.org/W1971327145","https://openalex.org/W1998070736","https://openalex.org/W2001404534","https://openalex.org/W2029414465","https://openalex.org/W2044590882","https://openalex.org/W2055477538","https://openalex.org/W2073407646","https://openalex.org/W2082000355","https://openalex.org/W2086970510","https://openalex.org/W2109879514","https://openalex.org/W2134311998","https://openalex.org/W2143238865","https://openalex.org/W2150593762","https://openalex.org/W2151131364","https://openalex.org/W2156268601","https://openalex.org/W2159377125","https://openalex.org/W2160456755","https://openalex.org/W2752885492","https://openalex.org/W3145128584","https://openalex.org/W4230004677","https://openalex.org/W4254691308","https://openalex.org/W6676292639","https://openalex.org/W6979921960","https://openalex.org/W7029321148"],"related_works":["https://openalex.org/W177177356","https://openalex.org/W2350708904","https://openalex.org/W2268875388","https://openalex.org/W3168897635","https://openalex.org/W2350536881","https://openalex.org/W2163429719","https://openalex.org/W574922732","https://openalex.org/W2387194989","https://openalex.org/W1821306856","https://openalex.org/W2069892440"],"abstract_inverted_index":{"In":[0,41],"this":[1,170],"paper,":[2],"we":[3,214],"consider":[4],"object":[5,69,78,104],"protocols":[6,17,70,105],"that":[7,62,223,237],"constrain":[8,33],"interactions":[9],"between":[10],"objects":[11],"in":[12,21,52,175,230],"a":[13,83,99,112,118,121,131,146,150,181],"program.":[14],"Several":[15],"such":[16,46,88],"have":[18],"been":[19,204],"proposed":[20],"the":[22,126,141,163,188,212,244,260,265],"literature.":[23],"For":[24],"many":[25],"APIs":[26],"(such":[27],"as":[28,48,82,89,94,200,262],"JDOM,":[29],"JDBC),":[30],"API":[31,35,39,43,63,252,261,266],"designers":[32,64],"how":[34],"clients":[36,44,253],"interact":[37],"with":[38,107],"objects.":[40],"practice,":[42],"violate":[45],"constraints,":[47],"evidenced":[49],"by":[50,264],"postings":[51],"discussion":[53],"forums":[54],"for":[55],"these":[56],"APIs.":[57,233],"Thus,":[58],"it":[59],"is":[60,80,157,198],"important":[61],"specify":[65,103],"constraints":[66],"using":[67,159,165],"appropriate":[68],"and":[71,111,162,192,217,220],"enforce":[72],"them.":[73],"The":[74,155],"goal":[75],"of":[76,128,143,184,187,195,246],"an":[77],"protocol":[79,84,95,109,122,132,135,138,151,176,201,240],"expressed":[81,93],"invariant.":[85,123],"Fundamental":[86],"properties":[87],"ownership":[90],"can":[91],"be":[92],"invariants.":[96],"We":[97,207,234],"present":[98,208],"language,":[100],"PROLANG,":[101],"to":[102,115,149,169,254],"along":[106],"their":[108,257],"invariants,":[110],"tool,":[113],"INVCOP++,":[114],"check":[116],"if":[117,130,145],"program":[119,147,153,248],"satisfies":[120,133],"INVCOP++":[124,226],"separates":[125],"problem":[127,142],"checking":[129,144,197,239,247],"its":[134],"invariant":[136],"(called":[137,152],"correctness),":[139],"from":[140],"conforms":[148],"conformance).":[154],"former":[156],"solved":[158],"static":[160,216],"analysis,":[161,219],"latter":[164],"runtime":[166,218],"analysis.":[167],"Due":[168],"separation":[171],"(1)":[172],"errors":[173,229],"made":[174],"design":[177],"are":[178],"detected":[179],"at":[180],"higher":[182],"level":[183],"abstraction,":[185],"independent":[186],"program's":[189],"source":[190],"code,":[191],"(2)":[193],"performance":[194],"conformance":[196],"improved":[199],"correctness":[202,241],"has":[203],"verified":[205],"statically.":[206],"theoretical":[209],"guarantees":[210],"about":[211],"way":[213],"combine":[215],"empirical":[221],"evidence":[222],"our":[224],"tool":[225],"finds":[227],"usage":[228],"widely":[231],"used":[232],"also":[235],"show":[236],"statically":[238],"greatly":[242],"optimizes":[243],"overhead":[245],"conformance,":[249],"thus":[250],"enabling":[251],"test":[255],"whether":[256],"programs":[258],"use":[259],"intended":[263],"designer.":[267]},"counts_by_year":[{"year":2014,"cited_by_count":2},{"year":2012,"cited_by_count":2}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
