Кіріспе
CORAL – Computer On line Real time Applications Language (Компьютерлік желідегі нақты уақытты қолданбалар тілі) – 1964 жылы Ұлыбританиядағы Ворстершир графтығындағы Малверн қаласында орналасқан Royal Radar Establishment (RRE) мекемесінде жасалған бағдарламалау тілі. Ол негізінен JOVIAL және одан кейін ALGOL тілдерінен әсер алды, бірақ екеуінің де толық көшірмесі емес. Ең көп танымал нұсқасы – CORAL 66, ол кейіннен И. Ф. Кьюри мен М. Гриффитс компьютерлік қолданбалар жөніндегі мекемелер аралық комитет (IECCA) қолдауымен әзірленді. Оның ресми сипаттамасын Вудвард, Уэзерлл және Горман 1970 жылы жариялады. 1971 жылы Қорғаныс министрлігі CORAL тілін болашақ әскери мақсаттар үшін ресми тіл деп бекітті, ал оны қолдау үшін CORAL компиляторларының техникалық талаптарға сай келуін қамтамасыз ету мақсатында стандарттау бағдарламасы енгізілді. Бұл тәсіл кейіннен АҚШ Қорғаныс министрлігі Ada тілін анықтағанда қолданылды.
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. 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 Woodward, Wetherall, and Gorman, was first published in 1970. In 1971, CORAL was selected by the 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.
Шолу
Coral 66 – ALGOL 60 негізінде жасалған, Coral 64, JOVIAL және Fortran-нан алынған кейбір ерекшеліктері бар жалпы мақсаттағы бағдарламалау тілі. Ол құрылымды жазба түрлерін (Pascal-дағыдай) қамтиды және деректерді шектеулі жадқа (Pascal-дағыдай) жинауға қолдау көрсетеді. Эдинбург IMP сияқты, ол тікелей (көмескі) құрастыру тілін қолдайды, сондай-ақ жақсы орындалу кезіндегі тексерулер мен диагностиканы ұсынады. Ол нақты уақыт есептеулер және кіріктірілген жүйелерге арналған, сондай-ақ шектеулі өңдеу қуаты бар компьютерлерде пайдалануға арналған, оның ішінде тек тұрақты нүктелік арифметиканы қолдайтын және динамикалық жадты бөлуді қолдамайтын компьютерлерде де қолданылады. Бұл тіл британдық әскери бағдарламалау үшін ведомствоаралық стандарт болды, сондай-ақ британдық бақылау және автоматтандыру индустриясында азаматтық мақсаттар үшін кеңінен қолданылды. Ол 1971 жылдан бастап Ferranti және General Electric Company (GEC) компьютерлері үшін бағдарламалық жасақтама жазу үшін пайдаланылды. Сондай-ақ Interdata 8/32, PDP 11, VAX және Alpha платформалары мен HPE Integrity Server үшін; Honeywell үшін және Computer Technology Limited (CTL, кейін ITL) Modular 1 үшін де қолдау бар. Coral әртүрлі нақты уақыт жұмыстарына бағытталғандықтан, жалпы кеңсе деректерін өңдеуге қарағанда, stdio кітапханасының стандартына теңдес нәрсе болған жоқ. IECCA кез келген компилятормен бірге қарапайым кіріс/шығыс (I/O) жиынтығын ұсынды (Coral 66 Utility Programs құжатындағы «Coral 66 тіліндегі таңбалық деректердің кіріс/шығысы» деп аталады). Көптеген жасаушылар бұған Fortran және кейінірек C кітапханаларына Coral интерфейстерін жасау арқылы шешім тапты. CORAL-дың есептеу техникасына ең маңызды үлесі – коммерциялық компиляторлардың сапасын бақылауды күшейту болды. CORAL компиляторы IECCA-мен бекітілуі үшін, және осылайша компиляторды CORAL 66 компиляторы ретінде сатуға рұқсат алу үшін, кандидат компилятор 25 тесттік бағдарламадан және 6 өлшемдік бағдарламадан тұратын стандартты жиынтықты құрастырып, орындауы керек еді. Бұл процесс Британдық стандарттың (BS) 5905 бекіту процесінің бір бөлігі болды. Бұл әдістеме кейіннен АҚШ Қорғаныс министрлігі тарапынан Ada компиляторларын сертификаттау үшін байқалып, бейімделді. Coral 66 компиляторының бастапқы коды (BCPL-де жазылған) қалпына келтірілді және Корольдік кеңсесінің (HMSO) Coral 66 анықтамасы сканерленді; Қорғаныс министрлігінің патенттік бюросы Эдинбург компьютерлік тарихы жобасына лицензия берді, бұл оларға кодты және тілдік анықтаманы коммерциялық емес мақсаттар үшін онлайн жариялауға мүмкіндік берді.
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. 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 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 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 compilers. Source code for a Coral 66 compiler (written in BCPL) has been recovered and the Official Definition of Coral 66 document by 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.
Нұсқалар
Coral 66-ның PO CORAL деп аталатын түрі 1970-жылдардың соңы мен 1980-жылдардың басында британдық General Post Office (GPO), GEC, STC және Plessey компаниялары бірлесіп, System X цифрлық телефон станциясын басқару компьютерлерінде қолдану үшін жасалды. British Telecom поштадан бөлінгеннен кейін бұл тіл BT CORAL деп қайта аталды. Бұл тілдің ерекшеліктері – нақты уақыт режимінде жұмыс істеуге, хабарларды өңдеуге, кіріс күту кезіндегі операторлардың орындалуына шектеулер қою, сондай-ақ стек қажеттілігін болдырмау үшін рекурсияға тыйым салу болды.