Синтаксис Языка Программирования Паскаль


Описание синтаксиса языков программирования
Июль 22, 2016 – 10:28
слайда 1 Алфавит и синтаксис

При описании известных языков программирования используются следующие нотации:

  • Форма Бэкуса-Наура (БНФ);
  • Синтаксические диаграммы;
  • Расширенная форма Бэкуса-Наура;
  • Описания синтаксиса языков семейства Си;
  • Описания синтаксиса языка Ада;
  • Определение синтаксиса Кобола и ПЛ/1.

Форма Бэкуса-Наура (БНФ)

Форма Бэкуса-Наура (БНФ) была впервые применена при описании Алгола-60. БНФ совпадает по сути с нотацией КС-грамматик, отличаясь лишь обозначениями. Предусмотрены следующие метасимволы:

— служат для выделения нетерминалов — понятий языка. | — «или». Разделяет альтернативные правые части правил. — «есть по определению». Заменяет стрелку, используемую при записи продукций КС-грамматик.

Терминальные символы записываются как есть, никаких специальных способов их выделения не предусмотрено. Вот пример определений на БНФ, взятый из спецификации Алгола-60 — «Модифицированного сообщения»:

::= 1 Окак операции типа сложения> | ::= + | -

Как видим, для выражения повторений используется рекурсия, причем повсеместно — левая. БНФ использована Н. Виртом при описании языка Паскаль. Хотя в нотацию были добавлены метаскобки {и}, обозначающие повторение, применены они лишь в отдельных случаях, в то время как, например, грамматика выражений леворекурсивна.

Синтаксические диаграммы

Синтаксическая диаграмма — это направленный граф с одним входным ребром и одним выходным ребром и помеченными вершинами. Синтаксическая диаграмма задаёт Формальный язык. Цепочка пометок при вершинах на любом пути от входного ребра к выходному — это цепочка языка, задаваемого синтаксической диаграммой. Поэтому можно считать, что синтаксическая диаграмма - это одна из форм порождающей грамматики автоматных языков. Синтаксические диаграммы и конечные автоматы имеют тесную связь: любой автоматный язык задаётся синтаксической диаграммой и обратно, по любой синтаксической диаграмме можно построить конечный автомат(в общем случае недетерминированный), распознающий тот же язык, который задаёт диаграмма.

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

Таким образом, синтаксические диаграммы могут служить не только для порождения, но и для распознавания автоматных языков. Диаграммы стали популярны после выхода книги К. Йенсен и Н. Вирта «Паскаль». Они использованы в первой ее части — «Руководстве» — компактном учебнике языка. На рис. 3.1 показана одна из имеющихся там диаграмм.

Source: wiki.mvtom.ru
Похожие публикации