{"id":"https://openalex.org/W2767680799","doi":"https://doi.org/10.1145/3158139","title":"Soft contract verification for higher-order stateful programs","display_name":"Soft contract verification for higher-order stateful programs","publication_year":2017,"publication_date":"2017-12-27","ids":{"openalex":"https://openalex.org/W2767680799","doi":"https://doi.org/10.1145/3158139","mag":"2767680799"},"language":"en","primary_location":{"id":"doi:10.1145/3158139","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158139","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3158139?download=true","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","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":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3158139?download=true","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Ph\u00fac C. Nguy\u1ec5n","orcid":null},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Ph\u00fac C. Nguy\u1ec5n","raw_affiliation_strings":["University of Maryland, USA"],"affiliations":[{"raw_affiliation_string":"University of Maryland, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Thomas Gilray","orcid":null},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Thomas Gilray","raw_affiliation_strings":["University of Maryland, USA"],"affiliations":[{"raw_affiliation_string":"University of Maryland, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Sam Tobin-Hochstadt","orcid":null},"institutions":[{"id":"https://openalex.org/I592451","display_name":"Indiana University","ror":"https://ror.org/01kg8sb98","country_code":"US","type":"education","lineage":["https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sam Tobin-Hochstadt","raw_affiliation_strings":["Indiana University, USA"],"affiliations":[{"raw_affiliation_string":"Indiana University, USA","institution_ids":["https://openalex.org/I592451"]}]},{"author_position":"last","author":{"id":null,"display_name":"David Van Horn","orcid":null},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"David Van Horn","raw_affiliation_strings":["University of Maryland, USA"],"affiliations":[{"raw_affiliation_string":"University of Maryland, USA","institution_ids":["https://openalex.org/I66946132"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I66946132"],"apc_list":null,"apc_paid":null,"fwci":0.4157,"has_fulltext":true,"cited_by_count":15,"citation_normalized_percentile":{"value":0.73341879,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":"2","issue":"POPL","first_page":"1","last_page":"30"},"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.4129999876022339,"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.4129999876022339,"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.2280000001192093,"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.12110000103712082,"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/stateful-firewall","display_name":"Stateful firewall","score":0.9217000007629395},{"id":"https://openalex.org/keywords/design-by-contract","display_name":"Design by contract","score":0.5968000292778015},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.5242000222206116},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.5063999891281128},{"id":"https://openalex.org/keywords/runtime-verification","display_name":"Runtime verification","score":0.499099999666214},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.4754999876022339},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.44620001316070557},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.42559999227523804},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.421099990606308}],"concepts":[{"id":"https://openalex.org/C22927095","wikidata":"https://www.wikidata.org/wiki/Q1784206","display_name":"Stateful firewall","level":3,"score":0.9217000007629395},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8241999745368958},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.677299976348877},{"id":"https://openalex.org/C80291951","wikidata":"https://www.wikidata.org/wiki/Q1200691","display_name":"Design by contract","level":5,"score":0.5968000292778015},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.5242000222206116},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.5063999891281128},{"id":"https://openalex.org/C202973057","wikidata":"https://www.wikidata.org/wiki/Q7380130","display_name":"Runtime verification","level":3,"score":0.499099999666214},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.4754999876022339},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.44620001316070557},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.42559999227523804},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.421099990606308},{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.4153999984264374},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.3750999867916107},{"id":"https://openalex.org/C112505250","wikidata":"https://www.wikidata.org/wiki/Q787116","display_name":"Automaton","level":2,"score":0.328900009393692},{"id":"https://openalex.org/C195818886","wikidata":"https://www.wikidata.org/wiki/Q5421724","display_name":"Expressive power","level":2,"score":0.32249999046325684},{"id":"https://openalex.org/C111498074","wikidata":"https://www.wikidata.org/wiki/Q173326","display_name":"Formal verification","level":2,"score":0.32089999318122864},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.30970001220703125},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.3066999912261963},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.302700012922287},{"id":"https://openalex.org/C186362262","wikidata":"https://www.wikidata.org/wiki/Q732089","display_name":"Eiffel","level":3,"score":0.299699991941452},{"id":"https://openalex.org/C77618280","wikidata":"https://www.wikidata.org/wiki/Q1155772","display_name":"Scheme (mathematics)","level":2,"score":0.2890999913215637},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.2883000075817108},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.2842999994754791},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.2815000116825104},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.2515000104904175}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3158139","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158139","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3158139?download=true","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:1711.03620","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1711.03620","pdf_url":"https://arxiv.org/pdf/1711.03620","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},{"id":"pmh:oai:iu.tind.io:1301","is_oa":false,"landing_page_url":"http://iu.tind.io/record/1301","pdf_url":null,"source":{"id":"https://openalex.org/S4306402656","display_name":"IUScholarWorks Open (Indiana University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I592451","host_organization_name":"Indiana University","host_organization_lineage":["https://openalex.org/I592451"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://iu.tind.io/record/1301","raw_type":"Text"}],"best_oa_location":{"id":"doi:10.1145/3158139","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158139","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3158139?download=true","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","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":[],"awards":[{"id":"https://openalex.org/G6268822357","display_name":null,"funder_award_id":"1618756","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"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2767680799.pdf","grobid_xml":"https://content.openalex.org/works/W2767680799.grobid-xml"},"referenced_works_count":49,"referenced_works":["https://openalex.org/W173753855","https://openalex.org/W1480909796","https://openalex.org/W1495368328","https://openalex.org/W1558427762","https://openalex.org/W1595420666","https://openalex.org/W1657354101","https://openalex.org/W1854521429","https://openalex.org/W1928992408","https://openalex.org/W1994090338","https://openalex.org/W1998838326","https://openalex.org/W2013885073","https://openalex.org/W2027189949","https://openalex.org/W2043100293","https://openalex.org/W2055886480","https://openalex.org/W2061127958","https://openalex.org/W2063019130","https://openalex.org/W2063307580","https://openalex.org/W2081841061","https://openalex.org/W2096368963","https://openalex.org/W2099107163","https://openalex.org/W2101085206","https://openalex.org/W2101512909","https://openalex.org/W2104993088","https://openalex.org/W2120172501","https://openalex.org/W2122698067","https://openalex.org/W2125995229","https://openalex.org/W2128303158","https://openalex.org/W2132897303","https://openalex.org/W2134918221","https://openalex.org/W2137628566","https://openalex.org/W2144160229","https://openalex.org/W2145619371","https://openalex.org/W2149469095","https://openalex.org/W2150138014","https://openalex.org/W2153036969","https://openalex.org/W2164859807","https://openalex.org/W2169661165","https://openalex.org/W2209684412","https://openalex.org/W2295923951","https://openalex.org/W2296669295","https://openalex.org/W2517799069","https://openalex.org/W2567080712","https://openalex.org/W3019389875","https://openalex.org/W4229527230","https://openalex.org/W4234542549","https://openalex.org/W4247948196","https://openalex.org/W4252251463","https://openalex.org/W4254338319","https://openalex.org/W4256174789"],"related_works":[],"abstract_inverted_index":{"Software":[0],"contracts":[1,26,204,224],"allow":[2],"programmers":[3],"to":[4,39,77,82,136,176,179,199,223,255,269],"state":[5],"rich":[6],"program":[7],"properties":[8,46],"using":[9,124],"the":[10,68,79,102,105,161,173,187,200,232,251],"full":[11,106],"expressive":[12,228],"power":[13],"of":[14,44,48,59,70,104,127,139,145,163,263,274],"an":[15,180],"object":[16],"language.":[17],"However,":[18],"since":[19],"they":[20,234],"are":[21,134,226],"enforced":[22],"at":[23,99],"runtime,":[24],"monitoring":[25],"imposes":[27],"significant":[28,152],"overhead":[29],"and":[30,53,91,130,194,229,241,266],"delays":[31],"error":[32],"discovery.":[33],"So":[34],"contract":[35,65,156],"veri":[36],"cation":[37],"aims":[38],"guarantee":[40],"all":[41,96],"or":[42,117],"most":[43],"these":[45,97,164],"ahead":[47],"time,":[49],"enabling":[50],"valuable":[51],"optimizations":[52],"yielding":[54],"a":[55,125,166,197,217,261,271],"more":[56,71],"general":[57],"assurance":[58],"correctness.":[60],"Existing":[61],"methods":[62],"for":[63,111,154],"static":[64,155],"verification":[66,157],"satisfy":[67],"needs":[69],"restricted":[72],"target":[73],"languages,":[74],"but":[75,143],"fail":[76],"address":[78,256],"challenges":[80,153],"unique":[81],"those":[83],"conjoining":[84],"untyped,":[85],"dynamic":[86],"programming,":[87],"higher-order":[88,149,247],"functions,":[89],"modularity,":[90],"statefulness.":[92],"Our":[93],"approach":[94,219],"tackles":[95],"features":[98],"once,":[100],"in":[101,158,210],"context":[103,182],"Racket":[107],"system\u2014a":[108],"mature":[109],"environment":[110],"stateful,":[112],"higher-order,":[113],"multi-paradigm":[114],"programming":[115],"with":[116,231],"with-":[118],"out":[119],"types.":[120],"Evaluating":[121],"our":[122,243],"method":[123],"set":[126],"both":[128],"pure":[129],"stateful":[131,193,215],"benchmarks,":[132],"we":[133,239,253],"able":[135],"verify":[137],"99.94%":[138],"checks":[140],"statically":[141],"(all":[142],"28":[144],"49,":[146],"861).":[147],"Stateful,":[148],"functions":[150],"pose":[151],"particular.":[159],"In":[160,236],"presence":[162],"features,":[165],"modular":[167],"analysis":[168],"must":[169,220],"permit":[170],"code":[171,184,233],"from":[172,185],"current":[174,188],"module":[175],"escape":[177],"permanently":[178],"opaque":[181],"(unspecified":[183],"outside":[186],"module)":[189],"that":[190],"may":[191,213],"be":[192,221],"therefore":[195],"store":[196],"reference":[198],"escaped":[201],"closure.":[202],"Also,":[203],"themselves,":[205],"being":[206],"predicates":[207],"wri":[208],"en":[209],"unrestricted":[211],"Racket,":[212],"exhibit":[214],"behavior;":[216],"sound":[218],"robust":[222],"which":[225],"arbitrarily":[227],"interwoven":[230],"monitor.":[235],"this":[237],"paper,":[238],"present":[240],"evaluate":[242],"solution":[244],"based":[245],"on":[246],"symbolic":[248],"execution,":[249],"explain":[250],"techniques":[252],"used":[254],"such":[257],"thorny":[258],"issues,":[259],"formalize":[260],"notion":[262],"behavioral":[264],"approximation,":[265],"use":[267],"it":[268],"provide":[270],"mechanized":[272],"proof":[273],"soundness.":[275]},"counts_by_year":[{"year":2025,"cited_by_count":4},{"year":2024,"cited_by_count":5},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":1},{"year":2018,"cited_by_count":1}],"updated_date":"2026-04-21T08:09:41.155169","created_date":"2017-11-17T00:00:00"}
