Type-Safe Functions and Tasks in a Shallow Embedded DSL for Microprocessors

The Internet of Things, IoT, brings us large amounts of connected computing devices that are equipped with dedicated sensors and actuators. These computing devices are typically driven by a cheap microprocessor system with a relatively slow processor and a very limited amount of memory. Due to the special input-output capabilities of IoT devices and their connections it is very attractive to execute (parts of) programs on these microcomputers.

[1]  Olivier Danvy,et al.  Defunctionalization at work , 2001, PPDP '01.

[2]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[3]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[4]  Patricia Johann,et al.  Foundations for structured programming with GADTs , 2008, POPL '08.

[5]  Jeremy Gibbons,et al.  Functional Programming for Domain-Specific Languages , 2013, CEFP.

[6]  Ralf Lämmel,et al.  Software extension and integration with type classes , 2006, GPCE '06.

[7]  Mark P. Jones,et al.  Language and program design for functional dependencies , 2008, Haskell '08.

[8]  Jacques Carette,et al.  Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages , 2007, Journal of Functional Programming.

[9]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[10]  Eijiro Sumii,et al.  MinCaml: a simple and efficient compiler for a minimal functional language , 2005, FDPE '05.

[11]  Marinus J. Plasmeijer,et al.  A Shallow Embedded Type Safe Extendable DSL for the Arduino , 2015, TFP.

[12]  John C. Reynolds,et al.  Definitional Interpreters for Higher-Order Programming Languages , 1972, ACM '72.

[13]  Bas Lijnse,et al.  Task-oriented programming in a pure functional language , 2012, PPDP.

[14]  Jan Martin Jansen Programming in the λ-Calculus: From Church to Scott and Back , 2013, The Beauty of Functional Code.

[15]  Chung-chieh Shan,et al.  Combinators for impure yet hygienic code generation , 2014, PEPM '14.

[16]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[17]  Marc Feeley,et al.  Compiling Higher-Order Languages into Fully Tail-Recursive Portable C , 1997 .

[18]  Apostolos Syropoulos,et al.  Steps in Scala: The expression problem , 2010 .

[19]  Flemming Nielson,et al.  Semantics with applications - a formal introduction , 1992, Wiley professional computing.

[20]  Timothy Roscoe,et al.  Filet-o-Fish: practical and dependable domain-specific languages for OS development , 2009, PLOS '09.

[21]  Roberto Ierusalimschy,et al.  Lua—An Extensible Extension Language , 1996, Softw. Pract. Exp..

[22]  Jan Martin Jansen,et al.  From Interpretation to Compilation , 2008, CEFP.

[23]  Marinus J. Plasmeijer,et al.  iTasks: executable specifications of interactive work flow systems for the web , 2007, ICFP '07.