Abstract
The Haskino library provides a mechanism for programming the Arduino microcontroller boards in high level, strongly typed Haskell instead of the low level C language normally used. Haskino builds on previous libraries for Haskell based Arduino programming by utilizing the recently developed remote monad design pattern. This paper presents the design and implementation of the two-level Haskino library. This first level of Haskino requires communication from the host running the Haskell program and the target Arduino over a serial link. We then investigate extending the initial version of the library with a deep embedding allowing us to cut the cable, and run the Arduino as an independent system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Erkok, L.: Hackage package hArduino-0.9 (2014)
Gill, A., Sculthorpe, N., Dawson, J., Eskilson, A., Farmer, A., Grebe, M., Rosenbluth, J., Scott, R., Stanton, J.: The remote monad design pattern. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 59–70. ACM (2015)
Steiner, H.C.: Firmata: Towards making microcontrollers act like extensions of the computer, pp. 125–130 (2009)
Elliott, C.: Hackage package boolean-0.2.3 (2013)
Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming (1997)
Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. J. Funct. Program. 13(2), 455–481 (2003)
Elliott, T., Pike, L., Winwood, S., Hickey, P., Bielman, J., Sharp, J., Seidel, E., Launchbury, J.: Guilt free ivory. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 189–200. ACM (2015)
Axelsson, E., Claessen, K., Dévai, G., Horváth, Z., Keijzer, K., Lyckegård, B., Persson, A., Sheeran, M., Svenningsson, J., Vajdax, A.: Feldspar: a domain specific language for digital signal processing algorithms. In: MEMOCODE 2010, pp. 169–178 (2010)
Axelsson, E., Claessen, K., Sheeran, M., Svenningsson, J., Engdal, D., Persson, A.: The design and implementation of feldspar. In: Hage, J., Morazán, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 121–136. Springer, Heidelberg (2011)
Persson, A., Axelsson, E., Svenningsson, J.: Generic monadic constructs for embedded languages. In: Gill, A., Hage, J. (eds.) IFL 2011. LNCS, vol. 7257, pp. 85–99. Springer, Heidelberg (2012)
Sculthorpe, N., Bracker, J., Giorgidze, G., Gill, A.: The constrained-monad problem. In: Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, pp. 287–298. ACM (2013)
Farmer, A., Sculthorpe, N., Gill, A.: Reasoning with the HERMIT: tool support for equational reasoning on GHC core programs. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 23–34. ACM (2015)
Svenningsson, J., Axelsson, E.: Combining deep and shallow embedding for EDSL. In: Loidl, H.-W., Peña, R. (eds.) TFP 2012. LNCS, vol. 7829, pp. 21–36. Springer, Heidelberg (2013)
Svenningsson, J.D., Svensson, B.J.: Simple and compositional reification of monadic embedded languages. In: Proceedings of the 18th International Conference on Functional Programming, pp. 299–304. ACM (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Grebe, M., Gill, A. (2016). Haskino: A Remote Monad for Programming the Arduino. In: Gavanelli, M., Reppy, J. (eds) Practical Aspects of Declarative Languages. PADL 2016. Lecture Notes in Computer Science(), vol 9585. Springer, Cham. https://doi.org/10.1007/978-3-319-28228-2_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-28228-2_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-28227-5
Online ISBN: 978-3-319-28228-2
eBook Packages: Computer ScienceComputer Science (R0)