Humus is a pure actor-based programming language that provides a foundation for software developers to build reliable concurrent computer systems. It features a referentially transparent pure-functional core for defining values. These values become the messages between (and specify the behavior of) dynamically configured actors.
Actor behaviors are composed of concurrent, rather than sequential, primitive operations. Groups of actors, called configurations, may also be composed without affecting their operation. This allows implementation of systems with high scalability and low latency in both multi-core and distributed execution environments.
The theoretical foundations of Humus have mathematically rigorous semantics . Unlike Erlang or Scala, there are no blocking operations and all expressions are completely free of side-effects. Mutable state is entirely encapsulated within actors and may be affected only by sending asynchronous messages. Humus is designed around the principle of separating values and effects.
For more information about Humus, please see the following:
- G. Agha, I. Mason, S. Smith, and C. Talcott. A Foundation for Actor Computation. Journal of Functional Programming, Vol. 7, No. 1, January 1997.