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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Amey, P.: Correctness by Construction: Better can also be Cheaper. CrossTalk: the Journal of Defense Software Engineering, 24–28 (March 2002)
Armstrong, J., Virding, S.R., Williams, M.C.: Concurrent Programming in Erlang. Prentice-Hall, Englewood Cliffs (1993)
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)
Barnes, J.: High Integrity Ada: the Spark Approach. Addison-Wesley, Reading (1997)
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)
Berry, G.: The Foundations of Esterel. Proof, Language, and Interaction. MIT Press, Cambridge (2000)
Bollela, G., et al.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)
Caspi, P., Pouzet, M.: Synchronous Kahn Networks. SIGPLAN Notices 31(6), 226–238 (1996)
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
Corbet, J., Rubini, A.: Linux Device Drivers, 2nd edn. O’Reilly, Sebastopol (2001)
The Ganssle Group. Perfecting the Art of Building Embedded Systems (May 2003), http://www.ganssle.com
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)
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)
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)
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)
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)
Harel, D.: Statecharts: a Visual Formalism for Complex Systems. Science of Computer Programming 8, 231–274 (1987)
Hofmann, M.: A Type System for Bounded Space and Functional In-place Update. Nordic Journal of Computing 7(4), 258–289 (2000)
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)
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)
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)
Johnson, S.D.: Synthesis of Digital Designs from Recursive Equations. MIT Press, Cambridge (1984); ISBN 0-262-10029-0
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)
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)
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)
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)
Pointon, R.: A Rate Analysis for Hume. Heriot-Watt University (2004) (in preparation)
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)
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
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)
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)
Schoitsch, E.: Embedded Systems – Introduction. ERCIM News 52, 10–11 (2003)
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)
Tofte, M., Talpin, J.-P.: Region-based Memory Management. Information and Control 132(2), 109–176 (1997)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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