Concurrent Euclid

The TUNIS operating system, a Unix variant, was implemented entirely in Concurrent Euclid.

ConEuc extends a core subset of Euclid with processes and monitors (as specified by C.A.R.

Hoare) as well as language constructs needed for systems programming including separate compilation, variables at absolute addresses, type converters, long integers and other features.

ConEuc was implemented by a small (50k bytes), fast, portable compiler that was self-compiling and had replaceable code generators.

Concurrent Euclid programs that used concurrency could be run on a bare machine (supported by a small assembly language kernel), or in simulated mode as an ordinary process running under an operating system.