Hume Programming Language

Stumbled across the Hume Programming Language while looking for some ML info. Hadn't seen it discussed on LtU before:

Hume is 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 metaprogramming features, whilst seeking to guarantee strong space/time behaviour and maintaining overall determinacy.

A bit too preliminary and research oriented for my tastes, but the main point of interest is the attempt to provide static guarantees of resource usage (time and memory). A binary version for Linux and Mac is available, but the source code is not available for other builds (written in GHC which I notice is now available for a number of target platforms since last i checked).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Finally

...some respect for embedded systems and real-time requirements. Good find.

Embeded has always been a wide field...

...from what I've witnessed firsthand. Some times you do have to get down to the metal and count clock cycles and skew. However, most of the embedded design I was involved with had more pieces that were at a very high level of abstraction where timing wasn't ultra-critical, other than completion within a reasonable amount of time.

Am no expert in these matters, but I think it's a rather hard problem they are trying to tackle. Recursion and looping make the timing and memory constraints become unpredictable. The Hume people are trying to address this by limiting the available operations without sacrificing higher order programming.

Offhand, I would say it's an intractable problem, but what do I know. :-)