Abstract
This paper presents a functional reactive embedded domain-specific language (EDSL) for resource-constrained embedded systems and its efficient execution method. In the language, time-varying values changes at discrete points of time rather than continuously. Combined with a mechanism to let users designate the update interval of values, it is possible to derive the minimal value-updates required to produce the user-desired output. Also, the event-driven backend asynchronously updates an input value when its value is required. In this way, we can greatly reduce the number of updates.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
A kind of human stress indicators. It is empirically known that 50% of people feel uncomfortable if it reaches 75.
References
Ankner, J., Svenningsson, J.: An EDSL approach to high performance Haskell programming. In: ACM SIGPLAN Symposium on Haskell (Haksell 2013), pp. 1–12. ACM (2013). https://doi.org/10.1145/2503778.2503789
Axelsson, E., Claessen, K., Sheeran, M., Svenningsson, J., Engdal, D., Persson, A.: The design and implementation of Feldspar: an embedded language for digital signal processing. In: IFL 2010: Implementation and Application of Functional Languages. Lecture Notes in Computer Science, vol. 6647, pp. 121–136. Springer, Berlin (2010). https://doi.org/10.1007/978-3-642-24276-2_8
Bainomugisha, E., Carreton, A.L., Van Cutsem, T., Mostinckx, S., De Meuter, W.: A survey on reactive programming. ACM Comput. Surv. 45(4), 52:1–52:34 (2013). https://doi.org/10.1145/2501654.2501666
Chlipala, A.: Parametric higher-order abstract syntax for mechanized semantics. In: 13th ACM SIGPLAN International Conference on Functional Programming (ICFP 2008), pp. 143–156. ACM (2008). https://doi.org/10.1145/1411204.1411226
Claessen, K., Sands, D.: Observable sharing for functional circuit description. In: Advances in Computing Science (ASIAN ’99). Lecture Notes in Computer Science, vol. 1742, pp. 62–73. Springer, Berlin (1999). https://doi.org/10.1007/3-540-46674-6_7
Elliott, C.: Push-pull functional reactive programming. In: Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell (Haskell 2009), pp. 25–36. ACM (2009). https://doi.org/10.1145/1596638.1596643
Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. J. Funct. Program. 13(3), 455–481 (2003). https://doi.org/10.1017/S0956796802004574
Gill, A.: Domain-specific languages and code synthesis using Haskell. ACM Queue 12(4) (2014). https://doi.org/10.1145/2611429.2617811
Helbling, C., Guyer, S.Z.: Juniper: A functional reactive programming language for the Arduino. In: 4th International Workshop on Functional Art, Music, Modelling, and Design (FARM 2016), pp. 8–16. ACM (2016). https://doi.org/10.1145/2975980.2975982
Mainland, G., Morrisett, G.: Nikola: Embedding compiled GPU functions in Haskell. In: 3rd ACM Symposium on Haskell (Haskell 2010), pp. 67–78. ACM (2010). https://doi.org/10.1145/1863523.1863533
Mainland, G., Morrisett, G., Welsh, M.: Flask: Staged functional programming for sensor networks. In: 13th ACM SIGPLAN International Conference on Functional Programming (ICFP 2008), pp. 335–346. ACM (2008). https://doi.org/10.1145/1411204.1411251
Oliveira, B.C.d.S., Löh, A.: Abstract syntax graphs for domain specific languages. In: Workshop on Partial Evaluation and Program Manipulation (PEPM 2013), pp. 87–96. ACM SIGPLAN, ACM (2013). https://doi.org/10.1145/2426890.2426909
Sawada, K., Watanabe, T.: Emfrp: A functional reactive programming language for small-scale embedded systems. In: MODULARITY Companion 2016: Companion Proceedings of the 15th International Conference on Modularity, pp. 36–44. ACM (2016). https://doi.org/10.1145/2892664.2892670
Suzuki, K., Nagayama, K., Sawada, K., Watanabe, T.: CFRP: A functional reactive programming language for small-scale embedded systems. In: Theory and Practice of Computation (Proceedings of WCTP 2016), pp. 1–13. World Scientific (2017). https://doi.org/10.1142/9789813234079_0001
Acknowledgements
This work is supported in part by JSPS KAKENHI Grant No. 18K11236.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Wang, S., Watanabe, T. (2020). Functional Reactive EDSL with Asynchronous Execution for Resource-Constrained Embedded Systems. In: Lee, R. (eds) Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing. SNPD 2019. Studies in Computational Intelligence, vol 850. Springer, Cham. https://doi.org/10.1007/978-3-030-26428-4_12
Download citation
DOI: https://doi.org/10.1007/978-3-030-26428-4_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-26427-7
Online ISBN: 978-3-030-26428-4
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)