{"id":"https://openalex.org/W2886686348","doi":"https://doi.org/10.1145/3236794","title":"Functional programming for compiling and decompiling computer-aided design","display_name":"Functional programming for compiling and decompiling computer-aided design","publication_year":2018,"publication_date":"2018-07-30","ids":{"openalex":"https://openalex.org/W2886686348","doi":"https://doi.org/10.1145/3236794","mag":"2886686348"},"language":"en","primary_location":{"id":"doi:10.1145/3236794","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236794","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236794","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/3236794","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5066993902","display_name":"Chandrakana Nandi","orcid":"https://orcid.org/0000-0001-8633-8413"},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Chandrakana Nandi","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5101839396","display_name":"James R. Wilcox","orcid":"https://orcid.org/0000-0003-3182-2093"},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"James R. Wilcox","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5022031348","display_name":"Pavel Panchekha","orcid":"https://orcid.org/0000-0003-2621-3592"},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Pavel Panchekha","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5089095633","display_name":"Taylor Blau","orcid":null},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Taylor Blau","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5103045316","display_name":"Dan Grossman","orcid":null},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Dan Grossman","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5042187082","display_name":"Zachary Tatlock","orcid":"https://orcid.org/0000-0002-4731-0124"},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Zachary Tatlock","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I201448701"],"apc_list":null,"apc_paid":null,"fwci":3.7865,"has_fulltext":true,"cited_by_count":44,"citation_normalized_percentile":{"value":0.94093672,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":"2","issue":"ICFP","first_page":"1","last_page":"31"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11159","display_name":"Manufacturing Process and Optimization","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/2209","display_name":"Industrial and Manufacturing Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11159","display_name":"Manufacturing Process and Optimization","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/2209","display_name":"Industrial and Manufacturing Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10481","display_name":"Computer Graphics and Visualization Techniques","score":0.9969000220298767,"subfield":{"id":"https://openalex.org/subfields/1704","display_name":"Computer Graphics and Computer-Aided Design"},"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/T10719","display_name":"3D Shape Modeling and Analysis","score":0.9842000007629395,"subfield":{"id":"https://openalex.org/subfields/2206","display_name":"Computational Mechanics"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"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.8111785650253296},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7605610489845276},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.653536856174469},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.4952222406864166},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4816347658634186},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.44502121210098267}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8111785650253296},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7605610489845276},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.653536856174469},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.4952222406864166},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4816347658634186},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.44502121210098267}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3236794","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236794","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236794","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/3236794","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236794","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236794","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":[{"score":0.550000011920929,"id":"https://metadata.un.org/sdg/9","display_name":"Industry, innovation and infrastructure"}],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2886686348.pdf","grobid_xml":"https://content.openalex.org/works/W2886686348.grobid-xml"},"referenced_works_count":52,"referenced_works":["https://openalex.org/W10496484","https://openalex.org/W162261166","https://openalex.org/W576569775","https://openalex.org/W1750360790","https://openalex.org/W1969213662","https://openalex.org/W1972732855","https://openalex.org/W1981835595","https://openalex.org/W1982901858","https://openalex.org/W1987398446","https://openalex.org/W1992388930","https://openalex.org/W1999284314","https://openalex.org/W2010600619","https://openalex.org/W2020701433","https://openalex.org/W2027923991","https://openalex.org/W2029777721","https://openalex.org/W2040005668","https://openalex.org/W2045954336","https://openalex.org/W2052590126","https://openalex.org/W2061091230","https://openalex.org/W2075208936","https://openalex.org/W2078469680","https://openalex.org/W2100522523","https://openalex.org/W2110848488","https://openalex.org/W2115529949","https://openalex.org/W2119352997","https://openalex.org/W2134734244","https://openalex.org/W2150871888","https://openalex.org/W2161159055","https://openalex.org/W2169004268","https://openalex.org/W2247601005","https://openalex.org/W2276356546","https://openalex.org/W2294286398","https://openalex.org/W2294628582","https://openalex.org/W2330908417","https://openalex.org/W2395050409","https://openalex.org/W2401668149","https://openalex.org/W2431022294","https://openalex.org/W2470373562","https://openalex.org/W2532281542","https://openalex.org/W2539356671","https://openalex.org/W2546984397","https://openalex.org/W2610299746","https://openalex.org/W2620922378","https://openalex.org/W2622193054","https://openalex.org/W2626990892","https://openalex.org/W2744896498","https://openalex.org/W4214494916","https://openalex.org/W4235240618","https://openalex.org/W4238194115","https://openalex.org/W4242239856","https://openalex.org/W4255584681","https://openalex.org/W4299968636"],"related_works":["https://openalex.org/W2171648479","https://openalex.org/W2132806979","https://openalex.org/W1713081424","https://openalex.org/W1523769955","https://openalex.org/W2245390655","https://openalex.org/W188282463","https://openalex.org/W4312309273","https://openalex.org/W3136890312","https://openalex.org/W2259894237","https://openalex.org/W1923258046"],"abstract_inverted_index":{"Desktop-manufacturing":[0],"techniques":[1,67],"like":[2,86],"3D":[3,140],"printing":[4],"are":[5,33,50],"increasingly":[6],"popular":[7],"because":[8],"they":[9],"reduce":[10],"the":[11,22,78,105,158],"cost":[12],"and":[13,74,93,125,142],"complexity":[14],"of":[15,25,47,54,136,153,160,200],"producing":[16],"customized":[17],"objects":[18],"on":[19,170],"demand.":[20],"Unfortunately,":[21],"vibrant":[23],"communities":[24,182],"early":[26],"adopters,":[27],"often":[28],"referred":[29],"to":[30,68,77,139,147,173,184,196],"as":[31],"\"makers,\"":[32],"not":[34],"well-served":[35],"by":[36,150,163],"currently":[37],"available":[38],"software":[39,56,82],"pipelines.":[40],"Users":[41],"today":[42],"must":[43],"compose":[44],"idiosyncratic":[45],"sequences":[46],"tools":[48],"which":[49],"typically":[51],"repurposed":[52],"variants":[53],"proprietary":[55],"originally":[57],"designed":[58],"for":[59,84,121,203],"expert":[60],"specialists.":[61],"This":[62],"paper":[63],"proposes":[64],"fundamental":[65],"programming-languages":[66],"bring":[69],"improved":[70],"rigor,":[71],"reduced":[72],"complexity,":[73],"new":[75],"functionality":[76],"computer-aided":[79],"design":[80],"(CAD)":[81],"pipeline":[83],"applications":[85],"3D-printing.":[87],"Compositionality,":[88],"denotational":[89,134],"semantics,":[90],"compiler":[91,144],"correctness,":[92],"program":[94],"synthesis":[95,167],"all":[96],"play":[97],"key":[98],"roles":[99],"in":[100,194],"our":[101,189],"approach,":[102],"starting":[103],"from":[104,145,179],"perspective":[106],"that":[107],"solid":[108],"geometry":[109],"is":[110],"a":[111,117,126,143,151,165],"programming":[112,202],"language.":[113],"Specifically,":[114],"we":[115],"define":[116,133],"purely":[118],"functional":[119,201],"language":[120],"CAD":[122,146,186],"called":[123],"LambdaCAD":[124],"polygon":[127],"surface-mesh":[128],"intermediate":[129],"representation.":[130],"We":[131,156],"then":[132],"semantics":[135,154],"both":[137],"languages":[138],"solids":[141],"mesh":[148],"accompanied":[149],"proof":[152],"preservation.":[155],"illustrate":[157],"utility":[159],"this":[161],"foundation":[162],"developing":[164],"novel":[166],"algorithm":[168],"based":[169],"evaluation":[171],"contexts":[172],"\"reverse":[174],"compile\"":[175],"difficult-to-edit":[176],"meshes":[177],"downloaded":[178],"online":[180],"maker":[181],"back":[183],"more-editable":[185],"programs.":[187],"All":[188],"prototypes":[190],"have":[191],"been":[192],"implemented":[193],"OCaml":[195],"enable":[197],"further":[198],"exploration":[199],"desktop":[204],"manufacturing.":[205]},"counts_by_year":[{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":5},{"year":2023,"cited_by_count":11},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":5},{"year":2020,"cited_by_count":6},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":1}],"updated_date":"2026-06-26T08:34:08.712188","created_date":"2025-10-10T00:00:00"}
