Skip to main content

The Design of Hume: A High-Level Language for the Real-Time Embedded Systems Domain

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3016))

Abstract

This chapter describes the design of Hume: a domain-specific language targeting real-time embedded systems. Hume provides a number of high level features including higher-order functions, polymorphic types, arbitrary but sized user-defined data structures, asynchronous processes, lightweight exception handling, automatic memory management and domain-specific meta-programming features, whilst seeking to guarantee strong space/time behaviour and maintaining overall determinacy.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Amey, P.: Correctness by Construction: Better can also be Cheaper. CrossTalk: the Journal of Defense Software Engineering, 24–28 (March 2002)

    Google Scholar 

  2. Armstrong, J., Virding, S.R., Williams, M.C.: Concurrent Programming in Erlang. Prentice-Hall, Englewood Cliffs (1993)

    MATH  Google Scholar 

  3. Barabanov, M.: A Linux-based Real-Time Operating System, M.S. Thesis, Dept. of Comp. Sci., New Mexico Institute of Mining and Technology ( June 1997)

    Google Scholar 

  4. Barnes, J.: High Integrity Ada: the Spark Approach. Addison-Wesley, Reading (1997)

    MATH  Google Scholar 

  5. Benveniste, A., Guernic, P.L.: Synchronous Programming with Events and Relations: the Signal Language and its Semantics. Science of Computer Programming 16, 103–149 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  6. Berry, G.: The Foundations of Esterel. Proof, Language, and Interaction. MIT Press, Cambridge (2000)

    Google Scholar 

  7. Bollela, G., et al.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)

    Google Scholar 

  8. Caspi, P., Pouzet, M.: Synchronous Kahn Networks. SIGPLAN Notices 31(6), 226–238 (1996)

    Article  Google Scholar 

  9. Chakravarty, M. (ed.), Finne, S.O., Henderson, F., Kowalczyk, M., Leijen, D., Marlow, S., Meijer, E., Panne, S., Peyton Jones, S.L., Reid, A., Wallace, M., Weber, M.: The Haskell 98 Foreign Function Interface 1.0 (December 2003), http://www.cse.unsw.edu.au/~chak/haskell/ffi

  10. Corbet, J., Rubini, A.: Linux Device Drivers, 2nd edn. O’Reilly, Sebastopol (2001)

    Google Scholar 

  11. The Ganssle Group. Perfecting the Art of Building Embedded Systems (May 2003), http://www.ganssle.com

  12. Halbwachs, N., Pilaud, D., Ouabdesselam, F.: Specificying, Programming and Verifying Real-Time Systems using a Synchronous Declarative Language. In: Sifakis, J. (ed.) CAV 1989. LNCS, vol. 407, pp. 213–231. Springer, Heidelberg (1990)

    Google Scholar 

  13. Hammond, K.: An Abstract Machine Implementation for Embedded Systems Applications in Hume. Submitted to 2003 Workshop on Implementations of Functional Languages (IFL 2003), Edinburgh (2003)

    Google Scholar 

  14. Hammond, K., Michaelson, G.J.: Predictable Space Behaviour in FSM-Hume. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  15. Hammond, K., Michaelson, G.J.: Hume: A Domain-Specific Language for Real-Time Embedded Systems. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 37–56. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  16. Hammond, K., Loidl, H.-W., Rebón Portillo, A.J., Vasconcelos, P.: A Type-and- Effect System for Determining Time and Space Bounds of Recursive Functional Programs (2003) (in Preparation)

    Google Scholar 

  17. Harel, D.: Statecharts: a Visual Formalism for Complex Systems. Science of Computer Programming 8, 231–274 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  18. Hofmann, M.: A Type System for Bounded Space and Functional In-place Update. Nordic Journal of Computing 7(4), 258–289 (2000)

    MATH  MathSciNet  Google Scholar 

  19. Hofmann, M., Jost, S.: Static Prediction of Heap Space Usage for First-Order Functional Programs. In: Proc. POPL 2003 — Symposium on Principles of Programming Languages, New Orleans, LA, USA, January 2003. ACM Press, New York (2003)

    Google Scholar 

  20. Hughes, R.J.M., Pareto, L., Sabry, A.: Proving the Correctness of Reactive Systems Using Sized Types. In: Proc. POPL 1996 — ACM Symp. on Principles of Programming Languages, St. Petersburg Beach, FL (January 1996)

    Google Scholar 

  21. Hughes, R.J.M., Pareto, L.: Recursion and Dynamic Data Structures in Bounded Space: Towards Embedded ML Programming. In: Proc. 1999 ACM Intl. Conf. on Functional Programming (ICFP 1999), Paris, France, pp. 70–81 (1999)

    Google Scholar 

  22. Johnson, S.D.: Synthesis of Digital Designs from Recursive Equations. MIT Press, Cambridge (1984); ISBN 0-262-10029-0

    Google Scholar 

  23. McDermid, J.: Engineering Safety-Critical Systems. In: Wand, I., Milner, R. (eds.) Computing Tomorrow: Future Research Directions in Computer Science, pp. 217–245. Cambridge University Press, Cambridge (1996)

    Chapter  Google Scholar 

  24. O’Donnell, J.T.: The Hydra Hardware Description Language. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 143–164. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  25. Peyton Jones, S.L. (ed.), Augustsson, L., Boutel, B., Burton, F.W., Fasel, J.H., Gordon, A.D., Hammond, K., Hughes, R.J.M., Hudak, P., Johnsson, T., Jones, M.P., Peterson, J.C., Reid, A., Wadler, P.L.: Report on the Non-Strict Functional Language, Haskell (Haskell 1998). Yale University (1999)

    Google Scholar 

  26. Peyton Jones, S.L., Gordon, A.D., Finne, S.O.: Concurrent Haskell. In: Proc. ACM Symp. on Princ. of Prog. Langs., St Petersburg Beach, Fl, January 1996, pp. 295–308 (1996)

    Google Scholar 

  27. Pointon, R.: A Rate Analysis for Hume. Heriot-Watt University (2004) (in preparation)

    Google Scholar 

  28. Portillo, A.J.R., Hammond, K., Loidl, H.-W., Vasconcelos, P.: Automatic Size and Time Inference. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670. Springer, Heidelberg (2003)

    Google Scholar 

  29. Sakkinen, M.: The Darker Side of C++ Revisited, Technical Report 1993-I-13 (1993), http://www.kcl.ac.uk/kis/support/cit//fortran/cpp/dark-cpl.ps

  30. Sayeed, T., Shaylor, N., Taivalsaari, A.: Connected, Limited Device Configuration (CLDC) for the J2ME Platform and the K Virtual Machine (KVM). In: Proc. JavaOne – Sun’s World wide 2000 Java Developers Conf., San Francisco (June 2000)

    Google Scholar 

  31. Shaylor, N.: A Just-In-Time Compiler for Memory Constrained Low-Power Devices. In: Proc. 2nd Usenix Symposium on Java Virtual Machine Research and Technlog (JVM 2002), San Francisco (August 2002)

    Google Scholar 

  32. Schoitsch, E.: Embedded Systems – Introduction. ERCIM News 52, 10–11 (2003)

    Google Scholar 

  33. Wan, Z., Taha, W., Hudak, P.: Event-driven FRP. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, p. 155. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  34. Tofte, M., Talpin, J.-P.: Region-based Memory Management. Information and Control 132(2), 109–176 (1997)

    MATH  MathSciNet  Google Scholar 

  35. Vasconcelos, P.B., Hammond, K.: Inferring Cost Equations for Recursive, Polymorphic and Higher-Order Functional Programs. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 86–101. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Hammond, K., Michaelson, G. (2004). The Design of Hume: A High-Level Language for the Real-Time Embedded Systems Domain. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds) Domain-Specific Program Generation. Lecture Notes in Computer Science, vol 3016. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25935-0_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25935-0_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22119-7

  • Online ISBN: 978-3-540-25935-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics