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

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.

[1]  Benjamin M. Brosgol,et al.  Real-time convergence of Ada and Java™ , 2001, SIGAda.

[2]  John Hawkins,et al.  An Overview of Systematic Development of Parallel Systems for Reconfigurable Hardware (Research Note) , 2002, Euro-Par.

[3]  Robin Milner,et al.  Computing Tomorrow: Future Research Directions in Computer Science , 1997 .

[4]  Greg J. Michaelson,et al.  Predictable Space Behaviour in FSM-Hume , 2002, IFL.

[5]  Anish Arora,et al.  Book Review: Verification of Sequential and Concurrent Programs by Krzysztof R. Apt and Ernst-Riidiger Olderog (Springer-Verlag New York, 1997) , 1998, SIGA.

[6]  Paul Hudak,et al.  Real-time FRP , 2001, ICFP '01.

[7]  Colin Runciman,et al.  Extending a functional programming system for embedded applications , 1995, Softw. Pract. Exp..

[8]  Paul Hudak,et al.  Report on the Non-Strict Functional Language , 1997 .

[9]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[10]  John A. McDermid Engineering safety-critical systems , 1996 .

[11]  Kevin Hammond Hume: a bounded time concurrent language , 2000, ICECS 2000. 7th IEEE International Conference on Electronics, Circuits and Systems (Cat. No.00EX445).

[12]  Mads Tofte,et al.  Region-based Memory Management , 1997, Inf. Comput..

[13]  John Hughes,et al.  Recursion and dynamic data-structures in bounded space: towards embedded ML programming , 1999, ICFP '99.

[14]  Yanhong A. Liu,et al.  Automatic Accurate Stack Space and Heap Space Analysis for High-Level Languages , 2000 .

[15]  Peter Amey,et al.  Correctness By Construction: Better Can Also Be Cheaper , 2002 .

[16]  John Launchbury,et al.  Microprocessor specification in Hawk , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[17]  BrosgolBen,et al.  Real-time convergence of Ada and Java , 2001 .

[18]  Nik Shaylor,et al.  A Just-in-Time Compiler for Memory-Constrained Low-Power Devices , 2002, Java Virtual Machine Research and Technology Symposium.

[19]  M. Hofmann A Type System for Bounded Space and Functional In-Place Update , 2000, Nord. J. Comput..

[20]  Kevin Hammond The Dynamic Properties of Hume: A Functionally-Based Concurrent Language with Bounded Time and Space Behaviour , 2000, IFL.

[21]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1991, Texts and Monographs in Computer Science.

[22]  Hans-Wolfgang Loidl,et al.  Cost Analysis Using Automatic Size and Time Inference , 2002, IFL.

[23]  D. A. Turner,et al.  Elementary Strong Functional Programming , 1995, FPLE.

[24]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[25]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[26]  Michael Barabanov,et al.  A Linux-based Real-Time Operating System , 1997 .

[27]  Mary Sheeran,et al.  A Tutorial on Lava: A Hardware Description and Verification System , 2000 .

[28]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[29]  Werner Kluge,et al.  Implementation of Functional Languages , 1996, Lecture Notes in Computer Science.

[30]  R. M. BURSTALL Inductively Defined Functions in Functional Programming Languages , 1987, J. Comput. Syst. Sci..

[31]  Rod M. Burstall Inductively Defined Functions (Extended Abstract) , 1985, TAPSOFT, Vol.1.

[32]  D J Evans,et al.  Parallel processing , 1986 .

[33]  John Barnes,et al.  High Integrity Ada: The Spark Approach , 1997 .