{"id":"https://openalex.org/W4414988631","doi":"https://doi.org/10.1145/3763183","title":"Faster Explicit-Trace Monitoring-Oriented Programming for Runtime Verification of Software Tests","display_name":"Faster Explicit-Trace Monitoring-Oriented Programming for Runtime Verification of Software Tests","publication_year":2025,"publication_date":"2025-10-09","ids":{"openalex":"https://openalex.org/W4414988631","doi":"https://doi.org/10.1145/3763183"},"language":"en","primary_location":{"id":"doi:10.1145/3763183","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763183","pdf_url":null,"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":"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":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3763183","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5048024681","display_name":"Kevin Guan","orcid":null},"institutions":[{"id":"https://openalex.org/I205783295","display_name":"Cornell University","ror":"https://ror.org/05bnh6r87","country_code":"US","type":"education","lineage":["https://openalex.org/I205783295"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Kevin Guan","raw_affiliation_strings":["Cornell University, Ithaca, USA"],"raw_orcid":"https://orcid.org/0009-0004-4553-7474","affiliations":[{"raw_affiliation_string":"Cornell University, Ithaca, USA","institution_ids":["https://openalex.org/I205783295"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5020353093","display_name":"Marcelo d\u2019Amorim","orcid":"https://orcid.org/0000-0002-1323-8769"},"institutions":[{"id":"https://openalex.org/I137902535","display_name":"North Carolina State University","ror":"https://ror.org/04tj63d06","country_code":"US","type":"education","lineage":["https://openalex.org/I137902535"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Marcelo d'Amorim","raw_affiliation_strings":["North Carolina State University, Raleigh, USA"],"raw_orcid":"https://orcid.org/0000-0002-1323-8769","affiliations":[{"raw_affiliation_string":"North Carolina State University, Raleigh, USA","institution_ids":["https://openalex.org/I137902535"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5070516536","display_name":"Owolabi Legunsen","orcid":"https://orcid.org/0000-0001-5631-4816"},"institutions":[{"id":"https://openalex.org/I205783295","display_name":"Cornell University","ror":"https://ror.org/05bnh6r87","country_code":"US","type":"education","lineage":["https://openalex.org/I205783295"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Owolabi Legunsen","raw_affiliation_strings":["Cornell University, Ithaca, USA"],"raw_orcid":"https://orcid.org/0000-0001-5631-4816","affiliations":[{"raw_affiliation_string":"Cornell University, Ithaca, USA","institution_ids":["https://openalex.org/I205783295"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5048024681"],"corresponding_institution_ids":["https://openalex.org/I205783295"],"apc_list":null,"apc_paid":null,"fwci":3.7407,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.9332799,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":91,"max":98},"biblio":{"volume":"9","issue":"OOPSLA2","first_page":"3696","last_page":"3725"},"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.9998999834060669,"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.9998999834060669,"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/T12423","display_name":"Software Reliability and Analysis Research","score":0.9991999864578247,"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/T12127","display_name":"Software System Performance and Reliability","score":0.9987999796867371,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/debugging","display_name":"Debugging","score":0.7458999752998352},{"id":"https://openalex.org/keywords/runtime-verification","display_name":"Runtime verification","score":0.7049999833106995},{"id":"https://openalex.org/keywords/trace","display_name":"TRACE (psycholinguistics)","score":0.5702000260353088},{"id":"https://openalex.org/keywords/event","display_name":"Event (particle physics)","score":0.5667999982833862},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.49790000915527344},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.47119998931884766},{"id":"https://openalex.org/keywords/unit-testing","display_name":"Unit testing","score":0.44940000772476196},{"id":"https://openalex.org/keywords/synchronization","display_name":"Synchronization (alternating current)","score":0.4235000014305115},{"id":"https://openalex.org/keywords/software-verification","display_name":"Software verification","score":0.39559999108314514}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8787999749183655},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.7458999752998352},{"id":"https://openalex.org/C202973057","wikidata":"https://www.wikidata.org/wiki/Q7380130","display_name":"Runtime verification","level":3,"score":0.7049999833106995},{"id":"https://openalex.org/C75291252","wikidata":"https://www.wikidata.org/wiki/Q1315756","display_name":"TRACE (psycholinguistics)","level":2,"score":0.5702000260353088},{"id":"https://openalex.org/C2779662365","wikidata":"https://www.wikidata.org/wiki/Q5416694","display_name":"Event (particle physics)","level":2,"score":0.5667999982833862},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.560699999332428},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.49790000915527344},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.47119998931884766},{"id":"https://openalex.org/C148027188","wikidata":"https://www.wikidata.org/wiki/Q907375","display_name":"Unit testing","level":3,"score":0.44940000772476196},{"id":"https://openalex.org/C2778562939","wikidata":"https://www.wikidata.org/wiki/Q1298791","display_name":"Synchronization (alternating current)","level":3,"score":0.4235000014305115},{"id":"https://openalex.org/C33054407","wikidata":"https://www.wikidata.org/wiki/Q6504747","display_name":"Software verification","level":5,"score":0.39559999108314514},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.384799987077713},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.34860000014305115},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.34630000591278076},{"id":"https://openalex.org/C1009929","wikidata":"https://www.wikidata.org/wiki/Q179550","display_name":"Software bug","level":3,"score":0.3440999984741211},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3440999984741211},{"id":"https://openalex.org/C79403827","wikidata":"https://www.wikidata.org/wiki/Q3988","display_name":"Real-time computing","level":1,"score":0.3368000090122223},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.33550000190734863},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.29100000858306885},{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.2897999882698059},{"id":"https://openalex.org/C2778565505","wikidata":"https://www.wikidata.org/wiki/Q2207566","display_name":"Spec#","level":2,"score":0.28040000796318054},{"id":"https://openalex.org/C62460635","wikidata":"https://www.wikidata.org/wiki/Q5508853","display_name":"Functional verification","level":3,"score":0.27810001373291016},{"id":"https://openalex.org/C168167062","wikidata":"https://www.wikidata.org/wiki/Q1117970","display_name":"Component (thermodynamics)","level":2,"score":0.27379998564720154},{"id":"https://openalex.org/C165696696","wikidata":"https://www.wikidata.org/wiki/Q11287","display_name":"Exploit","level":2,"score":0.27070000767707825},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.2694999873638153},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.2635999917984009},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.2630000114440918},{"id":"https://openalex.org/C111498074","wikidata":"https://www.wikidata.org/wiki/Q173326","display_name":"Formal verification","level":2,"score":0.26109999418258667},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.25459998846054077}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3763183","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763183","pdf_url":null,"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":"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"}],"best_oa_location":{"id":"doi:10.1145/3763183","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763183","pdf_url":null,"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":"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":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":69,"referenced_works":["https://openalex.org/W64407196","https://openalex.org/W80957921","https://openalex.org/W1501560890","https://openalex.org/W1566440953","https://openalex.org/W1610570299","https://openalex.org/W1757929668","https://openalex.org/W1825341937","https://openalex.org/W1861203031","https://openalex.org/W1971059059","https://openalex.org/W1973428184","https://openalex.org/W1978546859","https://openalex.org/W1985896931","https://openalex.org/W1998989165","https://openalex.org/W2005062077","https://openalex.org/W2007984116","https://openalex.org/W2013761472","https://openalex.org/W2076449438","https://openalex.org/W2097808034","https://openalex.org/W2102674270","https://openalex.org/W2115839009","https://openalex.org/W2116562786","https://openalex.org/W2126606154","https://openalex.org/W2132852010","https://openalex.org/W2134429122","https://openalex.org/W2136780906","https://openalex.org/W2141988808","https://openalex.org/W2150308295","https://openalex.org/W2150593762","https://openalex.org/W2150602145","https://openalex.org/W2164119561","https://openalex.org/W2165418237","https://openalex.org/W2226278679","https://openalex.org/W2528363695","https://openalex.org/W2547954490","https://openalex.org/W2548334485","https://openalex.org/W2735457986","https://openalex.org/W2745639073","https://openalex.org/W2767816403","https://openalex.org/W2794497357","https://openalex.org/W2801746908","https://openalex.org/W2884871856","https://openalex.org/W2901360723","https://openalex.org/W2945453740","https://openalex.org/W2951170114","https://openalex.org/W2951461268","https://openalex.org/W2963023085","https://openalex.org/W2989932676","https://openalex.org/W3048026305","https://openalex.org/W3105211240","https://openalex.org/W3144602944","https://openalex.org/W3166106713","https://openalex.org/W4232095179","https://openalex.org/W4234921998","https://openalex.org/W4250728693","https://openalex.org/W4286303810","https://openalex.org/W4296900008","https://openalex.org/W4312134900","https://openalex.org/W4384154501","https://openalex.org/W4384573104","https://openalex.org/W4387225250","https://openalex.org/W4387225704","https://openalex.org/W4401905806","https://openalex.org/W4401907012","https://openalex.org/W4402442647","https://openalex.org/W4403536335","https://openalex.org/W4410538698","https://openalex.org/W4411552110","https://openalex.org/W4412704004","https://openalex.org/W4414266735"],"related_works":[],"abstract_inverted_index":{"Runtime":[0],"verification":[1],"(RV)":[2],"monitors":[3,150,313],"program":[4,46],"executions":[5],"for":[6,116,298],"conformance":[7],"with":[8,347],"formal":[9],"specifications":[10],"(specs).":[11],"This":[12],"paper":[13],"concerns":[14],"Monitoring-Oriented":[15],"Programming":[16],"(MOP),":[17],"the":[18,84,94,154,191,239,252],"only":[19,95,144,201,314],"RV":[20,117,170,340],"approach":[21],"shown":[22],"to":[23,25,51,56,82,176,204,228,325,345],"scale":[24],"thousands":[26],"of":[27,39,44,66,89,118,167,171,193,217,254,289,317],"open-source":[28,223],"GitHub":[29],"projects":[30],"when":[31],"simultaneously":[32],"monitoring":[33,159],"passing":[34],"unit":[35],"tests":[36,58,119,172,258],"against":[37,59],"dozens":[38],"specs.":[40],"Explicitly":[41],"storing":[42,90],"traces\u2014sequences":[43],"spec-related":[45],"events\u2014can":[47],"make":[48],"it":[49,331],"easier":[50],"debug":[52],"spec":[53,293],"violations":[54],"or":[55],"monitor":[57,135],"hyperproperties,":[60],"which":[61],"requires":[62],"reasoning":[63],"about":[64],"sets":[65],"traces.":[67,91,276],"But,":[68],"most":[69],"online":[70,97,113,131],"MOP":[71,98,114,132],"algorithms":[72,133],"are":[73,173,259,302],"implicit":[74],"trace,":[75],"i.e.":[76],"they":[77,139],"work":[78],"event":[79,81],"by":[80,123,162,272,343],"avoid":[83],"time":[85],"and":[86,104,149,184,189,214,231,245,292,312,330],"space":[87],"costs":[88],"Yet,":[92],"TraceMOP,":[93,237],"explicit-trace":[96,112],"algorithm,":[99],"is":[100,121,160,226,323],"often":[101,105],"too":[102],"slow":[103],"fails.":[106],"We":[107,247],"propose":[108],"LazyMOP,":[109],"a":[110,163,306],"faster":[111,230,327],"algorithm":[115],"that":[120,337],"enabled":[122],"three":[124],"simple":[125],"optimizations.":[126],"First,":[127],"whereas":[128],"all":[129,136,218,287,296],"existing":[130],"eagerly":[134],"events":[137,183],"as":[138,187],"occur,":[140],"LazyMOP":[141,181,200,225,265,268,284,309,321,329],"lazily":[142],"stores":[143],"unique":[145,278],"traces":[146,168,241,279,297],"at":[147],"runtime":[148],"them":[151],"just":[152],"before":[153],"test":[155,243],"run":[156],"ends.":[157],"Lazy":[158],"inspired":[161],"recent":[164,335],"finding:":[165],"99.87%":[166],"during":[169,341],"duplicates.":[174],"Second,":[175],"speed":[177,338],"up":[178,195,227,324,333,339,344],"trace":[179,206,316],"storage,":[180],"encodes":[182],"their":[185],"locations":[186,196],"integers,":[188],"amortizes":[190],"cost":[192],"looking":[194],"across":[197],"events.":[198],"Lastly,":[199],"synchronizes":[202],"accesses":[203],"its":[205],"store":[207],"after":[208,261],"detecting":[209],"multi-threading,":[210],"unlike":[211],"TraceMOP\u2019s":[212],"eager":[213],"wasteful":[215],"synchronization":[216],"accesses.":[219],"On":[220],"179":[221],"Java":[222],"projects,":[224],"4.9x":[229],"uses":[232],"4.8x":[233],"less":[234],"memory":[235],"than":[236,328],"finding":[238],"same":[240],"(modulo":[242],"non-determinism)":[244],"violations.":[246,351],"show":[248],"LazyMOP\u2019s":[249],"usefulness":[250],"in":[251,269,300,305,319,350],"context":[253,271],"software":[255],"evolution,":[256],"where":[257,295],"re-run":[260],"each":[262],"code":[263,282],"change.":[264],"e":[266,285,310,322],"optimizes":[267],"this":[270],"generating":[273],"fewer":[274],"duplicate":[275],"Using":[277],"from":[280],"one":[281,315],"version,":[283,308],"finds":[286],"pairs":[288],"method":[290],"\ud835\udc5a":[291,301],"\ud835\udc60,":[294],"\ud835\udc60":[299,318],"identical.":[303],"Then,":[304],"future":[307],"generates":[311],"\ud835\udc5a.":[320],"3.9x":[326],"speeds":[332],"two":[334],"techniques":[336],"evolution":[342],"4.6x":[346],"no":[348],"loss":[349]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
