{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:23:37Z","timestamp":1763468617205,"version":"3.41.0"},"reference-count":21,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2014,4,1]],"date-time":"2014-04-01T00:00:00Z","timestamp":1396310400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2014,4]]},"abstract":"<jats:p>There are many ways to give instructions to a computer: an electrical engineer might write a MATLAB program; a database administrator might write an SQL script; a hardware engineer might write in Verilog; and an accountant might write a spreadsheet with embedded formulas. Aside from the difference in language used in each of these examples, there is an important difference in form and idiom. Each uses a language customized to the job at hand, and each builds computational requests in a form both familiar and productive for programmers (although accountants may not think of themselves as programmers). In short, each of these examples uses a DSL (domain-specific language).<\/jats:p>","DOI":"10.1145\/2611429.2617811","type":"journal-article","created":{"date-parts":[[2020,9,3]],"date-time":"2020-09-03T03:57:05Z","timestamp":1599105425000},"page":"30-43","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["Domain-specific Languages and Code Synthesis Using Haskell"],"prefix":"10.1145","volume":"12","author":[{"given":"Andy","family":"Gill","sequence":"first","affiliation":[{"name":"University of Kansas"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2014,4,15]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/2050135.2050143"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/795657.795802"},{"key":"e_1_2_1_3_1","doi-asserted-by":"crossref","unstructured":"Bracker J. Gill A.\n     2014.\n      \n  \n   \n  Sunroof: a monadic DSL for generating JavaScript. Practical Aspects of Declarative Languages\n  . Matthew Flatt and Hai-Feng Guo eds. Volume \n  8324 Lecture Notes in Computer Science\n  : 65-80. \n  Springer International Publishing\n  .  Bracker J. Gill A. 2014. Sunroof: a monadic DSL for generating JavaScript. Practical Aspects of Declarative Languages. Matthew Flatt and Hai-Feng Guo eds. Volume 8324 Lecture Notes in Computer Science: 65-80. Springer International Publishing.","DOI":"10.1007\/978-3-319-04132-2_5"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351266"},{"key":"e_1_2_1_5_1","doi-asserted-by":"crossref","unstructured":"Claessen K. Sands D.\n   \n  1999\n  . Observable sharing for functional circuit description. In Proceedings of 5th Asian Computer Science Conference Lecture Notes in Computer Science\n  . \n  Springer Verlag\n  .   Claessen K. Sands D. 1999. Observable sharing for functional circuit description. In Proceedings of 5th Asian Computer Science Conference Lecture Notes in Computer Science. Springer Verlag.","DOI":"10.1007\/3-540-46674-6_7"},{"key":"e_1_2_1_6_1","unstructured":"Elliott C. Boolean package; hackage.haskell.org\/package\/Boolean.  Elliott C. Boolean package; hackage.haskell.org\/package\/Boolean."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796802004574"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351257"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596638.1596653"},{"volume-title":"The International Conference on Engineering of Reconfigurable Systems and Algorithms.","year":"2011","author":"Gill A.","key":"e_1_2_1_10_1"},{"key":"e_1_2_1_11_1","first-page":"1","article-title":"Types and associated type families for hardware simulation and synthesis: the internals and externals of Kansas Lava","author":"Gill A.","year":"2013","journal-title":"Higher-Order and Symbolic Computation"},{"key":"e_1_2_1_13_1","unstructured":"Jones G. Sheeran M. 1990. Circuit design in Ruby. Formal Methods for VLSI Design. Jorgen Staunstrup ed. Elsevier Science Publications.  Jones G. Sheeran M. 1990. Circuit design in Ruby. Formal Methods for VLSI Design. Jorgen Staunstrup ed. Elsevier Science Publications."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863523.1863533"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/857172.857237"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-34407-7_6"},{"key":"e_1_2_1_17_1","unstructured":"Peyton Jones S. L. ed. 2003. Haskell 98 Language and Libraries-The Revised Report. Cambridge England: Cambridge University Press.  Peyton Jones S. L. ed. 2003. Haskell 98 Language and Libraries-The Revised Report. Cambridge England: Cambridge University Press."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/158511.158524"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500602"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/581690.581691"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/800055.802026"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500611"}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2611429.2617811","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2611429.2617811","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:56:05Z","timestamp":1750229765000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2611429.2617811"}},"subtitle":["Looking at embedded DSLs"],"short-title":[],"issued":{"date-parts":[[2014,4]]},"references-count":21,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2014,4]]}},"alternative-id":["10.1145\/2611429.2617811"],"URL":"https:\/\/doi.org\/10.1145\/2611429.2617811","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2014,4]]},"assertion":[{"value":"2014-04-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}