# Concurrent Euclid

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Concurrent_Euclid
> Markdown URL: https://mediated.wiki/source/Concurrent_Euclid.md
> Source: https://en.wikipedia.org/wiki/Concurrent_Euclid
> Source revision: 1013655224
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

**Concurrent Euclid** (**ConEuc**) is a concurrent descendant of the [Euclid programming language](/source/Euclid_programming_language) designed by [James Cordy](/source/James_Cordy) and [Ric Holt](/source/Ric_Holt), then at the [University of Toronto](/source/University_of_Toronto), in 1980. ConEuc was designed for concurrent, high performance, highly reliable [system software](/source/System_software), such as [operating systems](/source/Operating_systems), [compilers](/source/Compilers) and [embedded microprocessor](/source/Embedded_microprocessor) systems. The [TUNIS](/source/TUNIS) operating system, a [Unix](/source/Unix) variant, was implemented entirely in Concurrent Euclid. ConEuc extends a core subset of Euclid with [processes](/source/Process_(computing)) and [monitors](/source/Monitor_(synchronization)) (as specified by [C.A.R. Hoare](/source/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. High quality code generators for several computers, including the [PDP-11](/source/PDP-11), [VAX-11](/source/VAX-11), [Motorola 68000](/source/Motorola_68000) and [Motorola 6809](/source/Motorola_6809) were developed that produced code comparable to the best [C](/source/C_(programming_language)) compilers. Concurrent Euclid programs that used concurrency could be run on a [bare machine](/source/Bare_machine) (supported by a small assembly language kernel), or in simulated mode as an ordinary process running under an operating system.

The [Turing programming language](/source/Turing_programming_language) is a direct descendant of Concurrent Euclid and its [Turing Plus](/source/Turing_Plus_(programming_language)) variant eventually replaced ConEuc in most applications.

## References

- J.R. Cordy and R.C. Holt 1980. Specification of Concurrent Euclid. Technical reports CSRI-115 (July 1980) and CSRI-133 (August 1981), Computer Systems Research Institute, University of Toronto. 54 pages.
- R.C. Holt 1982. Concurrent Euclid, the Unix System and Tunis. Addison-Wesley 1982. 323 pages.
- [R.C. Holt 1982. A short introduction to Concurrent Euclid.](http://portal.acm.org/citation.cfm?id=947931) ACM SIGPLAN Notices 17, 5 (May. 1982), 60-79.
- [R.C. Holt 1982. Tunis: a Unix look-alike written in Concurrent Euclid.](http://portal.acm.org/citation.cfm?id=1041466.1041467) SIGOPS Operating Systems Review 16, 1 (January 1982), 4-5.

---
Adapted from the Wikipedia article [Concurrent Euclid](https://en.wikipedia.org/wiki/Concurrent_Euclid) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Concurrent_Euclid?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
