КОРАЛЛ
Парадигмы | процедурный , императивный , структурированный |
---|---|
Семья | АЛГОЛ |
Разработано | Филип Вудворд , ИФ Карри, М. Гриффитс |
Разработчик | Королевское радарное учреждение |
Впервые появился | 1964 год |
Дисциплина набора текста | Статический , сильный |
Объем | Лексический |
Язык реализации | БКПЛ |
Платформа | CTL Modular-1 , DEC Alpha , GEC , Ferranti , Honeywell , Серверы HPE Integrity , Interdata 8/32, PDP-11 , SPARC , VAX , x86 , Intel 8080 , Zilog Z80 , Motorola 68000 |
ТЫ | ОпенВМС , [1] BSD Unix , Linux , Солярис |
Под влиянием | |
АЛГОЛ , ДЖОВИАЛ , Фортран |
CORAL , сокращение от Computer Online Real-time Applications Language — это язык программирования, первоначально разработанный в 1964 году в Королевском радарном учреждении (RRE), Малверн, Вустершир , в Соединенном Королевстве. [2] Изначально буква R означала «радар», а не «режим реального времени». [3] На него повлиял в первую очередь JOVIAL и, следовательно, ALGOL , но он не является подмножеством ни того, ни другого.
Наиболее широко известная версия, CORAL 66 , была впоследствии разработана И. Ф. Карри и М. Гриффитсом под эгидой Межучрежденческого комитета по компьютерным приложениям (IECCA). Его официальное определение, под редакцией Вудворда , Уэтералла и Гормана, было впервые опубликовано в 1970 году. [4]
выбрало CORAL В 1971 году Министерство обороны в качестве языка для будущих военных приложений, и в поддержку этого была введена программа стандартизации, гарантирующая, что компиляторы CORAL соответствуют спецификациям. Этот процесс позже был принят Министерством обороны США при определении Ada .
Обзор [ править ]
Coral 66 — язык программирования общего назначения, основанный на ALGOL 60 , с некоторыми функциями Coral 64, JOVIAL и Fortran . Он включает в себя структурированные типы записей (как в Pascal ) и поддерживает упаковку данных в ограниченное хранилище (также как в Pascal). Как и Edinburgh IMP, он поддерживает встроенный , язык ассемблера а также обеспечивает хорошую во время выполнения проверку и диагностику . Он предназначен для вычислений в реальном времени и встроенных системных приложений, а также для использования на компьютерах с ограниченной вычислительной мощностью, включая компьютеры, ограниченные арифметикой с фиксированной запятой и не поддерживающие динамическое распределение памяти.
Этот язык был межведомственным стандартом британского военного программирования. [5] а также получил широкое распространение в гражданских целях в британской индустрии управления и автоматизации. Он использовался для написания программного обеспечения как для Ferranti, так и для [6] и компьютеры General Electric Company (GEC) с 1971 года. Также существуют реализации для платформ Interdata 8/32, PDP-11 , VAX и Alpha и серверов HPE Integrity ; для Honeywell и для Computer Technology Limited (CTL, позже ITL) Modular-1 ; [7] и для SPARC под управлением Solaris , и для Intel под управлением Linux .
Королева Елизавета II отправила первое электронное письмо от главы государства из Королевского института сигналов и радиолокации через ARPANET 26 марта 1976 года. Сообщение гласило: «Это сообщение всем пользователям ARPANET объявляет о доступности в ARPANET компилятора Coral 66, предоставленного компьютер GEC 4080 в Королевском институте сигналов и радиолокации, Малверн, Англия, ... Coral 66 - это стандартный язык высокого уровня реального времени, принятый Министерством обороны ». [8] [9]
Поскольку Coral был нацелен на разнообразную работу в реальном времени, а не на общую обработку офисных данных, не существовало стандартизированного эквивалента stdio библиотеки . IECCA рекомендовала использовать примитивный пакет ввода/вывода (I/O) для сопровождения любого компилятора (в документе под названием « Ввод/вывод символьных данных в служебных программах Coral 66» ). Большинство разработчиков избежали этого, создав интерфейсы Coral для существующих Fortran, а затем и C. библиотек
Самым значительным вкладом CORAL в компьютерную науку, возможно, было обеспечение контроля качества коммерческих компиляторов . [7] Чтобы компилятор CORAL был одобрен IECCA и, таким образом, позволил компилятору продаваться как компилятор CORAL 66, компилятор-кандидат должен был скомпилировать и выполнить стандартный набор из 25 тестовых программ и 6 тестовых программ. Этот процесс был частью процесса утверждения британского стандарта (BS) 5905. Эта методология была позже использована и адаптирована Министерством обороны США для сертификации компиляторов Ada .
Исходный код компилятора Coral 66 (написанный на BCPL ) был восстановлен, а «Официальное определение Coral 66», документ выпущенный Канцелярским бюро Ее Величества (HMSO), был отсканирован; Патентное ведомство Министерства обороны выдало Эдинбургскому проекту компьютерной истории лицензию, позволяющую размещать в Интернете как код, так и языковой справочник для некоммерческого использования.
Варианты [ править ]
Вариант Coral 66 под названием PO-CORAL был разработан в конце 1970-х — начале 1980-х годов Главным почтовым отделением Великобритании (GPO) совместно с GEC , STC и Plessey для использования на System X. компьютерах управления цифровой телефонной станцией Позже он был переименован в BT-CORAL, когда British Telecom была выделена из почтового отделения. Уникальными особенностями этого языка были ориентация на выполнение в реальном времени, обработка сообщений, ограничения на выполнение операторов между ожиданием ввода и запрет на рекурсию для устранения необходимости в стеке . [ нужна ссылка ]
Ссылки [ править ]
- ^ «Получите преимущество с CORAL, CORAL+ и Context» (PDF) . Технология DXC . Сентябрь 2017 г. Архивировано (PDF) из оригинала 23 января 2021 г. Проверено 29 декабря 2021 г.
- ^ Микросхемный компьютер FM1600B Ferranti Digital Systems (PDF) . Брэкнелл, Беркшир, Великобритания: Ferranti Limited , отдел цифровых систем. Октябрь 1968 г. [сентябрь 1968 г.]. Список ДСД 68/6. Архивировано (PDF) из оригинала 19 мая 2020 года . Проверено 19 мая 2020 г.
- ^ Гоф, Джек (1993). Наблюдение за небом: история наземных радаров ПВО Соединенного Королевства Королевских ВВС с 1946 по 1975 год . ХМСО. п. 264. ИСБН 978-0-11-772723-6 .
- ^ Вудворд, Филип М. (1970). Официальное определение КОРАЛЛА 66 . Канцелярия Ее Величества (HMSO). стр. vii+58. ISBN 0114702217 – через Интернет-архив .
- ^ «Coral 66 — Справочное руководство по языку — Руководство — История вычислений» . www.computinghistory.org.uk . Архивировано из оригинала 31 июля 2023 года . Проверено 31 июля 2023 г.
- ^ Горман, Б. (июнь 1978 г.). Компилятор Coral 66 для компьютера Ferranti ARGUS 500 (Отчет). Королевское учреждение сигналов и радаров. Техническая заметка 799. Архивировано из оригинала 17 марта 2021 года . Проверено 17 января 2018 г.
- ^ Jump up to: а б «Ясный язык может помочь европейским компьютерам» . Новый учёный . 30 ноября 1972 г. с. 513 . Проверено 8 апреля 2019 г.
- ^ Мец, Кейд (25 декабря 2012 г.). «Как королева Англии выбила всех в Интернет» . Проводной . ISSN 1059-1028 . Проверено 9 января 2020 г.
- ^ Слева, Сара (13 марта 2002 г.). «Хронология электронной почты» . Хранитель . ISSN 0261-3077 . Проверено 9 января 2020 г.
Внешние ссылки [ править ]
- Программа испытаний CORAL 66, извлеченная из отчета испытателя.
- КОРАЛ 66 тестов
- BS5905 КОРАЛЛ 66 Стандарт
- ДЕФ СТАН 05-47
- Библиотека интерфейса PDP-11 CORAL/ASM
- Сценарий редактора ECCE для перевода CORAL 66 в Эдинбургский IMP