Overview

This section provides and overview of the Hum language and system.

Goal

Hum and the Hum run-time system "Rube" are designed to make it possible to write useful programs in as natural a language as possible. The language notation is designed to allow all instructions to be written as simple English statements. The syntax is completely relaxed. While there are certain recommended forms, they are mainly a matter of style - to assure consistency and readability.

Notations

While Hum is designed with a relaxed and natural syntax, Hum is still a programming language; and thus, it is still a set of notations. The notations are designed to allow one to express an idea in a way that is clear, brief, and reasonably natural. Rather than designing notations that are convenient for the translation software, we have designed a set of notations that are convenient for the human authors and readers.

Frames

One does not so much   program   the Hum system as   advise   it.
Different kinds of advice are given in different types of frames.

Frames are explained in some detail in the Frame Types section.

Actors

Actors provide the connection between role frames and reality. A real-world actor might be a human being or a robot of some type. (In this context, a robot could be any programmable device.) A virtual-world actor might be an avatar or a simulation of a robot. Thus, an actor provides the connection to real-world reality or to a virtual reality.

Actors are assigned to one or more roles. The only requirement for an actor is that it can "understand" any action statement in the action frames that are related to an assigned role.

Actors may be programmed outside of the Hum system. Thus, they might be programmed in any appropriate programming language. Human actors are generally trained (not programmed) and will understand the Hum instructions directly.

Resources

The Simple run-time system is designed to operate in a business environment. Accordingly, it contains the necessary subsystems to track inventories of resources and account for their use. The system even includes a light-weight accounting system.

Resources are allocated from resource pools as needed. If the resources are parts and material, you can think of such a pool as an inventory. Actors are resources and they are allocated from pools also. If the actors are humans, you can think of such a pool as a staffing pool.

Simulations and Games

If the actors are operating in a virtual reality, we are running a simulation. The purpose of the simulation might be to tune-up a business process, to study an ecology, or to operate a gaming environment.

Hum does not (at this time) include a notation for specifying virtual world landscapes. But the Hum notations are sufficient for defining the defense strategies in single-player and multi-player games.