ГОСТ Стандарт

ГОСТ 21551-76

Язык программирования АЛГАМС

2 696 просмотров

Кратко

Це державний стандарт СРСР, що визначає синтаксис та семантику мови програмування АЛГАМС для наукових та інженерних обчислень. Документ регулює правила створення алгоритмів та трансляторів, не маючи жодного відношення до охорони праці чи техніки безпеки.

Что сделать

Оскільки цей документ не стосується охорони праці, фахівцю з ОП не потрібно вживати жодних практичних заходів на його основі. Рекомендується ігнорувати цей стандарт при розробці інструкцій з безпеки.

Темы

Касается профессий

програміст інженер-програміст

Скачать документ

Формат .docx · доступно зарегистрированным пользователям

Войти и скачать

Текст документа

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

СОЮЗА ССР

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

АЛ ГАМС

ГОСТ 21551-76

Издание «официальное

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО СТАНДАРТАМ

Москва

УДК 681.3.065.4:006.354

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

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

АЛГАМС

Programming languages ALGAMS
Постановлением Государственного комитета стандартов Совета Министров СССР от 6 февраля 1976 г. № 353 срок действия установлен
с 01.07.1977 г.
до 01.07,1982 г.
Настоящий стандарт устанавливает описание языка програм­мирования АЛГАМС*, предназначенного для автоматизации про­граммирования при решении научных и инженерно-технических за­дач, а также для обмена алгоритмами.
Установленное настоящим стандартом описание языка АЛГАМС должно применяться при создании алгоритмов на языке АЛГАМС и трансляторов с АЛГАМСа.
В алгоритмах на АЛГАМСе должны использоваться только те языковые средства, которые установлены настоящим стандартом.
Транслятор с АЛГАМСа должен обеспечивать трансляцию лю­бого алгоритма, разработанного в соответствии с настоящим стан­дартом.
Указатель определенных в стандарте понятий и синтаксических единиц приведен в справочном приложении 1.

1. СТРУКТУРА ЯЗЫКА

Назначением алгоритмического языка является списание вы­числительных процессов. Описания правил вычислений основыва­ются на хорошо известном понятии арифметического выражения, содержащего в качестве составных частей числа, переменные и функции. Из таких выражений путем применения правил арифме-
* История создания языка АЛГАМС и его отличия от языка АЛГОЛ-60 приведены и справочных приложениях 4 и 5.
Издание официальное Перепечатка воспрещена
Переиздание. Феврали 1979 г.

©Издательство стандартов, 1979
тической композиции образуются самостоятельные единицы языка — явные формулы, называемые операторами присваивания.
Для того, чтобы указать ход вычислительных процессов, добав­ляются некоторые неарифметические и условные операторы, кото­рые могут, например, описывать альтернативы или циклические повторения вычислительных операторов. Ввиду того, что для функ­ционирования этих операторов возникает необходимость их взаи­мосвязи, операторы могут снабжаться метками. Чтобы образовать составной оператор, последовательность операторов можно заклю­чить в операторные скобки begin1 и end.
Операторы дополняются описаниями, которые сами по себе не являются предписаниями о вычислениях, но информируют транс­лятор о существовании и некоторых свойствах объектов, фигури­рующих в операторах. Этими свойствами могут быть, например, класс чисел, используемых в качестве значений переменной, раз­мерность массива чисел или даже совокупность правил, определя­ющих некоторую функцию. Последовательность описаний и следу­ющая за ней последовательность операторов, заключенные между begin и end, составляют блок. Каждое описание вводится в бло­ки таким путем и действительно только для этого блока.
Программа является блоком или составным оператором, кото­рый не содержится внутри другого оператора и который не ис­пользует других операторов, не содержащихся в нем.
Ниже будут приведены синтаксис и семантика языка2.
1.1. Формализм для синтаксического описания Синтаксис описывается с помощью металингвистических фор­мул. Их интерпретацию лучше всего можно объяснить на примере:
<ab>:( I [ | <ab>( j <ab><d>
Последовательности знаков, заключенные в скобки <>, пред­ставляют собой металингвистические переменные, значениями ко­торых являются последовательности символов. Знаки ::= и | (по­следний со значением «или») —это металингвистические связки. Любой знак в формуле, который не является переменной или связ­кой, обозначает самого себя (или класс знаков, ему подобных). Соединение знаков и (или) переменных в формуле означает сое­динение обозначаемых последовательностей. Таким образом, фор­мула, приведенная выше, задает рекурсивное правило для обра­зования значений переменной <ab>. Она указывает, что <ab> может иметь значение либо (, либо [, или же, если дано некоторое допустимое значение <ab>, то еще одно значение можно полу­чить, поставив за <ab> символ (, или некоторое значение пере­менной <d>. Если значениями <d> являются десятичные циф­ры, то некоторые из значений <ab> суть:
[ ( ( ( Н з 7 (
( 1 2 3 4 5 (
Чтобы облегчить изучение, символы, используемые для разли­чения металингвистических переменных (то есть последовательно­стей знаков, стоящих внутри скобок <>, подобно ab, в приведен­ном выше примере), выбраны в виде слов, приблизительно описы­вающих природу соответствующей переменной. Там, где слова, вве­денные таким способом, используются где-либо в тексте, они все­гда, если не оговорено противное, относятся к соответствующему синтаксическому определению. Кроме того, некоторые формулы приведены по нескольку раз.
Определение:
<пусто>::=
(то есть строка, не содержащая символов).

2. ОСНОВНЫЕ СИМВОЛЫ, ИДЕНТИФИКАТОРЫ, ЧИСЛА И СТРОКИ.

ОСНОВНЫЕ ПОНЯТИЯ

Язык строится из следующих основных символов:
Сосновной символ>::= <буква> | <цифра> | <логическое значение> <ограничитель>
2.1. Буквы
<буква>: : =
АІВIСIDIЕIFIG 1111! IJIКILIМINІОIРIQ | Р | 8 | Т |U| V[ W|X|Y|Z Буквы не имеют индивидуального смысла. Они используются для образования идентификаторов и строк (см. пп. 2.4 и 2.6).
2.2. Цифр ы. Логичсскиезначеиия
2.2.1. Цифры
<цифра > : : = 01 1 | 21314 15 | (’> | 7 | 8 | 9
Цифры используются для образования чисел, идентификаторов и строк.
2.2.2. Логические значения
<логическое значение> : : = true | false
Логические значения имеют фиксированный очевидный смысл3.

2.3. Ограничители
<ограничитель> :: = <знак операцииХ | <разделитель> |
<скобка> І <описатель> і <спецификаторХ
<знак операциях :: = <знак арифметической операции> |
<знак операции отношениях/ <зпак логической операции>|
<знак операции следования>
<знак арифметической операцииХ:: = + | — 1X1/ Г
<знак операции отношениях :: = < | < | = | > | х 7=
<знак логической операцииХ: : = IIVIAIП
<знак операции следованиях :: = go to [if [then [else [for [do
<разделительХ:: = , |.|I(I|: |; j: =| — [step [until [while | comment СскобкаХ:: = (|) |[ |]| ’ | begin )end
<описатель>:: = Booleanjinteger [real [array [switch | procedure
•< спецификатор X -: = string | label | value
Ограничители имеют фиксированный смысл, который в боль­шинстве случаев очевиден4, а в остальных случаях будет указан ниже. Пробел или переход на новую строку, в языке не принима­ются во внимание. Однако для облегчения чтения их можно сво­бодно использовать.
Для возможности включения текста между символами програм­мы имеют место следующие правила для примечаний:
Последовательность основных сим.Х'.ъ'в:
: comment <любая последовательность, не содержащая символа “;“ X ;
begin comment <любая последовательно'-г;>, пс содержащая символа “;“ X ;
end С.тюбая последовательность, не содержащая ;.щ сим­вола ,,end“, , пи символа “ ; “, пи символа ,,eise">
Эквивалентность здесь означает, что любую из трех конструк­ций, указанных в левой колонке, если она встречается вне некото­рой строки, можно заменять соответствующим ей символом, ука­занным в правой колонке. Эта замена нс оказывает никакого вли­яния па работу программы. При этом считается, что конструкцию примечания, встретившуюся раньше при чтении текста слева на­право. следует заменять прежде, нежели более поздние конструк­ции, содержащиеся в этой последовательности.
2.4. Идентификаторы
2.4.1. Синтаксис
<идентификатор> :: = Сбуква>| <идентнфикатор> <буква> |
<идентификатор> Сцифра>)
2.4.2. Примеры
Q

SOUP

V17A

A34KTMNS

MARILYN

2.4.3. Семантика
Для описания языка удобно под термином идентификатор по­нимать не только определенную в п. 2.4.1 и дальнейшим синтакси­сом синтаксическую единицу, но и специальные последовательно­сти букв и цифр, начинающиеся с букв ЕХ или PART и изобража­ющие синтаксические единицы Свнешний идентификатор > (пп. 3.1.1 и 5.2.6) и <идентификатор части> (пн. 4.1.1 и 4.1.3).
Идентификаторы не имеют неизменно присущего им смысла, а служат для обозначения простых переменных, массивов, меток, идентификаторов части, процедур и формальных параметров. Их можно выбирать произвольно (рекомендуется при этом учитывать разд. 6, а также указанные в пп. 4.1.3 и 5.2.G ограничения на упо­требление идентификаторов с первыми буквами ЕХ или PART).
Один и тот же идентификатор нельзя использовать для обозна­чения двух различных объектов, за исключением случая, когда эти объекты имеют несовместные области действия (п. 2.7 и разд. 5).
2.5. Числа
2.5.1. Синтаксис
Сцелое без знака> :: = <цифра>| Сцелое без знака> <ци- фра>
Сцелое> = Сцелое без знака>| + Сцелое без знака>| — <целое без знака>
Справнльная дробь>::= . <целое без знака>
<порядок> :: = ю <целое>
Сдесятичное число>:: = <целое без знака> ) Справнльная дробь> I
<целое без знака> Справнльная дробь>
Счисло без знака >:: = Сдесятичное число> | <порядок>[
Сдесятичное чис.ло> <порядок>
<число>: : = Счисло без знака> f + Счисло без знака>|
— Счисло без знака>
2.5.2. Примеры
О -200.084 — .083,0—02
177 +07.43ю8 —ю7
.5384 9.34(о + Ю ]0—4
+ 0.7300 210—4 +io + 5
2.5.3. Семантика
Десятичные числа имеют свой обычный смысл. Порядок — это масштабный множитель, выраженный как целая степень десяти.
2.5.4. Типы
Целые имеют тип integer. Остальные числа имеют тип real (п. 5.1).
2.6. Строки
2.6.1. Синтаксис
<строка> :: =‘<любая последовательность символов, не со­держащая ‘ или ’> ’ I
2.6.2. Пример

THIS IS . . А STRING’

2.6.3. Семантика
Для того, чтобы в языке можно было иметь дело с произволь­ными последовательностями основных символов, введены кавычки для строк: ‘и’. Символ । , обозначает пробел. Вне строк он не
имеет смысла.
Строки используют в качестве фактических параметров проце­дур (см. пп. 3.2 и 4.7).
2.7. Величины, классы и области действия
Различают следующие классы величин: простые переменные, массивы, метки, идентификаторы части, переключатели и процеду­ры.
Область действия величины — совокупность операторов и вы­ражений, внутри которых определена связь этой величины и изо­бражающего ее идентификатора. Для всех величин, кроме стан­дартных процедур и функций, меток и