{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:33:14Z","timestamp":1750307594299,"version":"3.41.0"},"reference-count":12,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2010,1,27]],"date-time":"2010-01-27T00:00:00Z","timestamp":1264550400000},"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":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2010,1,27]]},"abstract":"<jats:p>We address a persistent problem with using domain-specific languages to write operating systems: the effort of implementing, checking, and debugging the DSL usually outweighs any of its benefits. Because these DSLs generate C by templated string concatenation, they are tedious to write, fragile, and incompatible with automated verification tools.<\/jats:p>\n          <jats:p>We present Filet-o-Fish (FoF), a semantic language to ease DSL construction. Building a DSL using FoF consists of safely composing semantically-rich building blocks. This has several advantages: input files for the DSL are formal specifications of the system's functionality, automated testing of the DSL is possible via existing tools, and we can prove that the C code generated by a given DSL respects the semantics expected by the developer. Early experience has been good: FoF is in daily use as part of the tool chain of the Barrelfish multicore OS, which makes extensive use of domain-specific languages to generate low-level OS code. We have found that the ability to rapidly generate DSLs we can rely on has changed how we have designed the OS.<\/jats:p>","DOI":"10.1145\/1713254.1713263","type":"journal-article","created":{"date-parts":[[2010,2,2]],"date-time":"2010-02-02T13:33:51Z","timestamp":1265117631000},"page":"35-39","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Filet-o-fish"],"prefix":"10.1145","volume":"43","author":[{"given":"Pierre-Evariste","family":"Dagand","sequence":"first","affiliation":[{"name":"ENS Cachan-Bretagne, France"}]},{"given":"Andrew","family":"Baumann","sequence":"additional","affiliation":[{"name":"Systems Group, ETH Zurich, Switzerland"}]},{"given":"Timothy","family":"Roscoe","sequence":"additional","affiliation":[{"name":"Systems Group, ETH Zurich, Switzerland"}]}],"member":"320","published-online":{"date-parts":[[2010,1,27]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629579"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/11813040_31"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/357766.351266"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/1762174.1762221"},{"key":"e_1_2_1_5_1","volume-title":"ENS Cachan-Bretagne","author":"Dagand P.-E.","year":"2009","unstructured":"P.-E. Dagand . Language support for reliable operating systems. Master's thesis , ENS Cachan-Bretagne , June 2009 . P.-E. Dagand. Language support for reliable operating systems. Master's thesis, ENS Cachan-Bretagne, June 2009."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/1251229.1251230"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1243418.1243424"},{"key":"e_1_2_1_8_1","first-page":"275","volume-title":"Proc. USENIX Annual Technical Conference","author":"Jim T.","year":"2002","unstructured":"T. Jim , J.G. Morrisett , D. Grossman , M.W. Hicks , J. Cheney , and Y. Wang . Cyclone : A safe dialect of C . In Proc. USENIX Annual Technical Conference , pages 275 -- 288 , 2002 . T. Jim, J.G. Morrisett, D. Grossman, M.W. Hicks, J. Cheney, and Y.Wang. Cyclone: A safe dialect of C. In Proc. USENIX Annual Technical Conference, pages 275--288, 2002."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629596"},{"key":"e_1_2_1_11_1","first-page":"17","volume-title":"Proc. 4th Symposium on OS Design and Implementation","author":"M\u00e9rillon F.","year":"2000","unstructured":"F. M\u00e9rillon , L. R\u00e9veill\u00e8re , C. Consel , R. Marlet , and G. Muller . Devil: an IDL for hardware programming . In Proc. 4th Symposium on OS Design and Implementation , pages 17 -- 30 , 2000 . F. M\u00e9rillon, L. R\u00e9veill\u00e8re, C. Consel, R. Marlet, and G. Muller. Devil: an IDL for hardware programming. In Proc. 4th Symposium on OS Design and Implementation, pages 17--30, 2000."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/358438.349314"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1498765.1498781"}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1713254.1713263","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1713254.1713263","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T12:41:35Z","timestamp":1750250495000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1713254.1713263"}},"subtitle":["practical and dependable domain-specific languages for OS development"],"short-title":[],"issued":{"date-parts":[[2010,1,27]]},"references-count":12,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2010,1,27]]}},"alternative-id":["10.1145\/1713254.1713263"],"URL":"https:\/\/doi.org\/10.1145\/1713254.1713263","relation":{},"ISSN":["0163-5980"],"issn-type":[{"type":"print","value":"0163-5980"}],"subject":[],"published":{"date-parts":[[2010,1,27]]},"assertion":[{"value":"2010-01-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}