Контекстные условия языков программирования

Большинство контекстных условий связано с двумя важнейшими особенностями языков программирования:

1) возможность представления на этих языках алгоритмов обработки значений различных видов ( типов);

2) наличие так называемых областей действия.

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

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

2) Правила соответствия между так называемыми определяющими и использующими вхождениями идентификаторов. Определяющим называется вхождение идентификатора в конструкцию, описывающую этот идентификатор. Использующим называется вхождение идентификатора в такую конструкцию, которая не является его описанием.

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


Литература

 

1. Братчиков, И.Л. Синтаксис программирования [Текст] / И.Л. Братчиков //Серия «Библиотечка программиста».– М.: Наука, 1975. –232с.

 

2. Пентус, А.Е. Математическая теория формальных языков [Электронный ресурс]/ А.Е. Пентус, М.Р. Пентус. Режим доступа: http://www.intuit.ru/department/algorithms/mathformlang/

3. Коган, Д.И Концепции конечного автомата и регулярного языка. Операции над регулярными языками [Электронный ресурс]/ Д.И. Коган, Т.С. Бабкина// Учебно-методическая разработка. Режим доступа: http://window.edu.ru/window/library?p_rid=45585

4. Бахманн, П. Программные системы [Текст] / П. Бахманн, М.Френцель, К. Ханцшманн [ и др.]; под ред. П.Бахманна. Перевод Л.В. Ухова; под ред.И.В. Поттосина.–М.:Мир, 1988.– 288с.


 

Содержание

Введение.......... 3

1. Языки формулировки задания...................................... 4

1.1. Функции. программ перевода. 4

1.1.1. Общие требования к языкам формулировки задания. 5

1.1.2. Требования к языкам формулировки задания с точки зрения их использования. 6

1.2.Лексический и синтаксический анализ. 6

1.3.Проверка контекста и порождение сценария. 10

2.Теория формальных языков…......... 12

2.1. Порождающие грамматики. 12

2.2. Иерархия распознающих автоматов. 14

3. Синтаксис языков программирования...... 17

3.1. Основные характеристики языков программирования. 17

3.2. Нормальные формы Бекуса. 19

... 3.3. Определение и общие свойства порождающих грамматик 21

3.4. контекстно-свободные грамматики. 24

3.4.1. Определение дерева вывода. 24

3.4.2. Алгоритм получения скобочной записи синтаксического дерева вывода. 25

3.4.3. Операции над бинарными отношениями. 27

3.5. Автоматные грамматики. 30

3.6. Методы распознавания и анализа языков. 31

3.6.1. Машина Тьюринга как распознающее устройство. 31

3.6.2. Автоматы и преобразователи с магазинной памятью. 33

3.7. Построение анализаторов КС-языков по порождающим грамматикам. 35

3.7.1. Анализаторы предшествования. 36

3.7.2. LR(k)-анализатор. 37

3.7.3. Глобальный анализатор. 37

3.8. Контекстные условия языков программирования. 38