Coral 66


CORAL is a programming language originally developed in 1964 at the Royal Radar Establishment, Malvern, Worcestershire, United Kingdom. It was influenced by ALGOL and JOVIAL, but is not a subset of either. Coral 66 was subsequently developed by I. F. Currie and M. Griffiths under the auspices of the Inter-Establishment Committee for Computer Applications. Its official definition, edited by Woodward, Wetherall, and Gorman, was first published in 1970.

Overview

Coral 66 is a general-purpose programming language based on ALGOL 60, with some features from Coral 64, JOVIAL, and Fortran. It includes structured record types and supports the packing of data into limited storage. Like Edinburgh IMP it allows inline assembly language, and also offers good runtime checking and diagnostics. It is designed for real-time computing and embedded system applications, and for use on computers with limited processing power, including those limited to fixed-point arithmetic and those without support for dynamic storage allocation.
The language was an inter-service standard for British military programming, and was also widely adopted for civil purposes in the British control and automation industry. It was used to write software for both the Ferranti and General Electric Company computers from 1971 onwards. Implementations also exist for the Interdata 8/32, PDP-11, VAX, Alpha platforms and HP Integrity servers; for the Honeywell, and for the Computer Technology Limited Modular-1; and for SPARC running Solaris, and Intel running Linux.
Queen Elizabeth II sent the first email from a head of state from the Royal Signals and Radar Establishment over the ARPANET on March 26, 1976. The message read “This message to all ARPANET users announces the availability on ARPANET of the Coral 66 compiler provided by the GEC 4080 computer at the Royal Signals and Radar Establishment, Malvern, England,... Coral 66 is the standard real-time high level language adopted by the Ministry of Defence."
A variant of Coral 66 was developed during the late 1970s to early 1980s by the British General Post Office, together with GEC, STC and Plessey, for use on the System X digital telephone exchange control computers, named PO-CORAL. This was later renamed BT-CORAL when British Telecom was spun off from the Post Office. Unique features of this language were the focus on real-time execution, message processing, limits on statement execution between waiting for input, and a prohibition on recursion to remove the need for a stack.
As Coral was aimed at a variety of real-time work, rather than general office DP, there was no standardised equivalent to a stdio library. IECCA recommended a primitive input/output package to accompany any compiler. Most implementers avoided this by producing Coral interfaces to extant Fortran and, later, C libraries.
CORAL's most significant contribution to computing may have been enforcing quality control in commercial compilers. To have a CORAL compiler approved by IECCA, and thus allowing a compiler to be marketed as a CORAL 66 compiler, the candidate compiler had to compile and execute an official suite of 25 test programs and 6 benchmark programs. The process was part of the British Standard 5905 approval process. This methodology was observed and adapted later by the United States Department of Defense for the official certification of Ada compilers.
Source code for a Coral 66 compiler has been recovered and the Official Definition of Coral 66 document by Her Majesty's Stationery Office has been scanned; the Ministry of Defence patent office has issued a licence to the Edinburgh Computer History project to allow them to put both the code and the language reference online for non-commercial use.