Skip to main content

Functional Reactive EDSL with Asynchronous Execution for Resource-Constrained Embedded Systems

  • Chapter
  • First Online:
Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2019)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://github.com/psg-titech/hae.

  2. 2.

    https://www.mbed.com/en/platform/mbed-os/.

  3. 3.

    A kind of human stress indicators. It is empirically known that 50% of people feel uncomfortable if it reaches 75.

References

  1. 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

  2. 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

    Chapter  Google Scholar 

  3. 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

    Article  Google Scholar 

  4. 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

  5. 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

    Chapter  Google Scholar 

  6. 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

  7. Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. J. Funct. Program. 13(3), 455–481 (2003). https://doi.org/10.1017/S0956796802004574

    Article  MATH  Google Scholar 

  8. Gill, A.: Domain-specific languages and code synthesis using Haskell. ACM Queue 12(4) (2014). https://doi.org/10.1145/2611429.2617811

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

Download references

Acknowledgements

This work is supported in part by JSPS KAKENHI Grant No. 18K11236.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Takuo Watanabe .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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

Publish with us

Policies and ethics