{"id":"https://openalex.org/W4390604635","doi":"https://doi.org/10.1145/3632904","title":"API-Driven Program Synthesis for Testing Static Typing Implementations","display_name":"API-Driven Program Synthesis for Testing Static Typing Implementations","publication_year":2024,"publication_date":"2024-01-02","ids":{"openalex":"https://openalex.org/W4390604635","doi":"https://doi.org/10.1145/3632904"},"language":"en","primary_location":{"id":"doi:10.1145/3632904","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632904","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632904","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","datacite"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3632904","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5090354733","display_name":"Thodoris Sotiropoulos","orcid":"https://orcid.org/0000-0002-9906-3073"},"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":false,"raw_author_name":"Thodoris Sotiropoulos","raw_affiliation_strings":["ETH Zurich, Zurich, Switzerland"],"raw_orcid":"https://orcid.org/0000-0002-9906-3073","affiliations":[{"raw_affiliation_string":"ETH Zurich, Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5028030636","display_name":"Stefanos Chaliasos","orcid":"https://orcid.org/0000-0001-5414-4120"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Stefanos Chaliasos","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"raw_orcid":"https://orcid.org/0000-0001-5414-4120","affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5077610917","display_name":"Zhendong Su","orcid":"https://orcid.org/0000-0002-2970-1391"},"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":false,"raw_author_name":"Zhendong Su","raw_affiliation_strings":["ETH Zurich, Zurich, Switzerland"],"raw_orcid":"https://orcid.org/0000-0002-2970-1391","affiliations":[{"raw_affiliation_string":"ETH Zurich, Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":5.1739,"has_fulltext":true,"cited_by_count":12,"citation_normalized_percentile":{"value":0.9598925,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":"8","issue":"POPL","first_page":"1850","last_page":"1881"},"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/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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9984999895095825,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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.8472349047660828},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8067216277122498},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.6541943550109863},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6161536574363708},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.5619417428970337},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.5525604486465454},{"id":"https://openalex.org/keywords/soundness","display_name":"Soundness","score":0.5374593734741211},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.4594252109527588},{"id":"https://openalex.org/keywords/exception-handling","display_name":"Exception handling","score":0.45719611644744873},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.42202210426330566},{"id":"https://openalex.org/keywords/test-suite","display_name":"Test suite","score":0.41791537404060364},{"id":"https://openalex.org/keywords/test-case","display_name":"Test case","score":0.3318384885787964},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.28021612763404846},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.16488581895828247}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8472349047660828},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8067216277122498},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.6541943550109863},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6161536574363708},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.5619417428970337},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.5525604486465454},{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.5374593734741211},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.4594252109527588},{"id":"https://openalex.org/C145428669","wikidata":"https://www.wikidata.org/wiki/Q471748","display_name":"Exception handling","level":2,"score":0.45719611644744873},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.42202210426330566},{"id":"https://openalex.org/C151552104","wikidata":"https://www.wikidata.org/wiki/Q7705809","display_name":"Test suite","level":4,"score":0.41791537404060364},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.3318384885787964},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.28021612763404846},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.16488581895828247},{"id":"https://openalex.org/C152877465","wikidata":"https://www.wikidata.org/wiki/Q208042","display_name":"Regression analysis","level":2,"score":0.0},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3632904","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632904","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632904","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"},{"id":"pmh:oai:www.research-collection.ethz.ch:20.500.11850/654130","is_oa":true,"landing_page_url":"http://hdl.handle.net/20.500.11850/654130","pdf_url":null,"source":{"id":"https://openalex.org/S4306402302","display_name":"Repository for Publications and Research Data (ETH Zurich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I35440088","host_organization_name":"ETH Zurich","host_organization_lineage":["https://openalex.org/I35440088"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Proceedings of the ACM on Programming Languages, 8 (POPL)","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"doi:10.3929/ethz-b-000654130","is_oa":true,"landing_page_url":"https://doi.org/10.3929/ethz-b-000654130","pdf_url":null,"source":{"id":"https://openalex.org/S7407051236","display_name":"ETH Z\u00fcrich Research Collection","issn_l":null,"issn":[],"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article-journal"}],"best_oa_location":{"id":"doi:10.1145/3632904","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632904","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632904","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":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4390604635.pdf","grobid_xml":"https://content.openalex.org/works/W4390604635.grobid-xml"},"referenced_works_count":37,"referenced_works":["https://openalex.org/W1514516864","https://openalex.org/W1557561422","https://openalex.org/W1966021031","https://openalex.org/W2011282943","https://openalex.org/W2030405312","https://openalex.org/W2036676170","https://openalex.org/W2095093991","https://openalex.org/W2095445208","https://openalex.org/W2097335450","https://openalex.org/W2155877593","https://openalex.org/W2157976942","https://openalex.org/W2170737051","https://openalex.org/W2249862487","https://openalex.org/W2530895108","https://openalex.org/W2532737545","https://openalex.org/W2533631495","https://openalex.org/W2561055248","https://openalex.org/W2759550170","https://openalex.org/W2765112575","https://openalex.org/W2995341674","https://openalex.org/W3107362213","https://openalex.org/W3124420928","https://openalex.org/W3173035584","https://openalex.org/W3173198614","https://openalex.org/W3173506450","https://openalex.org/W3205605633","https://openalex.org/W4226087539","https://openalex.org/W4232188856","https://openalex.org/W4238083723","https://openalex.org/W4244046502","https://openalex.org/W4281613925","https://openalex.org/W4281922598","https://openalex.org/W4284961179","https://openalex.org/W4293812875","https://openalex.org/W4379512400","https://openalex.org/W4388555578","https://openalex.org/W6967623891"],"related_works":["https://openalex.org/W1825832369","https://openalex.org/W1598160211","https://openalex.org/W2018145554","https://openalex.org/W1524028411","https://openalex.org/W2138059712","https://openalex.org/W2127248783","https://openalex.org/W2067499928","https://openalex.org/W4256285596","https://openalex.org/W1793348505","https://openalex.org/W3047487993"],"abstract_inverted_index":{"We":[0,162],"introduce":[1],"a":[2,52,93],"novel":[3],"approach":[4,105,150],"for":[5,178],"testing":[6,170],"static":[7,136,172],"typing":[8,57,137,173,191],"implementations":[9,174],"based":[10],"on":[11,169,210],"the":[12,69,73,81,85,107,120,124,171,176],"concept":[13],"of":[14,55,72,84,87,96,103,122,135,142,175,199],"API-driven":[15,149],"program":[16],"synthesis":[17],".":[18],"The":[19,100],"idea":[20],"is":[21,46,78,106],"to":[22,80,109],"synthesize":[23],"type-intensive":[24],"but":[25],"small":[26,62,111],"and":[27,32,153,185,195,214,232],"well-typed":[28],"programs":[29,113,226],"by":[30,49,61,203],"leveraging":[31],"combining":[33],"application":[34],"programming":[35],"interfaces":[36],"(APIs)":[37],"derived":[38],"from":[39,68,129],"existing":[40],"software":[41],"libraries.":[42],"Our":[43,217],"primary":[44],"insight":[45],"backed":[47],"up":[48],"real-world":[50],"evidence:":[51],"significant":[53],"number":[54],"compiler":[56],"bugs":[58,192],"are":[59,201],"caused":[60],"test":[63,160,204,225],"cases":[64,205],"that":[65,208,222],"employ":[66],"APIs":[67,207],"standard":[70],"library":[71],"language":[74],"under":[75],"test.":[76],"This":[77],"attributed":[79],"inherent":[82],"complexity":[83],"majority":[86],"these":[88],"APIs,":[89],"which":[90,200],"often":[91],"exercise":[92],"wide":[94],"range":[95],"sophisticated":[97],"type-related":[98],"features.":[99],"main":[101],"contribution":[102],"our":[104,148,164],"ability":[108],"produce":[110],"client":[112],"with":[114,151,157,219,227],"increased":[115],"feature":[116],"coverage,":[117],"without":[118],"bearing":[119],"burden":[121],"generating":[123],"corresponding":[125,159],"well-formed":[126],"API":[127],"definitions":[128],"scratch.":[130],"To":[131],"validate":[132],"diverse":[133],"aspects":[134],"procedures":[138],"(i.e.,":[139],"soundness,":[140],"precision":[141],"type":[143],"inference),":[144],"we":[145],"also":[146],"enrich":[147],"fault-injection":[152],"semantics-preserving":[154],"modes,":[155],"along":[156],"their":[158],"oracles.":[161],"evaluate":[163],"implemented":[165],"tool,":[166],"thalia":[167,187,223],",":[168],"compilers":[177],"three":[179],"popular":[180],"languages,":[181],"namely,":[182],"Scala,":[183],"Kotlin,":[184],"Groovy.":[186],"has":[188],"uncovered":[189],"84":[190],"(77":[193],"confirmed":[194],"22":[196],"fixed),":[197],"most":[198],"triggered":[202],"featuring":[206],"rely":[209],"parametric":[211],"polymorphism,":[212],"overloading,":[213],"higher-order":[215],"functions.":[216],"comparison":[218],"state-of-the-art":[220],"shows":[221],"yields":[224],"distinct":[228],"characteristics,":[229],"offering":[230],"additional":[231],"complementary":[233],"benefits.":[234]},"counts_by_year":[{"year":2026,"cited_by_count":4},{"year":2025,"cited_by_count":6},{"year":2024,"cited_by_count":2}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
