{"id":"https://openalex.org/W2055947235","doi":"https://doi.org/10.1017/s0956796802004574","title":"Compiling embedded languages","display_name":"Compiling embedded languages","publication_year":2003,"publication_date":"2003-05-01","ids":{"openalex":"https://openalex.org/W2055947235","doi":"https://doi.org/10.1017/s0956796802004574","mag":"2055947235"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796802004574","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796802004574","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/4B0A7526CC16907F445CCF27277E9B9B/S0956796802004574a.pdf/div-class-title-compiling-embedded-languages-div.pdf","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":"bronze","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/4B0A7526CC16907F445CCF27277E9B9B/S0956796802004574a.pdf/div-class-title-compiling-embedded-languages-div.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5058654790","display_name":"Conal Elliott","orcid":"https://orcid.org/0000-0002-9480-9518"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"CONAL ELLIOTT","raw_affiliation_strings":["Microsoft Research, One Microsoft Way, Redmond, WA 98052, USA","Microsoft Research, One Microsoft Way, Redmond, WA, 98052 USA"],"affiliations":[{"raw_affiliation_string":"Microsoft Research, One Microsoft Way, Redmond, WA 98052, USA","institution_ids":["https://openalex.org/I1290206253"]},{"raw_affiliation_string":"Microsoft Research, One Microsoft Way, Redmond, WA, 98052 USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5108465094","display_name":"SIGBJRN FINNE","orcid":null},"institutions":[{"id":"https://openalex.org/I4210140281","display_name":"Galois (United States)","ror":"https://ror.org/03g8y8161","country_code":"US","type":"company","lineage":["https://openalex.org/I4210140281"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"SIGBJ\u00d8RN FINNE","raw_affiliation_strings":["Galois Connections, Inc., 3875 SW Hall Blvd., Beaverton, OR 97005, USA","Galois Connections, Inc., 3875 SW Hall Blvd., Beaverton, OR 97005, USA#TAB#"],"affiliations":[{"raw_affiliation_string":"Galois Connections, Inc., 3875 SW Hall Blvd., Beaverton, OR 97005, USA","institution_ids":["https://openalex.org/I4210140281"]},{"raw_affiliation_string":"Galois Connections, Inc., 3875 SW Hall Blvd., Beaverton, OR 97005, USA#TAB#","institution_ids":["https://openalex.org/I4210140281"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5071726140","display_name":"Oege de Moor","orcid":null},"institutions":[{"id":"https://openalex.org/I40120149","display_name":"University of Oxford","ror":"https://ror.org/052gg0110","country_code":"GB","type":"education","lineage":["https://openalex.org/I40120149"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"OEGE DE MOOR","raw_affiliation_strings":["Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD, UK","Oxford University Computing Laboratory   Wolfson Building, Parks Road   Oxford OX1 3QD, UK"],"affiliations":[{"raw_affiliation_string":"Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD, UK","institution_ids":["https://openalex.org/I40120149"]},{"raw_affiliation_string":"Oxford University Computing Laboratory   Wolfson Building, Parks Road   Oxford OX1 3QD, UK","institution_ids":["https://openalex.org/I40120149"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5058654790"],"corresponding_institution_ids":["https://openalex.org/I1290206253"],"apc_list":null,"apc_paid":null,"fwci":5.9528,"has_fulltext":true,"cited_by_count":146,"citation_normalized_percentile":{"value":0.9657349,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":100},"biblio":{"volume":"13","issue":"3","first_page":"455","last_page":"481"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9984999895095825,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9984999895095825,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9944000244140625,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.9150256514549255},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.836036205291748},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7857014536857605},{"id":"https://openalex.org/keywords/domain","display_name":"Domain (mathematical analysis)","score":0.5652450919151306},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.5618875026702881},{"id":"https://openalex.org/keywords/domain-specific-language","display_name":"Domain-specific language","score":0.5546530485153198},{"id":"https://openalex.org/keywords/generator","display_name":"Generator (circuit theory)","score":0.5350009202957153},{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.5310165286064148},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.5132939219474792},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.5010843276977539},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.4681278467178345},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.458636611700058},{"id":"https://openalex.org/keywords/compiled-language","display_name":"Compiled language","score":0.45584553480148315},{"id":"https://openalex.org/keywords/abstract-syntax","display_name":"Abstract syntax","score":0.4252476394176483},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.41947633028030396},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.41631433367729187},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.4073668122291565},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.26412251591682434},{"id":"https://openalex.org/keywords/high-level-programming-language","display_name":"High-level programming language","score":0.21622011065483093},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.20557767152786255},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.15945535898208618},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.09534722566604614}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9150256514549255},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.836036205291748},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7857014536857605},{"id":"https://openalex.org/C36503486","wikidata":"https://www.wikidata.org/wiki/Q11235244","display_name":"Domain (mathematical analysis)","level":2,"score":0.5652450919151306},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.5618875026702881},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.5546530485153198},{"id":"https://openalex.org/C2780992000","wikidata":"https://www.wikidata.org/wiki/Q17016113","display_name":"Generator (circuit theory)","level":3,"score":0.5350009202957153},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.5310165286064148},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.5132939219474792},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.5010843276977539},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.4681278467178345},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.458636611700058},{"id":"https://openalex.org/C92966194","wikidata":"https://www.wikidata.org/wiki/Q651794","display_name":"Compiled language","level":4,"score":0.45584553480148315},{"id":"https://openalex.org/C114408938","wikidata":"https://www.wikidata.org/wiki/Q333373","display_name":"Abstract syntax","level":3,"score":0.4252476394176483},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.41947633028030396},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.41631433367729187},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.4073668122291565},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.26412251591682434},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.21622011065483093},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.20557767152786255},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.15945535898208618},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.09534722566604614},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0},{"id":"https://openalex.org/C163258240","wikidata":"https://www.wikidata.org/wiki/Q25342","display_name":"Power (physics)","level":2,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1017/s0956796802004574","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796802004574","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/4B0A7526CC16907F445CCF27277E9B9B/S0956796802004574a.pdf/div-class-title-compiling-embedded-languages-div.pdf","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"}],"best_oa_location":{"id":"doi:10.1017/s0956796802004574","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796802004574","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/4B0A7526CC16907F445CCF27277E9B9B/S0956796802004574a.pdf/div-class-title-compiling-embedded-languages-div.pdf","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"},"sustainable_development_goals":[{"score":0.4699999988079071,"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2055947235.pdf","grobid_xml":"https://content.openalex.org/works/W2055947235.grobid-xml"},"referenced_works_count":38,"referenced_works":["https://openalex.org/W170403769","https://openalex.org/W567960075","https://openalex.org/W1486703026","https://openalex.org/W1494199306","https://openalex.org/W1512209678","https://openalex.org/W1518796682","https://openalex.org/W1523648047","https://openalex.org/W1535989349","https://openalex.org/W1556604985","https://openalex.org/W1563281959","https://openalex.org/W1565899642","https://openalex.org/W1579170619","https://openalex.org/W1581983724","https://openalex.org/W1590256419","https://openalex.org/W1839902311","https://openalex.org/W1985245264","https://openalex.org/W1987632834","https://openalex.org/W2000972892","https://openalex.org/W2008441811","https://openalex.org/W2011999472","https://openalex.org/W2019962118","https://openalex.org/W2070811535","https://openalex.org/W2070998289","https://openalex.org/W2074802267","https://openalex.org/W2094455839","https://openalex.org/W2110066118","https://openalex.org/W2134112335","https://openalex.org/W2145287505","https://openalex.org/W2164197394","https://openalex.org/W2342991422","https://openalex.org/W2462687788","https://openalex.org/W2913602891","https://openalex.org/W2952040453","https://openalex.org/W3203083807","https://openalex.org/W4232179104","https://openalex.org/W4239099388","https://openalex.org/W4249245425","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2077104824","https://openalex.org/W4389751695","https://openalex.org/W3176913510","https://openalex.org/W3138016835","https://openalex.org/W2536864162","https://openalex.org/W1599055565","https://openalex.org/W3197333277","https://openalex.org/W1625533892","https://openalex.org/W117543203","https://openalex.org/W2019388039"],"abstract_inverted_index":{"Functional":[0],"languages":[1],"are":[2,78],"particularly":[3],"well-suited":[4],"to":[5,100,107],"the":[6,84,108,121],"interpretive":[7],"implementations":[8],"of":[9,29,40,47,70,83,125],"Domain-Specific":[10],"Embedded":[11],"Languages":[12],"(DSELs).":[13],"We":[14,112],"describe":[15],"an":[16],"implemented":[17],"technique":[18,35,115],"for":[19,23,31,42,120],"producing":[20],"optimizing":[21],"compilers":[22,98],"DSELs,":[24],"based":[25],"on":[26,73],"Kamin's":[27],"idea":[28],"DSELs":[30,77],"program":[32],"generation.":[33],"The":[34],"uses":[36],"a":[37,45,61,117],"data":[38],"type":[39],"syntax":[41],"basic":[43,74,85],"types,":[44,55,87],"set":[46],"smart":[48],"constructors":[49],"that":[50],"perform":[51],"rewriting":[52],"over":[53],"those":[54],"some":[56],"code":[57,63],"motion":[58],"transformations,":[59],"and":[60,92,128],"back-end":[62],"generator.":[64],"Domain-specific":[65],"optimization":[66],"results":[67],"from":[68],"chains":[69],"domain-independent":[71],"rewrites":[72],"types.":[75],"New":[76],"defined":[79],"directly":[80],"in":[81,103],"terms":[82],"syntactic":[86],"plus":[88],"host":[89],"language":[90,118],"functions":[91],"tuples.":[93],"This":[94],"definition":[95],"style":[96],"makes":[97],"easy":[99],"write":[101],"and,":[102],"fact,":[104],"almost":[105],"identical":[106],"simplest":[109],"embedded":[110],"interpreters.":[111],"illustrate":[113],"this":[114],"with":[116],"Pan":[119],"computationally":[122],"intensive":[123],"domain":[124],"image":[126],"synthesis":[127],"manipulation.":[129]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":4},{"year":2016,"cited_by_count":9},{"year":2015,"cited_by_count":10},{"year":2014,"cited_by_count":12},{"year":2013,"cited_by_count":17},{"year":2012,"cited_by_count":12}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
