{"id":"https://openalex.org/W4293812919","doi":"https://doi.org/10.1145/3547624","title":"Monadic compiler calculation (functional pearl)","display_name":"Monadic compiler calculation (functional pearl)","publication_year":2022,"publication_date":"2022-08-29","ids":{"openalex":"https://openalex.org/W4293812919","doi":"https://doi.org/10.1145/3547624"},"language":"en","primary_location":{"id":"doi:10.1145/3547624","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3547624","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3547624","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/3547624","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5015853763","display_name":"Patrick Bahr","orcid":"https://orcid.org/0000-0003-1600-8261"},"institutions":[{"id":"https://openalex.org/I83467386","display_name":"IT University of Copenhagen","ror":"https://ror.org/02309jg23","country_code":"DK","type":"education","lineage":["https://openalex.org/I83467386"]}],"countries":["DK"],"is_corresponding":true,"raw_author_name":"Patrick Bahr","raw_affiliation_strings":["IT University of Copenhagen, Denmark"],"affiliations":[{"raw_affiliation_string":"IT University of Copenhagen, Denmark","institution_ids":["https://openalex.org/I83467386"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5069634739","display_name":"Graham Hutton","orcid":"https://orcid.org/0000-0001-9584-5150"},"institutions":[{"id":"https://openalex.org/I142263535","display_name":"University of Nottingham","ror":"https://ror.org/01ee9ar58","country_code":"GB","type":"education","lineage":["https://openalex.org/I142263535"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Graham Hutton","raw_affiliation_strings":["University of Nottingham, UK"],"affiliations":[{"raw_affiliation_string":"University of Nottingham, UK","institution_ids":["https://openalex.org/I142263535"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5015853763"],"corresponding_institution_ids":["https://openalex.org/I83467386"],"apc_list":null,"apc_paid":null,"fwci":0.4164,"has_fulltext":true,"cited_by_count":3,"citation_normalized_percentile":{"value":0.68333321,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":95},"biblio":{"volume":"6","issue":"ICFP","first_page":"80","last_page":"108"},"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.9994000196456909,"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.9994000196456909,"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.9955000281333923,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9944000244140625,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.9123283624649048},{"id":"https://openalex.org/keywords/monad","display_name":"Monad (category theory)","score":0.8415412306785583},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8165322542190552},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.7763248085975647},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7644019722938538},{"id":"https://openalex.org/keywords/divergence","display_name":"Divergence (linguistics)","score":0.6332060098648071},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4493902921676636},{"id":"https://openalex.org/keywords/pearl","display_name":"Pearl","score":0.4444936513900757},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.43320974707603455},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.4109220504760742},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.32490837574005127},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3226062059402466},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.14053520560264587},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.13596460223197937},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.07106852531433105},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.05557328462600708}],"concepts":[{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.9123283624649048},{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.8415412306785583},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8165322542190552},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.7763248085975647},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7644019722938538},{"id":"https://openalex.org/C207390915","wikidata":"https://www.wikidata.org/wiki/Q1230525","display_name":"Divergence (linguistics)","level":2,"score":0.6332060098648071},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4493902921676636},{"id":"https://openalex.org/C2779251273","wikidata":"https://www.wikidata.org/wiki/Q43436","display_name":"Pearl","level":2,"score":0.4444936513900757},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.43320974707603455},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.4109220504760742},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.32490837574005127},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3226062059402466},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.14053520560264587},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.13596460223197937},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.07106852531433105},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.05557328462600708},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"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/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C27206212","wikidata":"https://www.wikidata.org/wiki/Q34178","display_name":"Theology","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3547624","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3547624","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3547624","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:pure.atira.dk:openaire/31885823-95cc-4b43-af63-52694ba86668","is_oa":true,"landing_page_url":"https://pure.itu.dk/portal/da/publications/31885823-95cc-4b43-af63-52694ba86668","pdf_url":"https://pure.itu.dk/ws/files/90391817/mococa_paper.pdf","source":{"id":"https://openalex.org/S4377196680","display_name":"IT University Of Copenhagen (IT University of Copenhagen)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I83467386","host_organization_name":"IT University of Copenhagen","host_organization_lineage":["https://openalex.org/I83467386"],"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":"Bahr, P & Hutton, G 2022, Monadic Compiler Calculation (Functional Pearl). in Proceedings of the ACM on Programming Languages. vol. 6, Association for Computing Machinery. https://doi.org/10.1145/3547624","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:nottingham-repository.worktribe.com:10638695","is_oa":true,"landing_page_url":"https://nottingham-repository.worktribe.com/output/10638695","pdf_url":null,"source":{"id":"https://openalex.org/S4306402483","display_name":"Repository@Nottingham (University of Nottingham)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I142263535","host_organization_name":"University of Nottingham","host_organization_lineage":["https://openalex.org/I142263535"],"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":null,"raw_type":"publishedVersion"}],"best_oa_location":{"id":"doi:10.1145/3547624","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3547624","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3547624","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/G2211032190","display_name":null,"funder_award_id":"EP/P00587X/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G2771246334","display_name":"Mind the Gap: Unified Reasoning About Program Correctness and Efficiency","funder_award_id":"EP/P00587X/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G8719353587","display_name":null,"funder_award_id":"EP/P0","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4293812919.pdf","grobid_xml":"https://content.openalex.org/works/W4293812919.grobid-xml"},"referenced_works_count":33,"referenced_works":["https://openalex.org/W59640247","https://openalex.org/W188282463","https://openalex.org/W1188080205","https://openalex.org/W1522809628","https://openalex.org/W1547562281","https://openalex.org/W1985220128","https://openalex.org/W1987031623","https://openalex.org/W2043416466","https://openalex.org/W2050469558","https://openalex.org/W2086201554","https://openalex.org/W2103859677","https://openalex.org/W2112147599","https://openalex.org/W2128992690","https://openalex.org/W2129695855","https://openalex.org/W2145108549","https://openalex.org/W2155466296","https://openalex.org/W2158848314","https://openalex.org/W2165594098","https://openalex.org/W2168254994","https://openalex.org/W2171496589","https://openalex.org/W2294599249","https://openalex.org/W2295752850","https://openalex.org/W2899103964","https://openalex.org/W2964672981","https://openalex.org/W2995075587","https://openalex.org/W2998895922","https://openalex.org/W3080747129","https://openalex.org/W3086548430","https://openalex.org/W3101797533","https://openalex.org/W3124307800","https://openalex.org/W3193979884","https://openalex.org/W4235410435","https://openalex.org/W6968945018"],"related_works":["https://openalex.org/W2754859507","https://openalex.org/W2965966430","https://openalex.org/W2090337950","https://openalex.org/W2046806568","https://openalex.org/W2319624920","https://openalex.org/W2112263414","https://openalex.org/W1911419940","https://openalex.org/W2373472360","https://openalex.org/W2995031344","https://openalex.org/W154014553"],"abstract_inverted_index":{"Bahr":[0],"and":[1,67],"Hutton":[2],"recently":[3],"developed":[4],"a":[5],"new":[6],"approach":[7,82],"to":[8,57,92,103,110],"calculating":[9],"correct":[10],"compilers":[11,62],"directly":[12],"from":[13],"specifications":[14],"of":[15,25,61,88,100,113],"their":[16],"correctness.":[17],"However,":[18],"the":[19,26,32,51,59,73,86,89,98,117],"methodology":[20,52],"only":[21],"considers":[22],"converging":[23],"behaviour":[24,69],"source":[27,41],"language,":[28],"which":[29],"means":[30],"that":[31,43,63],"compiler":[33],"could":[34],"potentially":[35],"produce":[36],"arbitrary,":[37],"erroneous":[38],"code":[39],"for":[40,75,78],"programs":[42],"diverge.":[44],"In":[45],"this":[46],"article,":[47],"we":[48],"show":[49],"how":[50],"can":[53],"naturally":[54],"be":[55],"extended":[56],"support":[58,104],"calculation":[60],"address":[64],"both":[65],"convergent":[66],"divergent":[68],"simultaneously":[70],",":[71],"without":[72],"need":[74],"separate":[76],"reasoning":[77],"each":[79],"aspect.":[80],"Our":[81],"is":[83],"based":[84],"on":[85],"use":[87,99],"partiality":[90],"monad":[91],"make":[93],"divergence":[94],"explicit,":[95],"together":[96],"with":[97],"strong":[101],"bisimilarity":[102],"equational-style":[105],"calculations,":[106],"but":[107],"also":[108],"generalises":[109],"other":[111],"forms":[112],"effect":[114],"by":[115],"changing":[116],"underlying":[118],"monad.":[119]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":1}],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
