{"id":"https://openalex.org/W4379537776","doi":"https://doi.org/10.1145/3591223","title":"A Lineage-Based Referencing DSL for Computer-Aided Design","display_name":"A Lineage-Based Referencing DSL for Computer-Aided Design","publication_year":2023,"publication_date":"2023-06-06","ids":{"openalex":"https://openalex.org/W4379537776","doi":"https://doi.org/10.1145/3591223"},"language":"en","primary_location":{"id":"doi:10.1145/3591223","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591223","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591223","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/3591223","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5048406183","display_name":"Dan Cascaval","orcid":"https://orcid.org/0000-0003-1242-2828"},"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":true,"raw_author_name":"Dan Cascaval","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":"https://orcid.org/0000-0003-1242-2828","affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5085160432","display_name":"Rastislav Bod\u00edk","orcid":"https://orcid.org/0000-0001-6639-1647"},"institutions":[{"id":"https://openalex.org/I1291425158","display_name":"Google (United States)","ror":"https://ror.org/00njsd438","country_code":"US","type":"company","lineage":["https://openalex.org/I1291425158","https://openalex.org/I4210128969"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Rastislav Bodik","raw_affiliation_strings":["Google, USA"],"raw_orcid":"https://orcid.org/0000-0001-6639-1647","affiliations":[{"raw_affiliation_string":"Google, USA","institution_ids":["https://openalex.org/I1291425158"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5043809595","display_name":"Adriana Schulz","orcid":"https://orcid.org/0000-0002-2464-0876"},"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":"Adriana Schulz","raw_affiliation_strings":["University of Washington, USA"],"raw_orcid":"https://orcid.org/0000-0002-2464-0876","affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5048406183"],"corresponding_institution_ids":["https://openalex.org/I201448701"],"apc_list":null,"apc_paid":null,"fwci":1.1852,"has_fulltext":true,"cited_by_count":6,"citation_normalized_percentile":{"value":0.81519215,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":98},"biblio":{"volume":"7","issue":"PLDI","first_page":"76","last_page":"99"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11159","display_name":"Manufacturing Process and Optimization","score":0.9998999834060669,"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.9998999834060669,"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/T11245","display_name":"Advanced Numerical Analysis Techniques","score":0.9969000220298767,"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"}},{"id":"https://openalex.org/T10719","display_name":"3D Shape Modeling and Analysis","score":0.975600004196167,"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.8028022050857544},{"id":"https://openalex.org/keywords/cad","display_name":"CAD","score":0.6881531476974487},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.6793363690376282},{"id":"https://openalex.org/keywords/computer-aided-design","display_name":"Computer Aided Design","score":0.6342663764953613},{"id":"https://openalex.org/keywords/heuristics","display_name":"Heuristics","score":0.6210070848464966},{"id":"https://openalex.org/keywords/domain","display_name":"Domain (mathematical analysis)","score":0.5425018668174744},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.5357033610343933},{"id":"https://openalex.org/keywords/domain-specific-language","display_name":"Domain-specific language","score":0.5287107229232788},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5189713835716248},{"id":"https://openalex.org/keywords/design-language","display_name":"Design language","score":0.4548831284046173},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.44998547434806824},{"id":"https://openalex.org/keywords/construct","display_name":"Construct (python library)","score":0.43730294704437256},{"id":"https://openalex.org/keywords/electronic-design-automation","display_name":"Electronic design automation","score":0.41624826192855835},{"id":"https://openalex.org/keywords/engineering-drawing","display_name":"Engineering drawing","score":0.3675283193588257},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3457493782043457},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.32653188705444336}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8028022050857544},{"id":"https://openalex.org/C194789388","wikidata":"https://www.wikidata.org/wiki/Q17855283","display_name":"CAD","level":2,"score":0.6881531476974487},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.6793363690376282},{"id":"https://openalex.org/C119823426","wikidata":"https://www.wikidata.org/wiki/Q184793","display_name":"Computer Aided Design","level":2,"score":0.6342663764953613},{"id":"https://openalex.org/C127705205","wikidata":"https://www.wikidata.org/wiki/Q5748245","display_name":"Heuristics","level":2,"score":0.6210070848464966},{"id":"https://openalex.org/C36503486","wikidata":"https://www.wikidata.org/wiki/Q11235244","display_name":"Domain (mathematical analysis)","level":2,"score":0.5425018668174744},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.5357033610343933},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.5287107229232788},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5189713835716248},{"id":"https://openalex.org/C49777639","wikidata":"https://www.wikidata.org/wiki/Q5264354","display_name":"Design language","level":2,"score":0.4548831284046173},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.44998547434806824},{"id":"https://openalex.org/C2780801425","wikidata":"https://www.wikidata.org/wiki/Q5164392","display_name":"Construct (python library)","level":2,"score":0.43730294704437256},{"id":"https://openalex.org/C64260653","wikidata":"https://www.wikidata.org/wiki/Q1194864","display_name":"Electronic design automation","level":2,"score":0.41624826192855835},{"id":"https://openalex.org/C199639397","wikidata":"https://www.wikidata.org/wiki/Q1788588","display_name":"Engineering drawing","level":1,"score":0.3675283193588257},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3457493782043457},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.32653188705444336},{"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/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"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/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.0},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3591223","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591223","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591223","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/3591223","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591223","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591223","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/G1573942047","display_name":null,"funder_award_id":"2132318","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2087268749","display_name":"NRI: INT: COLLAB: Program Verification and Synthesis for Collaborative Robots","funder_award_id":"1924435","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2231840415","display_name":null,"funder_award_id":"2219864","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2233570209","display_name":null,"funder_award_id":"1936731","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2564225811","display_name":null,"funder_award_id":"ITE--2132318, CCF--2122950, ITE--2029457, ITE--1936731, CCF--1918027, IIS--1924435","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2611720058","display_name":null,"funder_award_id":"2122950","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3785592558","display_name":null,"funder_award_id":"FA8750-16-2-0032","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G4438796283","display_name":"RAPID: Collecting Reliable COVID-19 Datasets in Crisis Conditions","funder_award_id":"2029457","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G4713059963","display_name":null,"funder_award_id":"FA8750","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G4767762227","display_name":null,"funder_award_id":"CCF-1918027","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5292072049","display_name":"FMitF: Track II: Programming by Demonstration for the Browser with Applications in Data Science","funder_award_id":"1918027","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G731481035","display_name":null,"funder_award_id":"1723352","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"},{"id":"https://openalex.org/F4320306087","display_name":"Semiconductor Research Corporation","ror":"https://ror.org/047z4n946"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4379537776.pdf","grobid_xml":"https://content.openalex.org/works/W4379537776.grobid-xml"},"referenced_works_count":25,"referenced_works":["https://openalex.org/W1979073599","https://openalex.org/W2030828476","https://openalex.org/W2046278272","https://openalex.org/W2075161796","https://openalex.org/W2139899236","https://openalex.org/W2219864925","https://openalex.org/W2337503935","https://openalex.org/W2736422420","https://openalex.org/W2811172746","https://openalex.org/W2886686348","https://openalex.org/W2901177809","https://openalex.org/W2902691505","https://openalex.org/W2988260072","https://openalex.org/W3014415287","https://openalex.org/W3033423882","https://openalex.org/W3038524221","https://openalex.org/W3108720268","https://openalex.org/W3141802282","https://openalex.org/W3155736444","https://openalex.org/W3162843412","https://openalex.org/W3177593735","https://openalex.org/W3186806032","https://openalex.org/W3207267202","https://openalex.org/W4200412188","https://openalex.org/W4281489162"],"related_works":["https://openalex.org/W2103179284","https://openalex.org/W4245274216","https://openalex.org/W1580439077","https://openalex.org/W2911397178","https://openalex.org/W2025797998","https://openalex.org/W2462343658","https://openalex.org/W2953099343","https://openalex.org/W1933197882","https://openalex.org/W53823562","https://openalex.org/W4379537776"],"abstract_inverted_index":{"3D":[0],"Computer-Aided":[1],"Design":[2],"(CAD)":[3],"modeling":[4],"is":[5,79,154],"ubiquitous":[6],"in":[7,42,145,253,274],"mechanical":[8],"engineering":[9],"and":[10,20,110,130,163,176,214,234,262],"design.":[11],"Modern":[12],"CAD":[13,47,54,135,165,189,256,276],"models":[14,116,269],"are":[15,64,102,119,126],"programs":[16,55],"that":[17,66,83,199,229,236,270],"produce":[18],"geometry":[19,72],"can":[21,84,230],"be":[22,232],"used":[23],"to":[24,59,74,123,139,141,161,184,187,210],"implement":[25],"high-level":[26],"geometric":[27,57,90,124],"changes":[28],"by":[29],"modifying":[30],"input":[31],"parameters.":[32],"While":[33,133],"there":[34],"has":[35],"been":[36],"a":[37,178,196,203,223,249,254],"surge":[38],"of":[39,147,172,180,248],"recent":[40],"interest":[41],"program-based":[43],"tooling":[44],"for":[45,157,225],"the":[46,70,99,169,188,240],"domain,":[48],"one":[49],"fundamental":[50],"problem":[51],"remains":[52],"unsolved.":[53],"pass":[56],"arguments":[58],"operations":[60],"using":[61,207],"references,":[62],"which":[63,183],"queries":[65,209],"select":[67],"elements":[68,101,125],"from":[69],"constructed":[71],"according":[73],"programmer":[75,86],"intent.":[76],"The":[77],"challenge":[78],"designing":[80],"reference":[81,272],"semantics":[82,224],"express":[85],"intent":[87,144],"across":[88],"all":[89,219],"topologies":[91,97],"achievable":[92],"with":[93],"model":[94],"parameters,":[95],"including":[96],"where":[98],"desired":[100,241],"not":[103,155],"present.":[104],"In":[105,192],"current":[106],"systems,":[107],"both":[108],"users":[109],"automated":[111,159],"tools":[112,160],"may":[113],"create":[114],"invalid":[115],"when":[117],"parameters":[118],"changed,":[120],"as":[121,202],"references":[122,201,216],"lost":[127],"or":[128],"silently":[129],"arbitrarily":[131],"switched.":[132],"existing":[134,173,275],"systems":[136],"use":[137],"heuristics":[138],"attempt":[140],"infer":[142],"user":[143],"cases":[146],"this":[148,151],"undefined":[149],"behavior,":[150],"best-effort":[152],"solution":[153],"suitable":[156],"constructing":[158],"edit":[162],"optimize":[164],"programs.":[166],"We":[167,221],"analyze":[168],"failure":[170],"modes":[171],"referencing":[174,190,251,260],"schemes":[175],"formalize":[177],"set":[179],"criteria":[181],"on":[182],"evaluate":[185],"solutions":[186],"problem.":[191],"turn,":[193],"we":[194,244],"propose":[195],"domain-specific":[197],"language":[198,205,238],"exposes":[200],"first-class":[204],"construct,":[206],"user-authored":[208],"introspect":[211],"element":[212,227],"history":[213],"define":[215],"safely":[217,267],"over":[218],"paths.":[220],"give":[222],"fine-grained":[226],"lineage":[228],"subsequently":[231],"queried;":[233],"show":[235],"our":[237,265],"meets":[239],"properties.":[242],"Finally,":[243],"provide":[245],"an":[246],"implementation":[247],"lineage-based":[250],"system":[252,266],"2.5D":[255],"kernel,":[257],"demonstrating":[258],"realistic":[259],"scenarios":[261],"illustrating":[263],"how":[264],"represents":[268],"cause":[271],"breakage":[273],"systems.":[277]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":4},{"year":2024,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
