Главная Промышленная автоматика.

ОПИСАНИЕ ЭТАЛОННОГО ЯЗЫКА

То, что вообще может быть сказано, может быть сказано ясно, а о чем невозможно говорить - о том следует молчать.

Людвиг Витгенштейн

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

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

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

, Для того чтобы указать ход вычислительных процессов, добавляются некоторые неарифметические и условные операторы, которые могут, например, описывать альтернативы или циклические повторения вычислительных операторов. Ввиду того что для функционирования этих операторов возникает необходимость их



взаимосвязи, операторы могут снабжаться метками. Чтобы образовать составной оператор, последовательность операторов можно заключить в операторные скобки begin и end.

Операторы дополняются описаниями, которые сами по себе не являются предписаниями о вычислениях, но информируют транслятор о существовании и некоторых свойствах объектов, фигурирующих в операторах. Этими свойствами могут быть, например, класс чисел, используемых в качестве значений переменной, размерность массива чисел или даже совокупность правил, определяющих некоторую функцию. Последовательность описаний и следующая за ней последовательность операторов, заключенные между begin и end, составляют блок. Каждое описание вводится в блоки таким путем и действительно только для этого блока.

Программа является блоком «ли составным оператором, который не содержится внутри другого оператора и который «е использует других операторов, не содержащихся в нем.

Ниже будут приведены синтаксис и семантика языка "

.1.1. Формализм для синтаксического описания

Синтаксис описывается с помощью металингвистических формул [3]. Их интерпретация лучше всего объяс-. няется с помощью примера:

<аЬ> :: = ([Kab>(Kab>(d>

Последовательности знаков, заключенные в скобки ( )", цедставляют собой металингвистические переменные,

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



L Структура языка 19

значениями которых являются последовательности символов. Знаки : : = и I (последний со значением «или») - это металингвистические связки. Любой знак в формуле, который не является переменной или связкой, обозначает самого себя (или класс знаков, ему подобных). Соединение знаков и (или) переменных в формуле означает соединение обозначаемых последовательностей. Таким образом, вышеприведенная формула задаёт рекурсивное правило для образования значений переменной (аЬ>. Она указывает, что (аЬ) может иметь значение либо (, либо [, или же, если дано некоторое допустимое значение аЬ), то еще одно значение можно получить, поставив за аЬ) символ ( или некоторое значение переменной (d). Если значениями d>, являются десятичные цифры, то некоторые из значений ЛаЬ) суть:

... . [(((1(37(

• • (12345( • •

•..({( [86

Чтобы облегчить изучение, символы, используемые для различения металингвистических переменных (т. е. последовательностей знаков, стоящих внутри скобок ( ), подобно аЬ в вышеприведенном примере), выбраны в виде слов, приблизительно описывающих природу соответствующей переменной. Там, где слова, введенные таким способом, используются где-либо в тексте, они всегда относятся к соответствующему синтаксическому определению. Кроме того, некоторые формулы приве* дены по нескольку раз.

Определение: • " •

(пусто) : : = . .

(т. е. строка, не содержащая символов).





0 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

0.002