{"id":"https://openalex.org/W3080747129","doi":"https://doi.org/10.1017/s0956796820000209","title":"Calculating correct compilers II: Return of the register machines","display_name":"Calculating correct compilers II: Return of the register machines","publication_year":2020,"publication_date":"2020-01-01","ids":{"openalex":"https://openalex.org/W3080747129","doi":"https://doi.org/10.1017/s0956796820000209","mag":"3080747129"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796820000209","is_oa":false,"landing_page_url":"https://doi.org/10.1017/s0956796820000209","pdf_url":null,"source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://pure.itu.dk/portal/da/publications/b4eb29bf-4332-4676-a7c8-2899ab01b5b4","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 (e-mail:"],"affiliations":[{"raw_affiliation_string":"IT University of Copenhagen, Denmark (e-mail:","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 (e-mail:"],"affiliations":[{"raw_affiliation_string":"University of Nottingham, UK (e-mail:","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.5302,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":{"value":0.72780604,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":95},"biblio":{"volume":"30","issue":null,"first_page":null,"last_page":null},"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.9998000264167786,"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.9998000264167786,"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.9983999729156494,"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/T10142","display_name":"Formal Methods in Verification","score":0.9952999949455261,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.9155418872833252},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7240099310874939},{"id":"https://openalex.org/keywords/register","display_name":"Register (sociolinguistics)","score":0.7163248062133789},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6186506152153015},{"id":"https://openalex.org/keywords/register-allocation","display_name":"Register allocation","score":0.479581743478775},{"id":"https://openalex.org/keywords/arithmetic","display_name":"Arithmetic","score":0.45166635513305664},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.39571282267570496},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.07527437806129456},{"id":"https://openalex.org/keywords/philosophy","display_name":"Philosophy","score":0.06056392192840576},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.05195683240890503}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9155418872833252},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7240099310874939},{"id":"https://openalex.org/C2779235478","wikidata":"https://www.wikidata.org/wiki/Q286576","display_name":"Register (sociolinguistics)","level":2,"score":0.7163248062133789},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6186506152153015},{"id":"https://openalex.org/C128916667","wikidata":"https://www.wikidata.org/wiki/Q1343660","display_name":"Register allocation","level":3,"score":0.479581743478775},{"id":"https://openalex.org/C94375191","wikidata":"https://www.wikidata.org/wiki/Q11205","display_name":"Arithmetic","level":1,"score":0.45166635513305664},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.39571282267570496},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.07527437806129456},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.06056392192840576},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.05195683240890503}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1017/s0956796820000209","is_oa":false,"landing_page_url":"https://doi.org/10.1017/s0956796820000209","pdf_url":null,"source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},{"id":"pmh:oai:pure.atira.dk:openaire/b4eb29bf-4332-4676-a7c8-2899ab01b5b4","is_oa":true,"landing_page_url":"https://pure.itu.dk/portal/da/publications/b4eb29bf-4332-4676-a7c8-2899ab01b5b4","pdf_url":null,"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":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Bahr, P & Hutton, G 2020, 'Calculating Correct Compilers II: Return of the Register Machines', Journal of Functional Programming, vol. 30, e25. https://doi.org/10.1017/S0956796820000209","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:nottingham-repository.worktribe.com:4847230","is_oa":true,"landing_page_url":"https://nottingham-repository.worktribe.com/output/4847230","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-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"acceptedVersion"}],"best_oa_location":{"id":"pmh:oai:pure.atira.dk:openaire/b4eb29bf-4332-4676-a7c8-2899ab01b5b4","is_oa":true,"landing_page_url":"https://pure.itu.dk/portal/da/publications/b4eb29bf-4332-4676-a7c8-2899ab01b5b4","pdf_url":null,"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":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Bahr, P & Hutton, G 2020, 'Calculating Correct Compilers II: Return of the Register Machines', Journal of Functional Programming, vol. 30, e25. https://doi.org/10.1017/S0956796820000209","raw_type":"info:eu-repo/semantics/publishedVersion"},"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"}],"funders":[{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":24,"referenced_works":["https://openalex.org/W43926523","https://openalex.org/W168212000","https://openalex.org/W1556604985","https://openalex.org/W1565385009","https://openalex.org/W1593280365","https://openalex.org/W1608714802","https://openalex.org/W1985220128","https://openalex.org/W1987031623","https://openalex.org/W2006731094","https://openalex.org/W2021712311","https://openalex.org/W2023035194","https://openalex.org/W2043416466","https://openalex.org/W2050469558","https://openalex.org/W2091345373","https://openalex.org/W2102435409","https://openalex.org/W2112147599","https://openalex.org/W2113757735","https://openalex.org/W2118866757","https://openalex.org/W2158848314","https://openalex.org/W2463394296","https://openalex.org/W2572804059","https://openalex.org/W2621168830","https://openalex.org/W2754920840","https://openalex.org/W3011687447"],"related_works":["https://openalex.org/W3013232686","https://openalex.org/W2159458033","https://openalex.org/W2091058226","https://openalex.org/W2010347046","https://openalex.org/W1581500142","https://openalex.org/W1482641086","https://openalex.org/W1490610520","https://openalex.org/W2151326751","https://openalex.org/W2018511057","https://openalex.org/W2025840053"],"abstract_inverted_index":{"Abstract":[0],"In":[1,63],"\u2018Calculating":[2],"Correct":[3],"Compilers\u2019":[4],"(Bahr":[5],"&amp;":[6],"Hutton,":[7],"2015),":[8],"we":[9,66],"developed":[10],"a":[11,38],"new":[12],"approach":[13,24,70],"to":[14,34,75],"calculating":[15],"compilers":[16,36,58,77],"directly":[17],"from":[18],"specifications":[19],"of":[20,41],"their":[21,45],"correctness.":[22],"Our":[23],"only":[25],"required":[26],"elementary":[27],"reasoning":[28],"techniques":[29],"and":[30,44],"has":[31],"been":[32],"used":[33],"calculate":[35,76],"for":[37,78],"wide":[39],"range":[40],"language":[42],"features":[43],"combination.":[46],"However,":[47],"the":[48],"methodology":[49],"was":[50],"focused":[51],"on":[52],"stack-based":[53],"target":[54,60],"machines,":[55],"whereas":[56],"real":[57],"often":[59],"register-based":[61],"machines.":[62,80],"this":[64],"article,":[65],"show":[67],"how":[68],"our":[69],"can":[71],"naturally":[72],"be":[73],"adapted":[74],"register":[79]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
