У

Группа П85

ДК 681.3.06:006.354

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

Я

ГОСТ
27975-88

ЗЫК ПРОГРАММИРОВАНИЯ

Алгол 68 расширенный

Programming language ALGOL 68,
extended

ОКСТУ 400:

Дата введения 01.07.90

Настоящий стандарт распространяется на язык программирования Алгол 68 расширенный*, его варианты, а также варианты языка програм­мирования Алгол 68, вводящие дополнительно к определению языка про­граммирования Алгол 68 средства обеспечения модульности программ и раздельной трансляции программ, и устанавливает требования:

к программе на языке программирования Алгол 68 расширенный, представленной на машинном носителе или в комплекте программной документации;

к реализациям языка программирования Алгол 68 расширенный и его вариантов, используемым при создании или эксплуатации програм­мных средств, в части выполнения программ на языке Алгол 68 расши­ренный.

Стандарт не распространяется на варианты языка Алгол 68 или языка Алгол 68 расширенный и программы на языке Алгол 68 расширенный, сос­тавленные в учебных или исследовательских целях.

Вариантом языка Алгол 68 расширенный является определенный конкретной реализацией язык, сохраняющий основные конструкции язы­ка Алгол 68 расширенный, в описании которого имеется ссылка на настоя­щий стандарт и четко перечисляются отличия определяемого языка от язы­ка, определенного настоящим стандартом.

* Историческая справка о языке Алгол 68 расширенном, приведена в приложе­нии 1.

Издание официальное Перепечатка воспрещенаТребования к машинному представлению программы приведены в при­ложении 2.

  1. ЯЗЫК И МЕТАЯЗЫК

Все прагматические замечания соответствуют ГОСТ 27974.

  1. Метод описания

    1. Введение соответствует ГОСТ 27974.

    2. Прагматика соответствует ГОСТ 27974.

    3. Синтаксис строгого языка соответствует ГОСТ 27974.

    4. Семантика

Определение семантики соответствует ГОСТ 27974.

  1. Гиперпонятия, обозначение и заложение соответствуют ГОСТ 27974.

  2. Парапонятия.

Гиперправила a, b, d соответствуют ГОСТ 27974.

с) В правиле Ь) „опускаемые гиперпонятия” следующие: „ОФОРМЛЕННОЕ” • „НОМЕР” • „ЛОКАЛИЗУЮЩИЙ” • „ПРИМЕНЯЮЩИЙ” • „ЛЮБОЙ” • „ПРИВОДИМО” • „ЗНАЧЕНИЕ” • „для ЗНАЧЕНИЯ” • „выдающее ИМЯ ПРОВИДА” • „для метки” • „для процедуры” • „вида ПРОВИД”

• „с видом ПРОЦЕДУРА” • „в СРЕДЕ” • „!ПАРЫ” • „с 70ПИСАНИЯМИ 7МЕТКАМИ” • „через 7ОПИСАНИЯ ? МЕТКИ” • „определяющее СЛОЙ” • „ОБОЗНАЧЕНИЕ” • „как ИМЯ ПРОВИДА” • „без 7ОПИСАНИЙ” • „передающий 7СВЯЗИ” • „открывающий 7СВЯЗИ”. 1.1.4.3. Неопределенности соответствуют ГОСТ 27974.

1.1.4.4. Восстанавливающие действия:

Для некоторых случаев, где говорится, что исполнение не определено {1.1.4.3 а, Ь} , заданы восстанавливающие действия. Это значит, что долж­но выполняться такое восстанавливающее действие, если только реализатор не предусмотрел более подходящего решения для данной ситуации. Однако реализатор должен сохранить для программиста возможность потребовать, чтобы выполняемым действием было в точности действие, указанное здесь.

{Обычно восстанавливающее действие включает в себя возбуждение соответствующей ситуации.}

Ь) Восстанавливающее действие состоит в вызове некоторой процедуры, возможно, со значениями {параметров}. Эта процедура задается при помо­щи представления некоторого использующего-идектификатора, выдающего эту процедуру в окружении собственного-вступления.

1.2.Общие метаправила

  1. Метаправила для видов соответствуют ГОСТ 27974.

  2. Метаправила, связанные с фразами и приведением

  1. ЗАКРЫТОЕ: : замкнутое; совместное;

параллельное; ВЫБИРАЮЩЕЕ {34А}; циклическое;

подключающее.

Метаправила В, С соответствуют ГОСТ 27974.

  1. Метаправила, связанные со средами

Метаправила, А, С, D, F, G, Н, I, J, К соответствуют ГОСТ 27974.

  1. СЛОЙ : : новые 7ОПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ.

Е) ОПИСАНИЕ : : СЛОВО {942А} для ВИДА;

ИНФИКС {942F} для приоритета ПРИОРИТЕТ;

ИНДИКАНТ {942FJ- для ЗНАЧЕНИЯ НОМЕР:

ИНФИКС {942F} для ДВУХМЕСТНОЙ;

ПРЕФИКС {942КЭ-ДЛЯ ОДНОМЕСТНОЙ;

МОДУЛЬ; СЛОВО для СИТУАЦИИ с видом ПРОЦЕДУРА.

  1. 7М0ДУЛИ : : ’МОДУЛИ; ПУСТО.

  2. [МОДУЛИ : : МОДУЛЬ; [МОДУЛИ МОДУЛЬ.

  3. МОДУЛЬ ; : ИНДИКАНТ для [СВЯЗЕЙ с модулями.

  4. 7СВЯЗИ : : [СВЯЗИ; ПУСТО.

  5. [СВЯЗИ : : СВЯЗЬ; [СВЯЗИ СВЯЗЬ.

  6. СВЯЗЬ : : КЛЮЧдля открытия 7ОПИСАНИЙ {и} [ПОДКЛЮЧЕНИЙ.

  7. КЛЮЧ : : ЦИ.

  8. 7ПОДКЛЮЧЕНИЯ : ; [ПОДКЛЮЧЕНИЯ; ПУСТО.

  9. [ПОДКЛЮЧЕНИЯ : : ПОДКЛЮЧЕНИЕ; [ПОДКЛЮЧЕНИЯ ПОДК­ЛЮЧЕНИЕ.

  10. ПОДКЛЮЧЕНИЕ : : КЛЮЧ для запуска.

  11. СИТУАЦИЯ : : ситуация; реакция.

  1. Общие гиперправила соответствуют ГОСТ 27974.

  1. ВЫЧИСЛИТЕЛЬ И ПРОГРАММА

    1. Терминология

      1. Объекты.

Определение объекта и прагматическое замечание соответствуют ГОСТ 27974.

  1. Значения, участки, окружения и сцены.

Гиперправила а, с, d соответствуют ГОСТ 27974.

Ь) Всякий ,,участок” Тесть внутренний объект, который}- соответст­вует каким-то '7ОПИСАНИЯМ 7МЕТКАМ ’ПОДКЛЮЧЕНИЯМ' {1.2.3 С, 1}. ,.Незанятый участок” это участок, для которого 7ОПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ’ есть' ПУСТО'.

{Каждое 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА' (4.8.1. F, G), заложенное в данные '7ОПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ'. соответствует опреде­ляющему -ОБОЗНАЧЕНИЕ-индикатору-выдающему-ПРИЗНАК (т.е. како­му-нибудь идентификатору, обозначению-операции или индикатору-вида), описанному в конструкте, исполнение которого вызвало создание данного участка. Указанное ОБОЗНАЧЕНИЕ для ПРИЗНАКА' может „получать доступ” к какому-то значению или сцене „внутри” этого участка (2.1.2.с).

Образом участка может служить ряд ячеек памяти, в которые помеше­ны эти доступные объекты.}

  1. Виды определены в ГОСТ 27974.

  2. Области действия.

Прагматические замечания и гиперправило а) соответствуют ГОСТ 27974.

    1. Каждое окружение имеет одну определенную „область действия”. {Область действия каждого окружения никогда не бывает „старше” (2.1.2.f) области действия того окружения, из которого оно составлено (2.1.1.1-е).}

  1. Соотношения

Гиперправила a, b, с, d, е, f, g соответствуют ГОСТ 27974.

  1. „Реагировать” есть соотношение между значением {процедурой} и сценой {определением-ситуации}, которое может быть справедливым „внутри” определенного участка. Данное соотношение становится справед­ливым после исполнения определения-реакции.

  2. Окружение может быть „связано” с другим окружением {со стар­шей областью действия} „посредством” некоторой сцены {определения- ситуации}. Это соотношение может быть справедливым для некоторого окружения, созданного в процессе исполнения вызова-ситуации.

  1. Значения определены в ГОСТ 27974.

  2. Действия

    1. Исполнение соответствует ГОСТ 27974.

    2. Последовательные и совместные действия соответствуют ГОСТ 27974.

    3. Запуск, завершение и прекращение

Правила a, b, с, d, е, f, g и прагматическое замечание соответствуют ГОСТ 27974.

        1. Всякое действие может „прерваться” событием, {например, „пере­полнением”}, не определяемым семантикой настоящего стандарта, но выз­ванным вычислителем, если его возможности {2.2.2.Ь} не позволяют обес­печить удовлетворительное исполнение. Когда действие прерывается, пре­рываются все его поддействия и, возможно, его наддействия. {Возобно­вятся ли эти действия после прерывания, будут ли запущены другие дейст­вия или же окончится исполнение данной программы, настоящим стандар­том оставлено не определенным. Для некоторых событий определены вос­станавливающие действия (1.1.4.4.).}

        2. Действие может прерваться, если вычислитель обнаруживает, что время (место в памяти), выделенное для исполнения программы, близко к исчерпанию. В таком случае восстанавливающим действием служит вызов процедуры восстановление после исчерпания времени {10.2.5.р} (восста­новление после исчерпания памяти {10.2.5.q}). {Предполагается, что остающееся количество времени (памяти) будет достаточным, чтобы вос­станавливающее действие обеспечило аккуратное завершение или же до­было дополнительные ресурсы.}.

      1. Сокращения определены в ГОСТ 27974.

    1. Программа соответствует ГОСТ 27974.

  1. ПРЕДЛОЖЕНИЯ

Все прагматические замечания соответствуют ГОСТ 27974.

3.0.1. Синтаксис

Гиперправила a, b, с, d, е соотстветствуют ГОСТ 27974.

f) * блок с СРЕДЕ: определяющее СЛОЙ последовательное предложе­ние ПРИВОДИМОЕ В СРЕДЕ {32а]-;

состав ВЫБИРАЮЩЕГО предложения

ОФОРМЛЕННЫЙ ПРИВОДИМЫЙ в СРЕДЕ {34b};

вариант выбирающий по ПРЕДСТАВИТЕЛЮ ПРИВОДИМЫЙ в СРЕДЕ {341};

ОФОРМЛЕННЫЙ цикл с ОПИСАНИЕМ в СРЕДЕ {35е};

ОФОРМЛЕННЫЙ подчиненный условию цикл в СРЕДЕ {35f}; текст процедуры в СРЕДЕ выдающий ПРОЦЕДУРУ {541а, Ь}; определяющий СЛОЙ текст модуля в СРЕДЕ передающий

ІСВЯЗИ {49с,-};

модульный кортеж с 7ОПИСАНИЯМИ без 7ОПИСАНИЙ1 в СРЕДЕ с СЛОЕМ 1 с СЛОЕМ2 {42d};

подключающее предложение ПРИВОДИМОЕ в СРЕДЕ {36а}.

  1. 2. Семантика соответствует ГОСТ 27974.

  2. Замкнутые предложения определены в ГОСТ 27974.

  3. П о с л е д о в а т е л ь н ы е предложения

    1. Синтаксис

Гиперправила a, b, с, d, е, f, g, h соответствуют ГОСТ 27974.

  1. * определяющее предложение:

определяющее СЛОЙ последовательное

предложение ПРИВОДИМОЕ в СРЕДЕ {32а};

определяющее СЛОЙ выясняющее

предложение выдающее ВИД в СРЕДЕ {34с};

определяющий СЛОЙ текст модуля в СРЕДЕ

передающий ІСВЯЗИ {49с, -};

определяющее СЛОЙ подключение в СРЕДЕ передающее 7СВЯЗИ {36а, -}.

  1. Семантика

  1. Выдачей последовательного-предложения в окружении Е является выдача исполнения его кортежа или любого кортежа, исполняемого „вмес­то него” {5.4.4.2}, в окружении, „устанавливаемом” {Ь} вокруг Е сог­ласно этому последовательному-предложению; требуется, чтобы по области действия эта выдача не была младше данного Е, причем восстанавливающим действием служит вызов процедуры восстановление после ошибки области действия {10.2.5 .п}.

  2. Окружение Е, „устанавливаемое”

  • по окружению Е1, возможно не обусловленному, -{которое опре­деляет его область действия,}

  • вокруг окружения Е2, -[определяющего его состав,}

  • согласно определяющему-новые- 7ПАРЫ-ПОНЯТИЮ С, возможно отсутствующему, {которое задает его участок,}

  • со значениями Vt, ... , Vn, возможно отсутствующими, {кото­рые возможно будут приписаны,} определяется следующим образом:

  • если Е1 не обусловлено, то пусть Е1 будет Е2;

  • Е младше Е1 по области действия и составлено из Е2 и нового участка, соответствующего '7ПАРАМ', если С присутствует, а иначе соответствующего ' ПУСТО';

Случай А : С есть определяющее-предложение:

Для каждого составляющего определения-вида М этого С, если они во­обще есть.

  • сцена, составленная из

  1. фактического-описателя этого М и

  2. окружения, необходимого для {7.2.2.с} этого фактического-опи­сателя в Е, приписывается индикатору-вида этого М в Е;

Для каждого составляющего определения -метки L этого С, если они вообще есть.

• сцена, составленная из

  1. кортежа, для которого L — прямой наследник, и

  2. окружения Е, приписывается идентификатору-метки этого L в Е;

Для каждого составляющего определения-ситуации X этого С, если они вообще есть.

• сцена, составленная из

  1. X и

  2. окружения Е, приписывается идентификатору-ситуации этого X в Е;

Если каждая 'ПАРА', заложенная в '? ПАРЫ', есть 'ИНФИКС для БИНАРНОГО' или 'СЛОВО для метки' или 'СЛОВО для ситуации с видом ПРОЦЕДУРА',

то Е называется „нелокализующим” {см. 5.2.3.2.Ь};

Случай В : С есть задание-аргументов, заглавие-цикла или спецификация:

Для i = l, ... , п, где п-число'ОПИСАНИЙ', заложенных в'7ПАРЫ', • Vj приписывается {4.8.2.а} і-му составляющему определяюще- му-идентификатору этого С в Е, если они вообще есть, а иначе {в случае невидимого заглавия-цикла} некоторому определяющему- букву-алеф-идентификато ру-выдающему-целое;

Если С служит заглавием-цикла или спецификацией, то Е является не­локализующим.

{В остальных случаях, т. е. когда С отсутствует:

• Е является локализующим (см. 5.2.3.2.Ь), но дальнейшее не опреде­лено.}

с) Выдача W всякого кортежа С определяется следующим образом:

Если С содержит прямую наследную основу, за которой нет знака-про- должать, то

  • W — выдача этой основы;

а иначе

  • исполняется описание или основа этого С, если они вообще есть;

  • W — выдача кортежа этого С.

{См. также 5.4.4.2. Случай А.}

  1. С о в м е с т н ы е и параллельные предложения

    1. Синтаксис соответствует ГОСТ 27974.

    2. Семантика

  1. Гиперправило соответствует ГОСТ 27974.

  2. Выдача W совместного-предложения-выдающего-СОСТАВНОЕ С оп­ределяется следующим образом:

Если прямой наследник из С есть вакуум, то {'СОСТАВНОЕ’ есть 'МАССИВ из ВИДА',} каждая граничная пара в паспорте выдачи W равна (1,0) {, и имеется один скрытый элемент, значение которого не существен­но};

иначе

  • пусть Vj, ... , Vm будут {совместными} выдачами составляющих основ из С;

Случай А: 'СОСТАВНОЕ' есть 'структура содержащая !ПОЛЯ в себе':