perelgut@utai.UUCP (Stephen Perelgut) (02/13/86)
Here is a brief history of the Euclid and Concurrent Euclid programming languages, taken from Chapter 3 of "Concurrent Euclid, the Unix Operating System, and Tunis", R.C. Holt, Addison-Wesley, 1983, ISBN 0-201-10694-9. Euclid was design in 1976 as a language for developing verifiable systems software, i.e., system software that can be proven correct. In a two year effort beginning in 1977 a subset called Toronto Euclid was implemented jointly by the University of Toronto and I.P. Sharpe Associates with the support of the USA Department of Defence and the Canadian Department of National Defence. Toronto Euclid was used experimentally at the University of Toronto for implementing compilers and for developing the Tunis operating system, which is compatible with Unix. This research led to the design and implementation of the language Concurrent Euclid in 1980-81. Concurrent Euclid omits the complex features of Euclid and adds features not in Toronto Euclid that were found to be necessary for systems programming. The most notable exceptions were concurrency and separate compilation. To answer the question posed on the network, Concurrent Euclid is a "real" language. It is being used in 100's of sites to implement compilers, operating systems, networks, etc. If you want information on how to order Concurrent Euclid (currently released as Version 1.9), send me e-mail (which I'll forward), or write to: CSRI Distribution Manager University of Toronto Sanford Fleming Bldg., Rm 2002 10 King's College Road Toronto, Canada M5S 1A4 Costs are significantly cheaper for educational institutions, and CSRI is always willing to consider negotiating special fees for documented "hardship" cases. -- Stephen Perelgut Computer Systems Research Institute, University of Toronto