НОВОСТИ    БИБЛИОТЕКА    ЭНЦИКЛОПЕДИЯ    БИОГРАФИИ    КАРТА САЙТА    ССЫЛКИ    О ПРОЕКТЕ  

АЛГОЛ-68

Расстановка ударений: АЛГО`Л-68

АЛГОЛ-68 - универсальный алгоритмический язык, разработанный в 1964-68 коллективом ученых 12 стран в составе рабочей группы по алголу Международной федерации по обработке информации для обмена алгоритмами, для эффективного их выполнения на различных вычислительных машинах и как средство для изучения алгоритмов. Сохраняя стилистич. связь с алголом-60, А.-68 существенно отличается от него богатством и общностью конструкций. Основными видами данных, в дополнение к типам алгола-60 «вещественный», «целый» и «логический», могут быть «литерный» (для буквенно-цифровой информации), «форматный» (для описания формата внешней информации), имя и процедура. Таким образом, имена и процедуры могут «вычисляться» при выполнении программы на А.-68, хотя это вычисление ограничивается динамич. выбором значения имени или процедуры из явно заданной конечной совокупности. Из основных видов можно индуктивно строить новые, составные виды, представляющие либо однородные индексируемые последовательности данных одного вида (мультизначения), либо упорядоченные наборы данных произвольного вида (структуры).

В дополнение к обычному аппарату описания процедур А.-68 содержит средства для описания так наз. инфиксных операций типа х + у. Наличие описания приоритета позволяет задавать отношения старшинства между вводимыми инфиксными операциями. Характерное для А.-68 описание тождества является универсальной конструкцией для описания переменных, задания начальных значений, организации подстановки фактич. параметров в процедуры и для задания синонимии.

В А.-68 в позиции выражения может стоять оператор присваивания или даже любая цепочка операторов, вырабатывающая нек-рое значение. В сочетании с возможностью вычисления имен и процедур, а также введением парных скобок для условных выражений это приводит к допустимости в А.-68 конструкций, поясняемых следующим примером:

1) Алгол-68:

если х > 0, то u иначе z все

2) Алгол-60:

Программа в А.-68 состоит из замкнутых, последовательных, условных и совместных предложений. Первые

три обобщают такие понятия алгола-60, как блок, составной оператор и условные выражение и оператор. Совместные предложения обозначают неупорядоченные совокупности составляющих фраз, являясь, в частности, основным средством для указания параллельных ветвей в общем ходе выполнения программы.

Описание семантики А.-68 характерно углубленной проработкой основных концепций алгоритмич. языков, позволяющей с помощью небольшого числа независимых фундаментальных понятий точно описывать процесс выполнения программы. Различаются внешние (относящиеся к конструкциям программы) и внутренние (относящиеся к данным, в том числе к процедурам и именам) объекты. Аксиоматически вводятся отношения между внешними (Е) и внутренними (I) объектами, напр. «E1 содержит E2 », «E1 идентифицирует E2 », «Е обладает I», «I1 именует I2 », «I1 является компонентой I2 » и т. п. Выполнение программы описывается в терминах введенных отношений как функция разбора программы.

Особенностью синтаксиса А.-68 является его задание в виде двухступенчатой грамматики, когда порождающие правила А.-68 являются сами допустимыми текстами в нек-ром метаязыке, заданном своей порождающей грамматикой. Грамматич. правила А.-68 имеют, напр., вид:

список ПОНЯТИЙ разделенных РАЗДЕЛИТЕЛЕМ: ПОНЯТИЕ; список ПОНЯТИЙ разделенных разделителем, РАЗДЕЛИТЕЛЬ, ПОНЯТИЕ, оператор присваивания ВИДА: выражение вырабатывающее имя ВИДА, : =, выражение вырабатывающее вид.

Слова, выраженные большими буквами, - это грамматич. единицы метаязыка, порождающие правила для к-рых имеют, напр., вид:

ПОНЯТИЕ: идентификатор, оператор. РАЗДЕЛИТЕЛЬ: запятая, точка с запятой. ВИД: целый, логический, имя ВИДА.

Нек-рые понятия метаязыка, напр. ВИД, могут иметь бесконечное число порождений. Собственно порождающие правила А.-68 получаются систематич. заменой понятий метаязыка в грамматич. правилах на любое одно и то же их порождение. Результирующие правила в металингвистич. обозначениях алгола-60 выглядят, напр., так:

〈 список идентификаторов разделенных запятыми 〉 : : = 〈 идентификатор 〉 | 〈 список идентификаторов разделенных запятыми 〉 〈 запятая 〉 〈 идентификатор 〉 〈 оператор присваивания целого 〉 : : = 〈 выражение вырабатывающее имя целого 〉 : = 〈 выражение вырабатывающее целое 〉.

Использование двухступенчатой грамматики позволяет, во-первых, сократить число однотипных порождающих правил и, во-вторых, выразить средствами синтаксиса атрибутную информацию понятий и нек-рые контекстные зависимости, к-рые в противном случае формулируются в виде содержательных ограничений.

Лит. : [1] Ван Вейнгаарден А. [и др.], Сообщение об алгоритмическом языке АЛГОЛ-68, «Кибернетика», 1969, № 6, с. 23-145; 1970, № 1, с. 13-160; [2] Линдси Ч., Мюйлен С., Неформальное введение в АЛГОЛ-68, пер. с англ., М., 1973.

А. П. Ершов.


Источники:

  1. Математическая Энциклопедия. Т. 1 (А - Г). Ред. коллегия: И. М. Виноградов (глав ред) [и др.] - М., «Советская Энциклопедия», 1977, 1152 стб. с илл.











© MATHEMLIB.RU, 2001-2021
При копировании материалов проекта обязательно ставить ссылку на страницу источник:
http://mathemlib.ru/ 'Математическая библиотека'
Рейтинг@Mail.ru