Skip to main content

Hume: A Domain-Specific Language for Real-Time Embedded Systems

  • Conference paper

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

Abstract

This paper describes Hume: a novel domain-specific language whose purpose is to explore the expressibility/costability spectrum in resource-constrained systems, such as real-time embedded or control 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 metaprogramming features, whilst seeking to guarantee strong space/time behaviour and maintaining overall determinacy.

Keywords

  • Abstract Machine
  • Exception Handler
  • Functional Language
  • Java Virtual Machine
  • Hume Design

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This work is generously supported by a grant from the UK’s Engineering and Physical Sciences Research Council.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-540-39815-8_3
  • Chapter length: 20 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   84.99
Price excludes VAT (USA)
  • ISBN: 978-3-540-39815-8
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   109.00
Price excludes VAT (USA)

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. Apt, K.R., Olderog, E.-R.: Verification of Sequential and Concurrent Programs, 2nd edn. Springer, Heidelberg (1997)

    MATH  Google Scholar 

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

    MATH  Google Scholar 

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

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

    MATH  Google Scholar 

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

    Google Scholar 

  7. Brosgol, B., Dobbing, B.: Real-Time Convergence of Ada and Java. In: Proc. ACM SIGAda Annual Intl. Conf., Bloomington MN, September-October 2001, pp. 11–26 (2001)

    Google Scholar 

  8. Burns, A., Wellings, A.: Real-Time Systems and Programming Languages, 3rd edn., vol. Ch. 17, pp. 653–684. Addison Wesley Longman, Amsterdam (2001)

    Google Scholar 

  9. Claessen, K., Sheeran, M.: A Tutorial on Lava: a Hardware Description and Verification System., Tech. Rept., Chalmers Univ. of Tech., Sweden (August 2000)

    Google Scholar 

  10. Burstall, R.: Inductively Defined Functions in Functional Programming Languages, Dept. of Comp. Sci., Univ. of Edinburgh, ECS-LFCS-87-25 (April 1987)

    Google Scholar 

  11. Hammond, K.: Hume: a Bounded Time Concurrent Language. In: Proc. IEEE Conf. on Electronics and Control Systems (ICECS ’2K), Kaslik, Lebanon, December 2000, pp. 407–411 (2000)

    Google Scholar 

  12. Hammond, K.: The Dynamic Properties of Hume: a Functionally-Based Concurrent Language with Bounded Time and Space Behaviour. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 122–139. Springer, Heidelberg (2001)

    Google Scholar 

  13. Hammond, K., Michaelson, G.J.: The Mine Drainage Control System in Hume (January 2003), http://www.hume-lang.org/examples/pump

  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)

    CrossRef  Google Scholar 

  15. Hawkins, J., Abdallah, A.: An Overview of Systematic Development of Parallel Systems for Reconfigurable Hardware. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 615–619. Springer, Heidelberg (2002)

    CrossRef  Google Scholar 

  16. Hofmann, M.: A Type System for Bounded Space and Functional In-Place Update. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 165. Springer, Heidelberg (2000)

    CrossRef  Google Scholar 

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

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

  19. Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (April 1999)

    Google Scholar 

  20. 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)

    CrossRef  Google Scholar 

  21. Matthews, J.L., Launchbury, J., Cook, B.: Microprocessor Specification in Hawk. In: Proc. Intl. Conf. on Computer Science, Chicago (1998)

    Google Scholar 

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

    Google Scholar 

  23. Rebón Portillo, A.J., 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) (to appear)

    CrossRef  Google Scholar 

  24. 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 Worldwide 2000 Java Developers Conf., San Francisco (June 2000)

    Google Scholar 

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

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

    MATH  MathSciNet  Google Scholar 

  27. Turner, D.A.: Elementary Strong Functional Programming. In: Hartel, P.H., Plasmeijer, R. (eds.) FPLE 1995. LNCS, vol. 1022. Springer, Heidelberg (1995)

    Google Scholar 

  28. Unnikrishnan, L., Stoller, S.D., Liu, Y.A.: Automatic Accurate Stack Sapce and Heap-Space Analysis for High-Level Languages., Technical Report TR-538, Dept. of Comp. Sci., Indiana University (2000)

    Google Scholar 

  29. Wallace, M., Runciman, C.: Extending a Functional Programming System for Embedded Applications. Software: Practice & Experience 25(1) (January 1995)

    Google Scholar 

  30. Wan, Z., Taha, W., Hudak, P.: Real-Time FRP. In: Proc. Intl Conf. on Funct. Prog. — ICFP 2001, Firenze, Italy (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hammond, K., Michaelson, G. (2003). Hume: A Domain-Specific Language for Real-Time Embedded Systems. In: Pfenning, F., Smaragdakis, Y. (eds) Generative Programming and Component Engineering. GPCE 2003. Lecture Notes in Computer Science, vol 2830. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39815-8_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39815-8_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20102-1

  • Online ISBN: 978-3-540-39815-8

  • eBook Packages: Springer Book Archive