CORAL (Computer On-line Real-time Applications Languageの略)は、もともと1964年にイギリスのウスターシャー州マルバーンにある王立レーダー研究所(RRE)で開発されたプログラミング言語です。 [ 2 ] Rは元々「レーダー」の略で、「リアルタイム」の略ではありませんでした。[ 3 ]主にJOVIAL、ひいてはALGOLの影響を受けていますが、どちらのサブセットでもありません。
最も広く知られているバージョンであるCORAL 66 は、その後、コンピュータ応用に関する機関間委員会(IECCA)の後援の下、IF Currie と M. Griffiths によって開発されました。その公式定義は、 Woodward、Wetherall、および Gormanによって編集され、1970 年に初めて公開されました。 [ 4 ]
1971年、CORALは国防省によって将来の軍事用途向け言語として選定され、これを支援するため、CORALコンパイラが仕様を満たすことを保証するための標準化プログラムが導入された。このプロセスは後に米国国防総省によってAdaの定義にも採用された。
Coral 66は、 ALGOL 60をベースとした汎用プログラミング言語で、Coral 64、JOVIAL、Fortranの機能も一部取り入れています。構造化レコード型( Pascalと同様)を備え、限られたストレージへのデータパッキング(これもPascalと同様)をサポートしています。Edinburgh IMPと同様に、インライン(組み込み)アセンブリ言語に対応しており、優れた実行時チェック機能と診断機能も提供しています。リアルタイムコンピューティングや組み込みシステムアプリケーション向けに設計されており、固定小数点演算のみに対応し、動的ストレージ割り当てをサポートしていないコンピュータなど、処理能力が限られたコンピュータでの使用を想定しています。
この言語は、英国軍のプログラミングにおける軍種間標準であり、[ 5 ]また、英国の制御および自動化産業において民間の目的でも広く採用されました。1971年以降、フェランティ[ 6 ]とゼネラル・エレクトリック社(GEC)のコンピュータの両方のソフトウェアを作成するために使用されました。インターデータ8/32、 PDP-11、VAXおよびアルファプラットフォーム、HPEインテグリティサーバー、ハネウェル、コンピュータ・テクノロジー・リミテッド(CTL、後にITL)モジュラー1 [ 7 ] 、 Solarisを実行するSPARC、Linuxを実行するインテルにも実装が存在します。
エリザベス2世女王は、1976年3月26日に王立信号レーダー研究所からARPANET経由で国家元首として最初の電子メールを送信した。メッセージには「このメッセージは、すべてのARPANETユーザーに対し、英国マルバーンの王立信号レーダー研究所のGEC 4080コンピュータによって提供されるCoral 66コンパイラがARPANETで利用可能になったことをお知らせします。Coral 66は、国防省が採用している標準のリアルタイム高水準言語です。」と書かれていた。 [ 8 ] [ 9 ]
Coralは一般的なオフィスデータ処理ではなく、さまざまなリアルタイム処理を対象としていたため、stdioライブラリに相当する標準化されたライブラリは存在しませんでした。IECCAは、コンパイラに付属するプリミティブな入出力(I/O)パッケージを推奨しました( 「Coral 66ユーティリティプログラムにおける文字データの入出力」というタイトルの文書)。ほとんどの実装者は、既存のFortranライブラリ、そして後にCライブラリへのCoralインターフェースを作成することで、この問題を回避しました。
CORALがコンピューティングにもたらした最も重要な貢献は、商用コンパイラの品質管理を徹底したことかもしれない。[ 7 ] IECCAによるCORALコンパイラの承認を得て、CORAL 66コンパイラとして販売するためには、候補となるコンパイラは、25個のテストプログラムと6個のベンチマークプログラムからなる標準スイートをコンパイルして実行する必要があった。このプロセスは、英国規格(BS)5905の承認プロセスの一部であった。この手法は、後に米国国防総省によってAdaコンパイラの認証に採用された。
Coral 66コンパイラ(BCPLで記述)のソースコードが復元され、英国政府印刷局(HMSO)によるCoral 66の公式定義文書がスキャンされました。国防省特許庁は、エジンバラコンピュータ史プロジェクトに対し、コードと言語リファレンスの両方を非営利目的でオンラインで公開することを許可するライセンスを発行しました。
Coral 66 の派生言語である PO-CORAL は、1970 年代後半から 1980 年代初頭にかけて、英国郵政公社(GPO)がGEC、STC、Plesseyと共同で、 System Xデジタル電話交換制御コンピュータで使用するために開発しました。これは後に、英国テレコムが郵政公社から分離独立した際に BT-CORAL と改名されました。この言語のユニークな特徴は、リアルタイム実行、メッセージ処理、入力待ち間のステートメント実行時間の制限、スタックを不要にするための再帰の禁止に重点を置いている点です。