Cтраница 3
Понятие пустого оператора не имеет самостоятельного значения; оно вводится для удобства описания более сложных синтаксических конструкций, означая, что на том месте, где согласно металингвистической формуле должен находиться ( оператор), может в частном случае ничего не быть. [31]
Металингвистическими формулами очень удобно пользоваться для справок. Так, например, желая вспомнить, можно ли в операторе цикла после do помещать условный оператор, обращаемся к определению оператора цикла и моментально убеждаемся, что после do можно помещать любой оператор, и в частности условный оператор. [32]
В скобках-уголках (, ) записываются понятия, с которыми мы имеем дело - определяемые данной формулой или определяемые в каких-либо других формулах. Каждая металингвистическая формула определяет ровно одно понятие и начинается с указания понятия, которое определяется; далее следует знак: : , который читается и означает: это есть или есть по определению. Таким образом, первая из приведенных металингвистических формул определяет понятие цифры, вторая - буквы, третья - идентификатора. [33]
Подобная рекурсия в металингвистических формулах нам уже встречалась, и в данном случае она означает только, что составной оператор может в частности содержать внутри себя составные операторы. [34]
Конструкции описания языка с помощью рассмотренных выше символов грамматики Бэкуса и называются металингвистическими формулами. Для удобства пользования все металингвистические формулы будут пронумерованы числами, указанными в левой части страницы. [35]
Такие формулы, служащие для формального описания языка, называются металингвистическими. Рассмотренные нами до сих пор металингвистические формулы четко предопределяют число знаков в возможных значениях описываемых терминов. [36]
С помощью металингвистических формул можно давать определение лишь объектам, которые представляют собой конечные последовательности некоторых символов. Определяя какие-то понятия, например понятия алгола, металингвистические формулы ничего не говорят нам о том, какой смысл вкладывается в эти понятия и как ими пользоваться, они только определяют способ построения некоторых последовательностей символов. Металингвистические формулы определяют синтаксис алгола. [37]
В литературе для описания синтаксиса языка Алгол обычно используется метаязык Бэкуса, предназначенный специально для описания синтаксиса алгоритмических языков. Определения конструкций Алгола на метаязыке записывают в виде металингвистических формул. В левой части этих формул пишут определяемое понятие, а в правой - определяющее его выражение. Выражение строят из металингвистических постоянных и металингвистических переменных с помощью двух операций: перечисления и составления. Роль постоянных величин в металингвистических формулах выполняют основные символы языка Алгол. Переменными величинами являются все остальные конструкции языка. [38]
Материал этой главы является справочным, он предназначен для читателя, который в основном уже освоил программирование на АЛГОЛе. Здесь будут даны строгие определения синтаксических конструкций языка АЛГОЛ посредством металингвистических формул. Они составляют специальный язык, с помощью которого удается строго и формально описать синтаксис АЛГОЛа. [39]
Важнейшим отличием языка Алгол-60 от предшествовавших ему языков, например Фортрана, является строго формальное определение синтаксиса. В официальном описании языка [1] для определения синтаксиса впервые были использованы металингвистические формулы, предложенные Дж. Синтаксис доалго-ловских языков, как правило, не был точно определен. Фактически язык определялся предназначенным для него транслятором, действие которого при трансляции некоторых конструкций языка нельзя было заранее предсказать. [40]
Строгое описание формальной грамматики само требует не. В нашем случае мы описываем язык логических формул, исполь-вуя метаязык металингвистических формул. Список металингвистических формул называют синтаксисом описываемого языка. [41]
Однако в фортране синтаксические определения даются в ином виде - просто приводится вид той конструкции, которая образует определяемое понятие, причем отдельные компоненты этой конструкции, не являющиеся буквами алфавита, указываются с помощью их условных обозначений. Зато такой способ обеспечивает лучшую наглядность определяемой структуры, что является его преимуществом по сравнению с языком металингвистических формул, который к тому же не был еще известен к моменту появления фортрана. В дальнейшем изложении мы не будем отходить от принятого в фортране способа описания синтаксиса, тем более что он является общепринятым во всех материалах, относящихся к этому языку. [42]
Так как с момента своего появления язык ФОРТРАН не определяется формально, подобно тому как АЛГОЛ определяется с помощью металингвистических формул, то в ходе разработки языка в разных организациях были созданы различные, иногда несовместимые, варианты языка, называемые ФОРТРАН-IV. В данной главе будет описан язык, охватывающий основные возможности вариантов языка ФОРТРАН-IV. Для использования конкретного варианта языка нужно ознакомиться с руководством по его применению, имеющемуся в каждом вычислительном центре. [43]
Обычно при описании АЛГОЛа, начиная с авторов языка, применяют металингвистические формулы Бекуса. Мы также будем довольно часто использовать нормальную нотацию Бе-куса, сопровождая ее подробным комментарием, так как приобретение навыков в чтении металингвистических формул, в восприятии строгого изложения, дает возможность читателю подготовиться к изучению многих других языков программирования. [44]
С помощью металингвистических формул можно давать определение лишь объектам, которые представляют собой конечные последовательности некоторых символов. Определяя какие-то понятия, например понятия алгола, металингвистические формулы ничего не говорят нам о том, какой смысл вкладывается в эти понятия и как ими пользоваться, они только определяют способ построения некоторых последовательностей символов. Металингвистические формулы определяют синтаксис алгола. [45]