Sat Sep 13 17:49:49 CEST 2008


FSM-hume: check the primitives, and assimilate.


  Hume is a novel programming language, intended for resource bounded
  domains, designed at Heriot-Watt University and the University of St
  Andrews. It is based on concurrent finite state automata controlled
  by pattern matching and recursive functions over rich types. Hume
  has been designed as a multi-level language, where different levels
  have different formal properties amenable to different
  analyses. HW-Hume is a relatively impoverished language of bits and
  tuples for characterising hardware, with decidable equivalence and
  termination, and predictable time and space behaviour. FSM-Hume
  introduces fixed precision abstractions over bit tuples, including
  integers, reals, strings and vectors, with associated operators and
  conditional constructs. This level, oriented to wider finite state
  machine-based designs, has strongly bounded time and space
  behaviour. HO-Hume augments FSM-Hume with a repertoire higher-order
  function with known cost models, such as map and fold, and
  user-defined non-recursive functions. PR-Hume extends HO-Hume with
  user-defined primitive recursive bounded functions and full Hume is
  a Turing Complete language.

EDIT: Reading the introduction of the Hume report, the thing that
struck me is the use of a restricted set of higher order combinators
without full recursion in one of the intermediate steps.  Looks like a
more formal treatment of the higher order macro ideas that leaked into
Staapl. (p.e. ifte)