Advertisement

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

  • Kevin Hammond
  • Greg Michaelson
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 2.
    Apt, K.R., Olderog, E.-R.: Verification of Sequential and Concurrent Programs, 2nd edn. Springer, Heidelberg (1997)zbMATHGoogle Scholar
  3. 3.
    Armstrong, J., Virding, S.R., Williams, M.C.: Concurrent Programming in Erlang. Prentice-Hall, Englewood Cliffs (1993)zbMATHGoogle Scholar
  4. 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. 5.
    Barnes, J.: High Integrity Ada: the Spark Approach. Addison-Wesley, Reading (1997)zbMATHGoogle Scholar
  6. 6.
    Bollela, G., et al.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)Google Scholar
  7. 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. 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. 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. 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. 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. 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. 13.
    Hammond, K., Michaelson, G.J.: The Mine Drainage Control System in Hume (January 2003), http://www.hume-lang.org/examples/pump
  14. 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)CrossRefGoogle Scholar
  15. 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)CrossRefGoogle Scholar
  16. 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)CrossRefGoogle Scholar
  17. 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. 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. 19.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (April 1999)Google Scholar
  20. 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)CrossRefGoogle Scholar
  21. 21.
    Matthews, J.L., Launchbury, J., Cook, B.: Microprocessor Specification in Hawk. In: Proc. Intl. Conf. on Computer Science, Chicago (1998)Google Scholar
  22. 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. 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)CrossRefGoogle Scholar
  24. 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. 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. 26.
    Tofte, M., Talpin, J.-P.: Region-based Memory Management. Information and Control 132(2), 109–176 (1997)zbMATHMathSciNetGoogle Scholar
  27. 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. 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. 29.
    Wallace, M., Runciman, C.: Extending a Functional Programming System for Embedded Applications. Software: Practice & Experience 25(1) (January 1995)Google Scholar
  30. 30.
    Wan, Z., Taha, W., Hudak, P.: Real-Time FRP. In: Proc. Intl Conf. on Funct. Prog. — ICFP 2001, Firenze, Italy (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Kevin Hammond
    • 1
  • Greg Michaelson
    • 2
  1. 1.School of Computer ScienceUniversity of St AndrewsSt Andrews
  2. 2.Dept. of Mathematics and Computer ScienceHeriot-Watt UniversityEdinburgh

Personalised recommendations