{"id":"https://openalex.org/W3047511223","doi":"https://doi.org/10.1145/3409004","title":"Strong functional pearl: Harper\u2019s regular-expression matcher in Cedille","display_name":"Strong functional pearl: Harper\u2019s regular-expression matcher in Cedille","publication_year":2020,"publication_date":"2020-08-02","ids":{"openalex":"https://openalex.org/W3047511223","doi":"https://doi.org/10.1145/3409004","mag":"3047511223"},"language":"en","primary_location":{"id":"doi:10.1145/3409004","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3409004","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3409004","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://dl.acm.org/doi/pdf/10.1145/3409004","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5072489480","display_name":"Aaron Stump","orcid":"https://orcid.org/0000-0002-9720-0003"},"institutions":[{"id":"https://openalex.org/I126307644","display_name":"University of Iowa","ror":"https://ror.org/036jqmy94","country_code":"US","type":"education","lineage":["https://openalex.org/I126307644"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Aaron Stump","raw_affiliation_strings":["University of Iowa, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Iowa, USA","institution_ids":["https://openalex.org/I126307644"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5020535463","display_name":"Christa Jenkins","orcid":"https://orcid.org/0000-0002-5434-5018"},"institutions":[{"id":"https://openalex.org/I126307644","display_name":"University of Iowa","ror":"https://ror.org/036jqmy94","country_code":"US","type":"education","lineage":["https://openalex.org/I126307644"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Christopher Jenkins","raw_affiliation_strings":["University of Iowa, USA"],"raw_orcid":"https://orcid.org/0000-0002-5434-5018","affiliations":[{"raw_affiliation_string":"University of Iowa, USA","institution_ids":["https://openalex.org/I126307644"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5065010116","display_name":"Stephan Spahn","orcid":"https://orcid.org/0000-0003-2807-5955"},"institutions":[{"id":"https://openalex.org/I126307644","display_name":"University of Iowa","ror":"https://ror.org/036jqmy94","country_code":"US","type":"education","lineage":["https://openalex.org/I126307644"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Stephan Spahn","raw_affiliation_strings":["University of Iowa, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Iowa, USA","institution_ids":["https://openalex.org/I126307644"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5031279063","display_name":"Colin McDonald","orcid":"https://orcid.org/0009-0000-8581-0237"},"institutions":[{"id":"https://openalex.org/I107639228","display_name":"University of Notre Dame","ror":"https://ror.org/00mkhxb43","country_code":"US","type":"education","lineage":["https://openalex.org/I107639228"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Colin McDonald","raw_affiliation_strings":["University of Notre Dame, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Notre Dame, USA","institution_ids":["https://openalex.org/I107639228"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5072489480"],"corresponding_institution_ids":["https://openalex.org/I126307644"],"apc_list":null,"apc_paid":null,"fwci":0.272,"has_fulltext":true,"cited_by_count":2,"citation_normalized_percentile":{"value":0.64246025,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":"4","issue":"ICFP","first_page":"1","last_page":"25"},"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.9997000098228455,"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.9997000098228455,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9980999827384949,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.991599977016449,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.760402262210846},{"id":"https://openalex.org/keywords/interface","display_name":"Interface (matter)","score":0.7435635328292847},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.727303147315979},{"id":"https://openalex.org/keywords/mathematical-proof","display_name":"Mathematical proof","score":0.7267868518829346},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6252081394195557},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.613781750202179},{"id":"https://openalex.org/keywords/expression","display_name":"Expression (computer science)","score":0.5867584943771362},{"id":"https://openalex.org/keywords/continuation","display_name":"Continuation","score":0.5828840732574463},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.44464367628097534},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.2335224747657776},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.11109426617622375}],"concepts":[{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.760402262210846},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.7435635328292847},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.727303147315979},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.7267868518829346},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6252081394195557},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.613781750202179},{"id":"https://openalex.org/C90559484","wikidata":"https://www.wikidata.org/wiki/Q778379","display_name":"Expression (computer science)","level":2,"score":0.5867584943771362},{"id":"https://openalex.org/C88626702","wikidata":"https://www.wikidata.org/wiki/Q1128903","display_name":"Continuation","level":2,"score":0.5828840732574463},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.44464367628097534},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.2335224747657776},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.11109426617622375},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C129307140","wikidata":"https://www.wikidata.org/wiki/Q6795880","display_name":"Maximum bubble pressure method","level":3,"score":0.0},{"id":"https://openalex.org/C157915830","wikidata":"https://www.wikidata.org/wiki/Q2928001","display_name":"Bubble","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3409004","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3409004","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3409004","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/3409004","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3409004","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3409004","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":[{"id":"https://openalex.org/G1099325642","display_name":null,"funder_award_id":"FA9550-16-1-0082","funder_id":"https://openalex.org/F4320306078","funder_display_name":"U.S. Department of Defense"},{"id":"https://openalex.org/G4430032202","display_name":null,"funder_award_id":"1524519","funder_id":"https://openalex.org/F4320321001","funder_display_name":"National Natural Science Foundation of China"}],"funders":[{"id":"https://openalex.org/F4320306078","display_name":"U.S. Department of Defense","ror":"https://ror.org/0447fe631"},{"id":"https://openalex.org/F4320321001","display_name":"National Natural Science Foundation of China","ror":"https://ror.org/01h0zpd94"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3047511223.pdf","grobid_xml":"https://content.openalex.org/works/W3047511223.grobid-xml"},"referenced_works_count":36,"referenced_works":["https://openalex.org/W168676061","https://openalex.org/W1501048703","https://openalex.org/W1504424419","https://openalex.org/W1524103352","https://openalex.org/W1535521146","https://openalex.org/W1554068457","https://openalex.org/W1608714802","https://openalex.org/W1979170753","https://openalex.org/W2003295197","https://openalex.org/W2023353691","https://openalex.org/W2049814260","https://openalex.org/W2082393912","https://openalex.org/W2092268590","https://openalex.org/W2101565274","https://openalex.org/W2105287078","https://openalex.org/W2124318699","https://openalex.org/W2125743465","https://openalex.org/W2131315680","https://openalex.org/W2133393261","https://openalex.org/W2148387264","https://openalex.org/W2163552400","https://openalex.org/W2168162624","https://openalex.org/W2406605894","https://openalex.org/W2503434581","https://openalex.org/W2533836568","https://openalex.org/W2562293731","https://openalex.org/W2613133382","https://openalex.org/W2751791540","https://openalex.org/W2793739232","https://openalex.org/W2963764498","https://openalex.org/W2966631854","https://openalex.org/W4238823939","https://openalex.org/W4242238973","https://openalex.org/W4244792373","https://openalex.org/W4366379428","https://openalex.org/W6630237704"],"related_works":["https://openalex.org/W2808944898","https://openalex.org/W2352275403","https://openalex.org/W2159885618","https://openalex.org/W1994937216","https://openalex.org/W3196207352","https://openalex.org/W2951724202","https://openalex.org/W3084261076","https://openalex.org/W1996614773","https://openalex.org/W4387820098","https://openalex.org/W2125274893"],"abstract_inverted_index":{"This":[0,76],"paper":[1],"describes":[2],"an":[3],"implementation":[4],"of":[5,22],"Harper's":[6],"continuation-based":[7],"regular-expression":[8],"matcher":[9],"as":[10],"a":[11,38,42,78],"strong":[12],"functional":[13],"program":[14,24],"in":[15],"Cedille;":[16],"i.e.,":[17],"Cedille":[18],"statically":[19],"confirms":[20],"termination":[21,35],"the":[23,50,71,74],"on":[25],"all":[26,54,65],"inputs.":[27],"The":[28],"approach":[29],"uses":[30],"neither":[31],"dependent":[32],"types":[33],"nor":[34],"proofs.":[36],"Instead,":[37],"particular":[39],"interface":[40,59],"dubbed":[41],"recursion":[43],"universe":[44],"is":[45,64,67],"provided":[46],"by":[47,81],"Cedille,":[48],"and":[49,84],"language":[51],"ensures":[52],"that":[53,66],"programs":[55],"written":[56],"against":[57,73],"this":[58],"terminate.":[60],"Standard":[61],"polymorphic":[62],"typing":[63],"needed":[68],"to":[69],"check":[70],"code":[72],"interface.":[75],"answers":[77],"challenge":[79],"posed":[80],"Bove,":[82],"Krauss,":[83],"Sozeau.":[85]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2021,"cited_by_count":1}],"updated_date":"2026-05-21T09:19:25.381259","created_date":"2025-10-10T00:00:00"}
