{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:09:58Z","timestamp":1750306198371,"version":"3.41.0"},"reference-count":18,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,1,5]],"date-time":"2017-01-05T00:00:00Z","timestamp":1483574400000},"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":["SIGBED Rev."],"published-print":{"date-parts":[[2017,1,5]]},"abstract":"<jats:p>The course in Compiler Construction is part of the Computer Science masters program at Lule\u00e5 University of Technology (LTU). Since the fall of 2014, the course is given by the Embedded Systems group. This paper outlines the course syllabus and its relation to CPS\/IoT and embedded systems in general. In particular, the course introduces domain specific language design with the outset from the imperative RTFM-core language. Students are exposed to design choices for the language, spanning from programming model, compiler design issues, back-end tools, and even runtime environments. The intention is to give a holistic perspective and motivate the use of compilation techniques towards robust, efficient, and verifiable (embedded) software. Of course, developing basic skills is not overlooked and as part of the laboratory assignments, students extend the min-imalistic Object Oriented language RTFM-cOOre and develop the compiler accordingly targeting the RTFM-core language as an intermediate representation. As the RTFM-core\/-cOOre compilers are implemented using OCaml\/Men-hir, the students are also exposed to functional languages and to their advantages in the context of compiler construction. However, for their own development they may choose alternative design tools and languages. This gives us the opportunity to review and correlate achievements and efficiency to the choice of tools and languages and it is an outset for future course development.<\/jats:p>","DOI":"10.1145\/3036686.3036690","type":"journal-article","created":{"date-parts":[[2017,1,6]],"date-time":"2017-01-06T13:30:07Z","timestamp":1483709407000},"page":"29-36","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["RTFM-core"],"prefix":"10.1145","volume":"14","author":[{"given":"Marcus","family":"Lindner","sequence":"first","affiliation":[{"name":"Lule\u00e5 University of Technology"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andreas","family":"Lindner","sequence":"additional","affiliation":[{"name":"Lule\u00e5 University of Technology"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Per","family":"Lindgren","sequence":"additional","affiliation":[{"name":"Lule\u00e5 University of Technology"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,1,5]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"OCaml. (webpage) Last accessed 2014-07-28. [Online]. Available: http:\/\/ocaml.org  OCaml. (webpage) Last accessed 2014-07-28. [Online]. Available: http:\/\/ocaml.org"},{"key":"e_1_2_1_2_1","unstructured":"Menhir. (webpage) Last accessed 2014-08-07. [Online]. Available: http:\/\/gallium.inria.fr\/~fpottier\/menhir\/  Menhir. (webpage) Last accessed 2014-08-07. [Online]. Available: http:\/\/gallium.inria.fr\/~fpottier\/menhir\/"},{"key":"e_1_2_1_3_1","first-page":"110","article-title":"Real-time for the masses, step 1: Programming API and static priority SRP kernel primitives","author":"Eriksson J.","year":"2013","journal-title":"SIES. IEEE"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/REAL.1990.128747"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/ETFA.2015.7301501"},{"key":"e_1_2_1_6_1","unstructured":"Y. Minsky A. Madhavapeddy and J. Hickey Real World OCaml: Functional programming for the masses 1st ed. O'Reilly Media 11 2013.  Y. Minsky A. Madhavapeddy and J. Hickey Real World OCaml: Functional programming for the masses 1st ed. O'Reilly Media 11 2013."},{"key":"e_1_2_1_7_1","unstructured":"ANTLR (ANother Tool for Language Recognition). (webpage) Last accessed 2014-08-07. [Online]. Available: http:\/\/www.antlr.org  ANTLR (ANother Tool for Language Recognition). (webpage) Last accessed 2014-08-07. [Online]. Available: http:\/\/www.antlr.org"},{"key":"e_1_2_1_8_1","unstructured":"RTFM\n\n  \n  : Real-Time For the Masses. (webpage) Last accessed 2014-07-28. [Online]. Available: http:\/\/www.rtfm-lang.org  RTFM: Real-Time For the Masses. (webpage) Last accessed 2014-07-28. [Online]. Available: http:\/\/www.rtfm-lang.org"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511811432"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/365813.365821"},{"key":"e_1_2_1_11_1","unstructured":"A. Turing \"On computable numbers with an application to the Entscheidungsproblem \" Proceeding of the London Mathematical Society 1936.  A. Turing \"On computable numbers with an application to the Entscheidungsproblem \" Proceeding of the London Mathematical Society 1936."},{"key":"e_1_2_1_12_1","first-page":"6","article-title":"A Use Case Driven Approach, 1st ed","author":"Jacobson I.","year":"1992","journal-title":"Addison-Wesley Professional"},{"key":"e_1_2_1_13_1","unstructured":"P. Lindgren D. Pereira J. Eriksson M. Lindner and L. M. Pinho \"RTFM-lang Static Semantics for Systems with Mixed Criticality \" in Ada-Europe 2014:  19th International Conference on Reliable Software Technologies 2014.  P. Lindgren D. Pereira J. Eriksson M. Lindner and L. M. Pinho \"RTFM-lang Static Semantics for Systems with Mixed Criticality \" in Ada-Europe 2014: 19th International Conference on Reliable Software Technologies 2014."},{"key":"e_1_2_1_14_1","unstructured":"CompCert. (webpage) Last accessed 2014-08-06. [Online]. Available: http:\/\/compcert.inria.fr  CompCert. (webpage) Last accessed 2014-08-06. [Online]. Available: http:\/\/compcert.inria.fr"},{"key":"e_1_2_1_15_1","unstructured":"The Coq Proof Assistant. (webpage) Last accessed 2014-08-06. [Online]. Available: http:\/\/www.lix.polytechnique.fr\/coq\/  The Coq Proof Assistant. (webpage) Last accessed 2014-08-06. [Online]. Available: http:\/\/www.lix.polytechnique.fr\/coq\/"},{"volume-title":"Switzerland: Int. Electrotech. Commission","year":"2005","author":"International Standard IEC","key":"e_1_2_1_16_1"},{"volume-title":"IEEE","year":"2014","author":"Lindgren P.","key":"e_1_2_1_17_1"},{"key":"e_1_2_1_18_1","unstructured":"S. A. Edwards \"An introduction to objective caml \" 2010. [Online]. Available: http:\/\/www.cs.columbia.edu\/~sedwards\/classes\/2012\/w4115-spring\/ocaml.pdf  S. A. Edwards \"An introduction to objective caml \" 2010. [Online]. Available: http:\/\/www.cs.columbia.edu\/~sedwards\/classes\/2012\/w4115-spring\/ocaml.pdf"}],"container-title":["ACM SIGBED Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3036686.3036690","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3036686.3036690","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:50:26Z","timestamp":1750218626000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3036686.3036690"}},"subtitle":["course in compiler construction"],"short-title":[],"issued":{"date-parts":[[2017,1,5]]},"references-count":18,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,1,5]]}},"alternative-id":["10.1145\/3036686.3036690"],"URL":"https:\/\/doi.org\/10.1145\/3036686.3036690","relation":{},"ISSN":["1551-3688"],"issn-type":[{"type":"electronic","value":"1551-3688"}],"subject":[],"published":{"date-parts":[[2017,1,5]]},"assertion":[{"value":"2017-01-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}