У
Группа П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.
ЯЗЫК И МЕТАЯЗЫК
Все прагматические замечания соответствуют ГОСТ 27974.
Метод описания
Введение соответствует ГОСТ 27974.
Прагматика соответствует ГОСТ 27974.
Синтаксис строгого языка соответствует ГОСТ 27974.
Семантика
Определение семантики соответствует ГОСТ 27974.
Гиперпонятия, обозначение и заложение соответствуют ГОСТ 27974.
Парапонятия.
Гиперправила 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.Общие метаправила
Метаправила для видов соответствуют ГОСТ 27974.
Метаправила, связанные с фразами и приведением
ЗАКРЫТОЕ: : замкнутое; совместное;
параллельное; ВЫБИРАЮЩЕЕ {34А}; циклическое;
подключающее.
Метаправила В, С соответствуют ГОСТ 27974.
Метаправила, связанные со средами
Метаправила, А, С, D, F, G, Н, I, J, К соответствуют ГОСТ 27974.
СЛОЙ : : новые 7ОПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ.
Е) ОПИСАНИЕ : : СЛОВО {942А} для ВИДА;
ИНФИКС {942F} для приоритета ПРИОРИТЕТ;
ИНДИКАНТ {942FJ- для ЗНАЧЕНИЯ НОМЕР:
ИНФИКС {942F} для ДВУХМЕСТНОЙ;
ПРЕФИКС {942КЭ-ДЛЯ ОДНОМЕСТНОЙ;
МОДУЛЬ; СЛОВО для СИТУАЦИИ с видом ПРОЦЕДУРА.
7М0ДУЛИ : : ’МОДУЛИ; ПУСТО.
[МОДУЛИ : : МОДУЛЬ; [МОДУЛИ МОДУЛЬ.
МОДУЛЬ ; : ИНДИКАНТ для [СВЯЗЕЙ с модулями.
7СВЯЗИ : : [СВЯЗИ; ПУСТО.
[СВЯЗИ : : СВЯЗЬ; [СВЯЗИ СВЯЗЬ.
СВЯЗЬ : : КЛЮЧдля открытия 7ОПИСАНИЙ {и} [ПОДКЛЮЧЕНИЙ.
КЛЮЧ : : ЦИ.
7ПОДКЛЮЧЕНИЯ : ; [ПОДКЛЮЧЕНИЯ; ПУСТО.
[ПОДКЛЮЧЕНИЯ : : ПОДКЛЮЧЕНИЕ; [ПОДКЛЮЧЕНИЯ ПОДКЛЮЧЕНИЕ.
ПОДКЛЮЧЕНИЕ : : КЛЮЧ для запуска.
СИТУАЦИЯ : : ситуация; реакция.
Общие гиперправила соответствуют ГОСТ 27974.
ВЫЧИСЛИТЕЛЬ И ПРОГРАММА
Терминология
Объекты.
Определение объекта и прагматическое замечание соответствуют ГОСТ 27974.
Значения, участки, окружения и сцены.
Гиперправила а, с, d соответствуют ГОСТ 27974.
Ь) Всякий ,,участок” Тесть внутренний объект, который}- соответствует каким-то '7ОПИСАНИЯМ 7МЕТКАМ ’ПОДКЛЮЧЕНИЯМ' {1.2.3 С, 1}. ,.Незанятый участок” это участок, для которого 7ОПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ’ есть' ПУСТО'.
{Каждое 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА' (4.8.1. F, G), заложенное в данные '7ОПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ'. соответствует определяющему -ОБОЗНАЧЕНИЕ-индикатору-выдающему-ПРИЗНАК (т.е. какому-нибудь идентификатору, обозначению-операции или индикатору-вида), описанному в конструкте, исполнение которого вызвало создание данного участка. Указанное ОБОЗНАЧЕНИЕ для ПРИЗНАКА' может „получать доступ” к какому-то значению или сцене „внутри” этого участка (2.1.2.с).
Образом участка может служить ряд ячеек памяти, в которые помешены эти доступные объекты.}
Виды определены в ГОСТ 27974.
Области действия.
Прагматические замечания и гиперправило а) соответствуют ГОСТ 27974.
Каждое окружение имеет одну определенную „область действия”. {Область действия каждого окружения никогда не бывает „старше” (2.1.2.f) области действия того окружения, из которого оно составлено (2.1.1.1-е).}
Соотношения
Гиперправила a, b, с, d, е, f, g соответствуют ГОСТ 27974.
„Реагировать” есть соотношение между значением {процедурой} и сценой {определением-ситуации}, которое может быть справедливым „внутри” определенного участка. Данное соотношение становится справедливым после исполнения определения-реакции.
Окружение может быть „связано” с другим окружением {со старшей областью действия} „посредством” некоторой сцены {определения- ситуации}. Это соотношение может быть справедливым для некоторого окружения, созданного в процессе исполнения вызова-ситуации.
Значения определены в ГОСТ 27974.
Действия
Исполнение соответствует ГОСТ 27974.
Последовательные и совместные действия соответствуют ГОСТ 27974.
Запуск, завершение и прекращение
Правила a, b, с, d, е, f, g и прагматическое замечание соответствуют ГОСТ 27974.
Всякое действие может „прерваться” событием, {например, „переполнением”}, не определяемым семантикой настоящего стандарта, но вызванным вычислителем, если его возможности {2.2.2.Ь} не позволяют обеспечить удовлетворительное исполнение. Когда действие прерывается, прерываются все его поддействия и, возможно, его наддействия. {Возобновятся ли эти действия после прерывания, будут ли запущены другие действия или же окончится исполнение данной программы, настоящим стандартом оставлено не определенным. Для некоторых событий определены восстанавливающие действия (1.1.4.4.).}
Действие может прерваться, если вычислитель обнаруживает, что время (место в памяти), выделенное для исполнения программы, близко к исчерпанию. В таком случае восстанавливающим действием служит вызов процедуры восстановление после исчерпания времени {10.2.5.р} (восстановление после исчерпания памяти {10.2.5.q}). {Предполагается, что остающееся количество времени (памяти) будет достаточным, чтобы восстанавливающее действие обеспечило аккуратное завершение или же добыло дополнительные ресурсы.}.
Сокращения определены в ГОСТ 27974.
Программа соответствует ГОСТ 27974.
ПРЕДЛОЖЕНИЯ
Все прагматические замечания соответствуют ГОСТ 27974.
3.0.1. Синтаксис
Гиперправила a, b, с, d, е соотстветствуют ГОСТ 27974.
f) * блок с СРЕДЕ: определяющее СЛОЙ последовательное предложение ПРИВОДИМОЕ В СРЕДЕ {32а]-;
состав ВЫБИРАЮЩЕГО предложения
ОФОРМЛЕННЫЙ ПРИВОДИМЫЙ в СРЕДЕ {34b};
вариант выбирающий по ПРЕДСТАВИТЕЛЮ ПРИВОДИМЫЙ в СРЕДЕ {341};
ОФОРМЛЕННЫЙ цикл с ОПИСАНИЕМ в СРЕДЕ {35е};
ОФОРМЛЕННЫЙ подчиненный условию цикл в СРЕДЕ {35f}; текст процедуры в СРЕДЕ выдающий ПРОЦЕДУРУ {541а, Ь}; определяющий СЛОЙ текст модуля в СРЕДЕ передающий
ІСВЯЗИ {49с,-};
модульный кортеж с 7ОПИСАНИЯМИ без 7ОПИСАНИЙ1 в СРЕДЕ с СЛОЕМ 1 с СЛОЕМ2 {42d};
подключающее предложение ПРИВОДИМОЕ в СРЕДЕ {36а}.
2. Семантика соответствует ГОСТ 27974.
Замкнутые предложения определены в ГОСТ 27974.
П о с л е д о в а т е л ь н ы е предложения
Синтаксис
Гиперправила a, b, с, d, е, f, g, h соответствуют ГОСТ 27974.
* определяющее предложение:
определяющее СЛОЙ последовательное
предложение ПРИВОДИМОЕ в СРЕДЕ {32а};
определяющее СЛОЙ выясняющее
предложение выдающее ВИД в СРЕДЕ {34с};
определяющий СЛОЙ текст модуля в СРЕДЕ
передающий ІСВЯЗИ {49с, -};
определяющее СЛОЙ подключение в СРЕДЕ передающее 7СВЯЗИ {36а, -}.
Семантика
Выдачей последовательного-предложения в окружении Е является выдача исполнения его кортежа или любого кортежа, исполняемого „вместо него” {5.4.4.2}, в окружении, „устанавливаемом” {Ь} вокруг Е согласно этому последовательному-предложению; требуется, чтобы по области действия эта выдача не была младше данного Е, причем восстанавливающим действием служит вызов процедуры восстановление после ошибки области действия {10.2.5 .п}.
Окружение Е, „устанавливаемое”
по окружению Е1, возможно не обусловленному, -{которое определяет его область действия,}
вокруг окружения Е2, -[определяющего его состав,}
согласно определяющему-новые- 7ПАРЫ-ПОНЯТИЮ С, возможно отсутствующему, {которое задает его участок,}
со значениями Vt, ... , Vn, возможно отсутствующими, {которые возможно будут приписаны,} определяется следующим образом:
если Е1 не обусловлено, то пусть Е1 будет Е2;
Е младше Е1 по области действия и составлено из Е2 и нового участка, соответствующего '7ПАРАМ', если С присутствует, а иначе соответствующего ' ПУСТО';
Случай А : С есть определяющее-предложение:
Для каждого составляющего определения-вида М этого С, если они вообще есть.
сцена, составленная из
фактического-описателя этого М и
окружения, необходимого для {7.2.2.с} этого фактического-описателя в Е, приписывается индикатору-вида этого М в Е;
Для каждого составляющего определения -метки L этого С, если они вообще есть.
• сцена, составленная из
кортежа, для которого L — прямой наследник, и
окружения Е, приписывается идентификатору-метки этого L в Е;
Для каждого составляющего определения-ситуации X этого С, если они вообще есть.
• сцена, составленная из
X и
окружения Е, приписывается идентификатору-ситуации этого X в Е;
Если каждая 'ПАРА', заложенная в '? ПАРЫ', есть 'ИНФИКС для БИНАРНОГО' или 'СЛОВО для метки' или 'СЛОВО для ситуации с видом ПРОЦЕДУРА',
то Е называется „нелокализующим” {см. 5.2.3.2.Ь};
Случай В : С есть задание-аргументов, заглавие-цикла или спецификация:
Для i = l, ... , п, где п-число'ОПИСАНИЙ', заложенных в'7ПАРЫ', • Vj приписывается {4.8.2.а} і-му составляющему определяюще- му-идентификатору этого С в Е, если они вообще есть, а иначе {в случае невидимого заглавия-цикла} некоторому определяющему- букву-алеф-идентификато ру-выдающему-целое;
Если С служит заглавием-цикла или спецификацией, то Е является нелокализующим.
{В остальных случаях, т. е. когда С отсутствует:
• Е является локализующим (см. 5.2.3.2.Ь), но дальнейшее не определено.}
с) Выдача W всякого кортежа С определяется следующим образом:
Если С содержит прямую наследную основу, за которой нет знака-про- должать, то
W — выдача этой основы;
а иначе
исполняется описание или основа этого С, если они вообще есть;
W — выдача кортежа этого С.
{См. также 5.4.4.2. Случай А.}
С о в м е с т н ы е и параллельные предложения
Синтаксис соответствует ГОСТ 27974.
Семантика
Гиперправило соответствует ГОСТ 27974.
Выдача W совместного-предложения-выдающего-СОСТАВНОЕ С определяется следующим образом:
Если прямой наследник из С есть вакуум, то {'СОСТАВНОЕ’ есть 'МАССИВ из ВИДА',} каждая граничная пара в паспорте выдачи W равна (1,0) {, и имеется один скрытый элемент, значение которого не существенно};
иначе
пусть Vj, ... , Vm будут {совместными} выдачами составляющих основ из С;
Случай А: 'СОСТАВНОЕ' есть 'структура содержащая !ПОЛЯ в себе':