Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
CORAL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Early programming language}} {{Use dmy dates|date=September 2019}} {{Use British English|date=September 2019}} {{Infobox programming language | name = Coral 66 | logo = <!-- Filename only --> | logo caption = | screenshot = <!-- Filename only --> | screenshot caption = | paradigms = [[Procedural programming|procedural]], [[Imperative programming language|imperative]], [[Structured programming|structured]] | family = [[ALGOL]] | designers = [[Philip Woodward]], I. F. Currie, M. Griffiths | developer = [[Royal Radar Establishment]] | released = {{Start date and age|1964}} | latest release version = | latest release date = <!-- {{Start date and age|19yy|mm|dd|df=yes}} --> | typing = [[Static type|Static]], [[Strong and weak typing|strong]] | scope = [[Scope (computer science)|Lexical]] | programming language = [[BCPL]] | discontinued = | platform = [[Computer Technology Limited|CTL]] [[Computer Technology Limited#Modular One|Modular-1]], [[DEC Alpha]], [[General Electric Company|GEC]], [[Ferranti]], [[Honeywell]], [[HPE Integrity Servers]], Interdata 8/32, [[PDP-11]], [[SPARC]], [[VAX]], [[x86]], [[Intel 8080]], [[Zilog Z80]], [[Motorola 68000]] | operating system = [[OpenVMS]],<ref>{{cite web|url=https://assets1.dxc.technology/manufacturing/downloads/MD_6841a-18_Coral_Offer_Overview_v4.pdf |archive-url=https://web.archive.org/web/20210123102547/https://assets1.dxc.technology/manufacturing/downloads/MD_6841a-18_Coral_Offer_Overview_v4.pdf |archive-date=2021-01-23 |url-status=live|title=Gain the advantage with CORAL, CORAL+ and Context|publisher=[[DXC Technology]]|date=September 2017|access-date=2021-12-29}}</ref> [[Berkeley Software Distribution|BSD]] [[Unix]], [[Linux]], [[Solaris (operating system)|Solaris]] | license = | file ext = | file format = <!-- or: | file formats = --> | website = <!-- {{URL|www.example.com}} --> | implementations = | dialects = | influenced by = [[ALGOL]], [[JOVIAL]], [[Fortran]] | influenced = }} '''CORAL''', short for '''Computer On-line Real-time Applications Language''' is a [[programming language]] originally developed in 1964 at the [[Royal Radar Establishment]] (RRE), [[Malvern, Worcestershire]], in the United Kingdom.<ref name="Ferranti_1968"/> The R was originally for "radar", not "real-time".<ref>{{cite book |first=Jack |last=Gough |title=Watching the skies: a history of ground radar for the air defence of the United Kingdom by the Royal Air Force from 1946 to 1975 |publisher=HMSO |isbn=978-0-11-772723-6 |date=1993 |url=https://books.google.com/books?id=VHcfAQAAIAAJ |page=264}}</ref> It was influenced primarily by [[JOVIAL]], and thus [[ALGOL]], but is not a [[subset]] of either. The most widely-known version, '''CORAL 66''', was subsequently developed by I. F. Currie and M. Griffiths under the auspices of the ''Inter-Establishment Committee for Computer Applications'' (IECCA). Its official definition, edited by [[Philip Woodward|Woodward]], Wetherall, and Gorman, was first published in 1970.<ref>{{cite book |last=Woodward |first=Philip M. |author-link=Philip Woodward |date=1970 |title=Official Definition of CORAL 66 |url=https://archive.org/details/official-definition-of-coral-66 |publisher=[[Office of Public Sector Information|Her Majesty's Stationery Office]] (HMSO) |pages=vii+58 |isbn=0114702217 |via=[[Internet Archive]]}}</ref> In 1971, CORAL was selected by the [[Ministry of Defence (United Kingdom)|Ministry of Defence]] as the language for future military applications and to support this, a standardization program was introduced to ensure CORAL compilers met the specifications. This process was later adopted by the [[US Department of Defense]] while defining [[Ada programming language|Ada]]. == 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 (as in [[Pascal (programming language)|Pascal]]) and supports the packing of data into limited storage (also as in Pascal). Like [[Edinburgh IMP]] it allows [[Inline assembler|inline]] (embedded) [[assembly language]], and also offers good [[Runtime (program lifecycle phase)|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,<ref>{{Cite web |title=Coral 66 - Language Reference Manual - Manual - Computing History |url=https://www.computinghistory.org.uk/det/32364/Coral-66-Language-Reference-Manual/ |archive-url=https://web.archive.org/web/20230731185340/https://www.computinghistory.org.uk/det/32364/Coral-66-Language-Reference-Manual/ |archive-date=2023-07-31 |access-date=2023-07-31 |website=www.computinghistory.org.uk}}</ref> 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]]<ref name=RSRE799->{{cite report |url=https://apps.dtic.mil/sti/citations/ADA084068 |archive-url=https://web.archive.org/web/20210317073041/http://www.dtic.mil/docs/citations/ADA084068 |url-status=live |archive-date=17 March 2021 |title=The Coral 66 Compiler for Ferranti ARGUS 500 Computer |last=Gorman |first=B |publisher=Royal Signals and Radar Establishment |date=June 1978 |id=Technical Note 799 |access-date=17 January 2018}}</ref> and [[GEC Computers|General Electric Company]] (GEC) computers from 1971 onwards. Implementations also exist for the Interdata 8/32, [[PDP-11]], [[VAX]] and [[DEC Alpha|Alpha]] platforms and [[HPE Integrity Servers]]; for the [[Honeywell]], and for the [[Computer Technology Limited]] (CTL, later ITL) [[Computer Technology Limited#Modular One|Modular-1]];<ref name=nsci-19721130/> and for [[SPARC]] running [[Solaris (operating system)|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 4000 series|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 (United Kingdom)|Ministry of Defence]]."<ref>{{Cite news |url=https://www.wired.com/2012/12/queen-and-the-internet/ |title=How the Queen of England Beat Everyone to the Internet |last=Metz |first=Cade |date=2012-12-25 |work=Wired |access-date=2020-01-09 |issn=1059-1028}}</ref><ref>{{Cite news |last=Left |first=Sarah |url=https://www.theguardian.com/technology/2002/mar/13/internetnews |title=Email timeline |date=2002-03-13 |work=The Guardian |access-date=2020-01-09 |language=en-GB |issn=0261-3077}}</ref> As Coral was aimed at a variety of real-time work, rather than general office data processing, there was no standardised equivalent to a [[stdio]] [[Library (computing)|library]]. IECCA recommended a primitive [[input/output]] (I/O) package to accompany any compiler (in a document titled ''Input/Output of Character data in Coral 66 Utility Programs''). Most implementers avoided this by producing Coral interfaces to extant Fortran and, later, [[C (programming language)|C]] libraries. CORAL's most significant contribution to computing may have been enforcing [[quality control]] in commercial [[compiler]]s.<ref name="nsci-19721130">{{cite news |url=https://books.google.com/books?id=dkUzDol9AcQC |title=Lucid language may help European computers |magazine=New Scientist |page=513 |date=30 November 1972 |access-date=8 April 2019}}</ref> 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 a standard suite of 25 test programs and 6 benchmark programs. The process was part of the [[British Standard]] (BS) 5905 approval process. This methodology was observed and adapted later by the [[United States Department of Defense]] for the certification of [[Ada (programming language)|Ada]] compilers. [[Source code]] for a Coral 66 compiler (written in [[BCPL]]) has been recovered and the ''Official Definition of Coral 66'' document by [[Office of Public Sector Information|Her Majesty's Stationery Office]] (HMSO) 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. == Variants == A variant of Coral 66 named PO-CORAL was developed during the late 1970s to early 1980s by the British [[General Post Office]] (GPO), together with [[General Electric Company|GEC]], STC and [[Plessey]], for use on the [[System X (telephony)|System X]] digital telephone exchange control computers. 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 (abstract data type)|stack]].{{Citation needed|date=December 2020}} == References == {{Reflist|refs= <ref name="Ferranti_1968">{{cite book |title=FM1600B Microcircuit Computer Ferranti Digital Systems |date=October 1968 |orig-year=September 1968 |publisher=[[Ferranti Limited]], Digital Systems Department |location=Bracknell, Berkshire, UK |id=List DSD 68/6 |url=https://www.sba.unipi.it/sites/default/files/2015_05_29_08_44_13.pdf |access-date=2020-05-19 |url-status=live |archive-url=https://web.archive.org/web/20200519075443/https://www.sba.unipi.it/sites/default/files/2015_05_29_08_44_13.pdf |archive-date=2020-05-19}}</ref> }} == External links == * [http://history.dcs.ed.ac.uk/archive/os/deimos/ercm09/emas-2900/coral2.txt CORAL 66 test program] extracted from the [http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm09/emas-2900/coral.txt Test Responder report] * [https://web.archive.org/web/20041102162930/http://yfroom.8800.org/apps/1750/benchmarks/coral66/ CORAL 66 benchmarks] * [https://web.archive.org/web/20070927041856/http://standards.mackido.com/bs/bs-standards24_view_4284.html BS5905] CORAL 66 Standard * [https://web.archive.org/web/20100216045637/http://www.dstan.mod.uk/data/05/047/00000200.pdf DEF STAN 05-47] * [http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/rsx/decus/rsx82b/312022/ PDP-11 CORAL/ASM interfacing library] * ECCE [http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm09/emas-2900/coraltrans.txt editor script to translate CORAL 66] into [[Edinburgh IMP]] {{ALGOL programming}} [[Category:History of computing in the United Kingdom]] [[Category:Procedural programming languages]] [[Category:Programming languages created in 1964]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:ALGOL programming
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite news
(
edit
)
Template:Cite report
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use British English
(
edit
)
Template:Use dmy dates
(
edit
)