{"id":"https://openalex.org/W2886155613","doi":"https://doi.org/10.1145/3236788","title":"Prototyping a functional language using higher-order logic programming: a functional pearl on learning the ways of \u03bbProlog/Makam","display_name":"Prototyping a functional language using higher-order logic programming: a functional pearl on learning the ways of \u03bbProlog/Makam","publication_year":2018,"publication_date":"2018-07-30","ids":{"openalex":"https://openalex.org/W2886155613","doi":"https://doi.org/10.1145/3236788","mag":"2886155613"},"language":"en","primary_location":{"id":"doi:10.1145/3236788","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236788","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236788","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/3236788","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5045436150","display_name":"Antonis Stampoulis","orcid":null},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Antonis Stampoulis","raw_affiliation_strings":["Originate, USA"],"affiliations":[{"raw_affiliation_string":"Originate, USA","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078100439","display_name":"Adam Chlipala","orcid":"https://orcid.org/0000-0001-7085-9417"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Adam Chlipala","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5045436150"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.169,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.59979065,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":"2","issue":"ICFP","first_page":"1","last_page":"30"},"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.9998999834060669,"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.9998999834060669,"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/T10142","display_name":"Formal Methods in Verification","score":0.9983000159263611,"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"}},{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9955999851226807,"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/programming-language","display_name":"Programming language","score":0.8340964913368225},{"id":"https://openalex.org/keywords/prolog","display_name":"Prolog","score":0.8039848804473877},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7528938055038452},{"id":"https://openalex.org/keywords/logic-programming","display_name":"Logic programming","score":0.6032630205154419},{"id":"https://openalex.org/keywords/functional-logic-programming","display_name":"Functional logic programming","score":0.5216977000236511},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.47242796421051025},{"id":"https://openalex.org/keywords/fifth-generation-programming-language","display_name":"Fifth-generation programming language","score":0.46162015199661255},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.4592653512954712},{"id":"https://openalex.org/keywords/declarative-programming","display_name":"Declarative programming","score":0.43248844146728516},{"id":"https://openalex.org/keywords/horn-clause","display_name":"Horn clause","score":0.4200177788734436},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4115951359272003},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.3678646683692932}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8340964913368225},{"id":"https://openalex.org/C81721847","wikidata":"https://www.wikidata.org/wiki/Q163468","display_name":"Prolog","level":2,"score":0.8039848804473877},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7528938055038452},{"id":"https://openalex.org/C128838566","wikidata":"https://www.wikidata.org/wiki/Q275603","display_name":"Logic programming","level":2,"score":0.6032630205154419},{"id":"https://openalex.org/C96315309","wikidata":"https://www.wikidata.org/wiki/Q5508829","display_name":"Functional logic programming","level":4,"score":0.5216977000236511},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.47242796421051025},{"id":"https://openalex.org/C199305712","wikidata":"https://www.wikidata.org/wiki/Q3205914","display_name":"Fifth-generation programming language","level":3,"score":0.46162015199661255},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4592653512954712},{"id":"https://openalex.org/C146206909","wikidata":"https://www.wikidata.org/wiki/Q531152","display_name":"Declarative programming","level":4,"score":0.43248844146728516},{"id":"https://openalex.org/C189790780","wikidata":"https://www.wikidata.org/wiki/Q933932","display_name":"Horn clause","level":3,"score":0.4200177788734436},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4115951359272003},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.3678646683692932}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3236788","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236788","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236788","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:dspace.mit.edu:1721.1/135107","is_oa":true,"landing_page_url":"https://hdl.handle.net/1721.1/135107","pdf_url":null,"source":{"id":"https://openalex.org/S4306400425","display_name":"DSpace@MIT (Massachusetts Institute of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I63966007","host_organization_name":"Massachusetts Institute of Technology","host_organization_lineage":["https://openalex.org/I63966007"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc","license_id":"https://openalex.org/licenses/cc-by-nc","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM","raw_type":"http://purl.org/eprint/type/ConferencePaper"},{"id":"pmh:oai:dspace.mit.edu:1721.1/135107.2","is_oa":true,"landing_page_url":"https://hdl.handle.net/1721.1/135107.2","pdf_url":null,"source":{"id":"https://openalex.org/S4306400425","display_name":"DSpace@MIT (Massachusetts Institute of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I63966007","host_organization_name":"Massachusetts Institute of Technology","host_organization_lineage":["https://openalex.org/I63966007"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc","license_id":"https://openalex.org/licenses/cc-by-nc","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM","raw_type":"Article"}],"best_oa_location":{"id":"doi:10.1145/3236788","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236788","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236788","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":[{"id":"https://metadata.un.org/sdg/4","score":0.8399999737739563,"display_name":"Quality Education"}],"awards":[{"id":"https://openalex.org/G1344836475","display_name":null,"funder_award_id":"CCF-1217501","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5863706675","display_name":"SHF: Small: Capitalizing on First-Class SQL Support in the Ur/Web Programming Language","funder_award_id":"1217501","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G848032724","display_name":null,"funder_award_id":"Science","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2886155613.pdf","grobid_xml":"https://content.openalex.org/works/W2886155613.grobid-xml"},"referenced_works_count":25,"referenced_works":["https://openalex.org/W46734479","https://openalex.org/W177329023","https://openalex.org/W1518650316","https://openalex.org/W1536129331","https://openalex.org/W1869300951","https://openalex.org/W1961757151","https://openalex.org/W1974190112","https://openalex.org/W1975501418","https://openalex.org/W1979039632","https://openalex.org/W1990204174","https://openalex.org/W2019376542","https://openalex.org/W2022744394","https://openalex.org/W2048417351","https://openalex.org/W2096314727","https://openalex.org/W2131012971","https://openalex.org/W2160230109","https://openalex.org/W2166822586","https://openalex.org/W2294656706","https://openalex.org/W2564970793","https://openalex.org/W2911601159","https://openalex.org/W4206717895","https://openalex.org/W4235903093","https://openalex.org/W4237428230","https://openalex.org/W4249075482","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W1598781941","https://openalex.org/W2553706208","https://openalex.org/W648195185","https://openalex.org/W574022443","https://openalex.org/W4250566046","https://openalex.org/W2902695556","https://openalex.org/W2319386772","https://openalex.org/W1849174213","https://openalex.org/W4245362360","https://openalex.org/W3000431583"],"abstract_inverted_index":{"We":[0,33,77],"demonstrate":[1],"how":[2],"the":[3,13,35,93,129],"framework":[4],"of":[5,24,38,48,75,121,125,131,145,150,160],"higher-order":[6,94],"logic":[7,95],"programming":[8,27,96],",":[9],"as":[10,134,158],"exemplified":[11],"in":[12,52,82,113,128,155],"\u03bbProlog":[14],"language":[15,44,74],"design,":[16],"is":[17],"a":[18,39,43,46,53,71,147],"prime":[19],"vehicle":[20],"for":[21,26,42],"rapid":[22],"prototyping":[23],"implementations":[25],"languages":[28,115],"with":[29,45,57,64,84],"sophisticated":[30],"type":[31,40,61],"systems.":[32],"present":[34],"literate":[36],"development":[37],"checker":[41],"number":[47],"complicated":[49],"features,":[50],"culminating":[51],"standard":[54],"ML-style":[55],"core":[56],"algebraic":[58],"datatypes":[59],"and":[60,116,136],"generalization,":[62],"extended":[63],"staging":[65],"constructs":[66],"that":[67],"are":[68],"generic":[69,118,137],"over":[70],"separately":[72],"defined":[73],"terms.":[76],"add":[78],"each":[79],"new":[80,148],"feature":[81],"sequence,":[83],"little":[85],"to":[86,89,98,103,106],"no":[87],"changes":[88],"existing":[90],"code.":[91],"Scaling":[92],"approach":[97],"this":[99],"setting":[100,130],"required":[101],"us":[102],"develop":[104],"approaches":[105],"challenges":[107],"like":[108],"complex":[109],"variable":[110],"binding":[111],"patterns":[112],"object":[114],"performing":[117],"structural":[119],"traversals":[120],"code,":[122],"making":[123],"use":[124,144],"novel":[126],"constructions":[127],"\u03bbProlog,":[132,151],"such":[133],"GADTs":[135],"programming.":[138],"For":[139],"our":[140,161],"development,":[141],"we":[142,153],"make":[143],"Makam,":[146],"implementation":[149],"which":[152],"introduce":[154],"tutorial":[156],"style":[157],"part":[159],"(quasi-)literate":[162],"development.":[163]},"counts_by_year":[{"year":2021,"cited_by_count":1}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
