{"id":"https://openalex.org/W2053179758","doi":"https://doi.org/10.1145/2814228.2814244","title":"Constraints as a design pattern","display_name":"Constraints as a design pattern","publication_year":2015,"publication_date":"2015-10-21","ids":{"openalex":"https://openalex.org/W2053179758","doi":"https://doi.org/10.1145/2814228.2814244","mag":"2053179758"},"language":"en","primary_location":{"id":"doi:10.1145/2814228.2814244","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814228.2814244","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5000526078","display_name":"Hesam Samimi","orcid":null},"institutions":[{"id":"https://openalex.org/I886105272","display_name":"Viewpoints Research Institute","ror":"https://ror.org/01amy5q57","country_code":"US","type":"nonprofit","lineage":["https://openalex.org/I886105272"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Hesam Samimi","raw_affiliation_strings":["SAP Labs, USA / Viewpoints Research Institute, USA","SAP Labs, USA / Viewpoints Research Institute, USA#TAB#"],"affiliations":[{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA","institution_ids":["https://openalex.org/I886105272"]},{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA#TAB#","institution_ids":["https://openalex.org/I886105272"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5001491028","display_name":"Alessandro Warth","orcid":null},"institutions":[{"id":"https://openalex.org/I886105272","display_name":"Viewpoints Research Institute","ror":"https://ror.org/01amy5q57","country_code":"US","type":"nonprofit","lineage":["https://openalex.org/I886105272"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Alessandro Warth","raw_affiliation_strings":["SAP Labs, USA / Viewpoints Research Institute, USA","SAP Labs, USA / Viewpoints Research Institute, USA#TAB#"],"affiliations":[{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA","institution_ids":["https://openalex.org/I886105272"]},{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA#TAB#","institution_ids":["https://openalex.org/I886105272"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5043629858","display_name":"Mahdi Eslamimehr","orcid":"https://orcid.org/0000-0002-0188-5061"},"institutions":[{"id":"https://openalex.org/I886105272","display_name":"Viewpoints Research Institute","ror":"https://ror.org/01amy5q57","country_code":"US","type":"nonprofit","lineage":["https://openalex.org/I886105272"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Mahdi Eslamimehr","raw_affiliation_strings":["SAP Labs, USA / Viewpoints Research Institute, USA","SAP Labs, USA / Viewpoints Research Institute, USA#TAB#"],"affiliations":[{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA","institution_ids":["https://openalex.org/I886105272"]},{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA#TAB#","institution_ids":["https://openalex.org/I886105272"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5056034943","display_name":"Alan Borning","orcid":"https://orcid.org/0009-0002-3109-2967"},"institutions":[{"id":"https://openalex.org/I886105272","display_name":"Viewpoints Research Institute","ror":"https://ror.org/01amy5q57","country_code":"US","type":"nonprofit","lineage":["https://openalex.org/I886105272"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Alan Borning","raw_affiliation_strings":["SAP Labs, USA / Viewpoints Research Institute, USA","SAP Labs, USA / Viewpoints Research Institute, USA#TAB#"],"affiliations":[{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA","institution_ids":["https://openalex.org/I886105272"]},{"raw_affiliation_string":"SAP Labs, USA / Viewpoints Research Institute, USA#TAB#","institution_ids":["https://openalex.org/I886105272"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5000526078"],"corresponding_institution_ids":["https://openalex.org/I886105272"],"apc_list":null,"apc_paid":null,"fwci":0.8629,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.82189586,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":"6","issue":null,"first_page":"28","last_page":"43"},"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.9977999925613403,"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.9977999925613403,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.996999979019165,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9969000220298767,"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/computer-science","display_name":"Computer science","score":0.8161088228225708},{"id":"https://openalex.org/keywords/constraint-programming","display_name":"Constraint programming","score":0.8053962588310242},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6418624520301819},{"id":"https://openalex.org/keywords/debugging","display_name":"Debugging","score":0.5969963073730469},{"id":"https://openalex.org/keywords/programming-style","display_name":"Programming style","score":0.5822852849960327},{"id":"https://openalex.org/keywords/constraint","display_name":"Constraint (computer-aided design)","score":0.5592923760414124},{"id":"https://openalex.org/keywords/constraint-satisfaction","display_name":"Constraint satisfaction","score":0.539317786693573},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.5323600769042969},{"id":"https://openalex.org/keywords/leverage","display_name":"Leverage (statistics)","score":0.4939776062965393},{"id":"https://openalex.org/keywords/extensibility","display_name":"Extensibility","score":0.43841487169265747},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.4317552149295807},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.4233199656009674},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.39398783445358276},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.2591772675514221},{"id":"https://openalex.org/keywords/mathematical-optimization","display_name":"Mathematical optimization","score":0.1334713101387024}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8161088228225708},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.8053962588310242},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6418624520301819},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.5969963073730469},{"id":"https://openalex.org/C2776245389","wikidata":"https://www.wikidata.org/wiki/Q962139","display_name":"Programming style","level":2,"score":0.5822852849960327},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.5592923760414124},{"id":"https://openalex.org/C44616089","wikidata":"https://www.wikidata.org/wiki/Q30158686","display_name":"Constraint satisfaction","level":3,"score":0.539317786693573},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.5323600769042969},{"id":"https://openalex.org/C153083717","wikidata":"https://www.wikidata.org/wiki/Q6535263","display_name":"Leverage (statistics)","level":2,"score":0.4939776062965393},{"id":"https://openalex.org/C32833848","wikidata":"https://www.wikidata.org/wiki/Q4115054","display_name":"Extensibility","level":2,"score":0.43841487169265747},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4317552149295807},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.4233199656009674},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.39398783445358276},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.2591772675514221},{"id":"https://openalex.org/C126255220","wikidata":"https://www.wikidata.org/wiki/Q141495","display_name":"Mathematical optimization","level":1,"score":0.1334713101387024},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"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/C78519656","wikidata":"https://www.wikidata.org/wiki/Q101333","display_name":"Mechanical engineering","level":1,"score":0.0},{"id":"https://openalex.org/C137631369","wikidata":"https://www.wikidata.org/wiki/Q7617831","display_name":"Stochastic programming","level":2,"score":0.0},{"id":"https://openalex.org/C49937458","wikidata":"https://www.wikidata.org/wiki/Q2599292","display_name":"Probabilistic logic","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2814228.2814244","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814228.2814244","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"No poverty","score":0.4699999988079071,"id":"https://metadata.un.org/sdg/1"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":20,"referenced_works":["https://openalex.org/W1561602672","https://openalex.org/W1782169904","https://openalex.org/W1983205028","https://openalex.org/W2053637323","https://openalex.org/W2079512738","https://openalex.org/W2081854525","https://openalex.org/W2095992952","https://openalex.org/W2099165995","https://openalex.org/W2112779958","https://openalex.org/W2115261880","https://openalex.org/W2160796062","https://openalex.org/W2163671349","https://openalex.org/W2164778826","https://openalex.org/W2171267342","https://openalex.org/W2353204206","https://openalex.org/W2403131032","https://openalex.org/W2555448203","https://openalex.org/W2914764211","https://openalex.org/W3147168160","https://openalex.org/W4253360640"],"related_works":["https://openalex.org/W2097415053","https://openalex.org/W1514298554","https://openalex.org/W1486916474","https://openalex.org/W4243324743","https://openalex.org/W1531664660","https://openalex.org/W2120647900","https://openalex.org/W1496100162","https://openalex.org/W4303044088","https://openalex.org/W1169406866","https://openalex.org/W4249103506"],"abstract_inverted_index":{"Imperative":[0],"programming":[1,56,119,142],"has":[2,60,107],"great":[3],"merits.":[4],"As":[5],"the":[6,23,71,79,89,92,97,157,160,164,176,189,199,249],"ubiquitous":[7],"style,":[8],"it":[9,35,256],"is":[10,20,36,75,88,135,180],"familiar,":[11],"and":[12,15,53,105,130,154,198,215,235],"its":[13,32],"linear":[14],"step":[16,18],"by":[17,22,194,254],"nature":[19],"favored":[21],"human":[24],"mind.":[25],"Experienced":[26],"programmers,":[27],"however,":[28],"are":[29],"aware":[30],"of":[31,45,91,124,140,159,183,186,239,251],"major":[33],"flaw:":[34],"easy":[37],"for":[38],"meanings":[39],"to":[40,50,63,94,136,204,218],"get":[41],"lost":[42],"in":[43,83,150,213,233,242],"piles":[44],"code,":[46],"making":[47],"software":[48],"hard":[49],"understand,":[51],"extend,":[52],"debug.":[54],"Constraint-based":[55],"as":[57,121,144,162,260,262],"an":[58,195],"alternative":[59],"been":[61],"observed":[62],"suffer":[64],"much":[65],"less":[66],"from":[67,111],"these":[68],"flaws,":[69],"where":[70,174],"\"what\"":[72],"(the":[73,81],"intention)":[74],"expressed":[76],"rather":[77],"than":[78],"\"how\"":[80],"algorithm)":[82],"performing":[84],"a":[85,117,122,125,151,171,178,184,225,237],"computation.":[86],"It":[87],"job":[90],"system":[93],"automatically":[95],"achieve":[96],"intention":[98],"through":[99],"constraint":[100,209],"solving.":[101],"Sadly,":[102],"poor":[103],"performance":[104],"expressiveness":[106],"prevented":[108],"this":[109,231,245],"style":[110],"seeing":[112],"widespread":[113],"adoption.":[114],"We":[115,222],"propose":[116],"general":[118],"model":[120,169,232],"kind":[123],"sweet":[126],"spot":[127],"between":[128],"imperative":[129,202,259],"constraint-based":[131,141,166,263],"programming.":[132],"Our":[133],"aim":[134],"leverage":[137],"many":[138],"benefits":[139],"such":[143],"understandability,":[145],"behavioral":[146],"modularity,":[147],"extensibility,":[148],"etc.,":[149],"practical":[152],"way":[153],"without":[155],"suffering":[156],"breakdown":[158],"approach":[161,253],"with":[163,257],"traditional":[165,258],"paradigm.":[167],"This":[168],"enforces":[170],"certain":[172],"organization":[173],"at":[175],"top-level":[177],"program":[179],"simply":[181],"composed":[182],"set":[185],"constraints.":[187],"However,":[188],"constraints":[190],"aren't":[191],"necessarily":[192],"solved":[193,212],"external":[196],"entity,":[197],"programmer":[200],"uses":[201],"code":[203],"specify":[205],"(1)":[206],"how":[207,217],"each":[208],"should":[210],"be":[211],"isolation,":[214],"(2)":[216],"combine":[219],"individual":[220],"solutions.":[221],"have":[223],"implemented":[224],"tool":[226],"called":[227],"Sketchpad14":[228],"that":[229],"incorporates":[230],"JavaScript,":[234],"built":[236],"number":[238],"realistic":[240],"applications":[241],"it.":[243],"In":[244],"paper":[246],"we":[247],"demonstrate":[248],"merits":[250],"our":[252],"comparing":[255],"well":[261],"approaches.":[264]},"counts_by_year":[{"year":2018,"cited_by_count":1},{"year":2016,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
