HAL/S
HAL/S | |
---|---|
Семантика | процедурный |
Класс языка | язык программирования |
Тип исполнения | компилируемый |
Появился в | 1970 — 1972[1] |
Автор | Intermetrics |
Система типов | статическая |
Испытал влияние | PL/1, ALGOL, MAC/360 |
HAL/S (англ. High-order Assembly Language/Shuttle[2] — «язык ассемблера высокого уровня/шаттл») — язык программирования, предназначенный для аэрокосмических систем реального времени, получивший известность из-за использования в Программе космических шаттлов. Разработан в 1970-х годах компанией Intermetrics для НАСА. Написан на XPL, диалекте PL/I.
Тремя ключевыми факторами, обусловившими появление данного языка, явились надёжность, эффективность и машинонезависимость. Язык разработан для того, чтобы позволить выполнять задачи, связанные с аэрокосмическими нуждами (такие как векторные/матричные вычисления) так, чтобы это было легко понимаемо людьми, обладающими знаниями в области аэронавтики и не обязательно имеющими квалификацию в области программирования.
HAL/S разработан без многих конструкций, известных тем, что они часто приводят к ошибкам. В языке не используются сокращения для ключевых слов, ключевые слова не могут использоваться для обозначения переменных.
Некоторые возможности, такие как «GOTO», предоставлены главным образом для упрощения перевода на этот язык программ, написанных на других языках[3].
Особенности, подобные описанным, приданы языку для снижения вероятности появления ошибок и упрощения понимания программ (самодокументирующийся код).
HAL не является акронимом. На странице введения спецификации языка HAL/S[4] говорится: «….основной вклад в концепцию и реализацию MAC внёс профессор Дж. Хэлкомб Лэйнинг (Dr. J. Halcombe Laning) из Draper Laboratory.» Название «HAL» для нового языка предложено Эдом Коппсом (Ed Copps), основателем Intermetrics, в честь Хэла Лэйнинга, коллеги по Массачусетскому технологическому институту.
Одной из интересных возможностей HAL является то, что он поддерживает трёхстрочный входной формат, в котором три строки исходного кода используются для каждого оператора, где первую и третью строки можно использовать для показателей степени и индексов, соответственно[5]. Это было сделано в соответствии с математической нотацией.
Примечания
[править | править код]- ↑ Michael J. Ryer. 1.2 HAL/S contrasted with other high order languages // Programming in HAL/S. — 1978.
- ↑ STS Software (англ.). NSTS 1988 News Reference Manual. NASA. Дата обращения: 24 октября 2011. Архивировано 3 апреля 2012 года.
- ↑ Архивированная копия . Дата обращения: 30 июня 2009. Архивировано 19 марта 2009 года. «Программирование на HAL/S», страница 82 (англ.)
- ↑ Архивированная копия . Дата обращения: 26 февраля 2009. Архивировано 26 февраля 2009 года. «Спецификация языка HAL/S» (англ.)
- ↑ Архивированная копия . Дата обращения: 30 июня 2009. Архивировано 12 мая 2008 года.Архивированная копия . Дата обращения: 30 июня 2009. Архивировано 12 мая 2008 года.
Ссылки
[править | править код]- включая спецификации языка и компилятора, руководство программиста и пользователя.
- Компьютеры в космических полётах: опыт НАСА (англ.) — Джорджа Томаяко (George Tomayko) (Приложение II: «HAL/S, язык реального времени для космических полётов») (англ.)