Скачиваний:
6
Добавлен:
01.05.2014
Размер:
17.45 Кб
Скачать

Course1  " Формальные языки, грамматики и автоматы" Основными объектами изучения научного направления "Информатика" являются модели, представимые в памяти компьютера. Методы построения подобных моделей в различных предметных областях основаны на моделях конечных автоматов и формальных грамматик. Широкое использование таких моделей в теоретических исследованиях и разработке систем, используемых на практике, позволяет рассматривать их как одну из основ образования по направлению "Информатика". Главным назначением дисциплины "Формальные языки, грамматики и автоматы" является ознакомление студентов, обучающихся по направлению "Информатика" с основами теории, методами и приемами практического использования  аппарата формальных грамматик и конечных автоматов. Изучение дисциплины планируется на 5-ом семестре и включает: курс лекций ( 4 часа в неделю ), лабораторные работы ( 2 часа в неделю ) и курсовую работу.

Лабораторные работы выполняются в компьютерном классе с использованием системы обучения синтаксическому анализу ( ОСА ). Эта система была разработана на кафедре Вычислительной техники Санкт-Петербургского Государственного Электротехнического Университета,  в основном силами доц. Разумовского Г.В. и ассистента Кузнецова И.А.  Она позволяет  автоматизировать некоторые этапы синтеза магазинных автоматов и моделировать их работу.

В курсовой работе студенты реализуют программные модели магазинных преобразователей для некоторых фрагментов языков программирования.

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

Учитывая существующие трудности, публикацию электронной версии текста пособия предполагается  выполнять частями в соответствии с планом пособия по мере их подготовки.                 12.05.1998                                                                              В.Фомичев

 Содержание курса

  1. Формальные языки и грамматики.

2. Контекстно-свободные грамматики и магазинные автоматы.

3. Нисходящие и  восходящие распознаватели.

4. Описание перевода и преобразователи.

5. Атрибутные грамматики и преобразователи.

6. Автоматные грамматики и конечные автоматы.

7. Абстрактный синтез автоматов.

8. Переключательные функции и синтез комбинационных схем.

9. Структурный синтез автоматов.  

 

    1. Формальные языки и грамматики 1.1. Введение

1.1.1. Трансляторы , интерпретаторы и компиляторы

1.1.2. Стадии работы компилятора

1.1.3. Построение компилятора

1.1.4. Термины

1.2. Определение формальной грамматики и языка

1.2.1. Первичные понятия

1.2.2. Примеры, иллюстрирующие первичные понятия

1.2.3. Пустой язык

1.2.4. Резюме

1.2.5. Термины

1.3. Типы формальных языков и грамматик

1.3.1. Грамматики типа 0

1.3.2. Грамматики типа 1

1.3.3. Грамматики типа 2

1.3.4. Грамматики типа 3

1.3.5. Вывод в КС-грамматиках и правила построения дерева вывода

1.3.6. Синтаксический разбор

1.3.7. Левый и правый выводы

1.3.8. Неоднозначные и эквивалентные грамматик

1.3.9. Резюме

1.3.10. Упражнения

1.3.11. Термины

1.4. Способы задания схем грамматик

1.4.1. Форма Наура-Бэкуса

1.4.2. Итерационная форма

1.4.3. Синтаксическая диаграмма

1.4.4. Резюме

1.4.5. Упражнение

1.4.6. Термины

1.5. Построение грамматик и грамматики, описывающие основные конструкции языков программирования

1.5.1. Рекомендации по построению грамматик

1.5.2. Описание списков

1.5.3. Пример построения грамматик

1.5.4. Грамматики, описывающие целые числа без знака и идентификаторы

1.5.5. Грамматики для арифметических выражений

1.5.6. Грамматика для описаний

1.5.7. Грамматика, задающая последовательность операторов присваивания

1.5.8. Грамматики, описывающие условные операторы и операторы цикла

1.5.9. Резюме

1.5.10. Упражнения

  2. Контекстно-свободные грамматики и магазинные  автоматы. 2.1 Приведенные грамматики.

2.2  Определение непроизводящих символов.

2.3 Определение недостижимых символов.

2.4  Определение бесполезных символов.

2.5 Исключение леворекурсивных правил.

2.6 Исключение цепных правил.

2.7 Преобразование неукорачивающих грамматик.

2.8  Магазинные автоматы.

2.9 Работа магазинного автомата.

2.10.Язык, допускаемый магазинным автоматом.

2.11 Построение магазинного автомата.

2.12 Пример построения автомата.

 2.13 Резюме.

 2.14 Упражнения.

2.15 Термины.

   3. Нисходящие и восходящие распознаватели.  3.1 Нисходящие распознаватели и LL(K) - грамматики

 3.2 Разделенные грамматики

 3.3   Построение детерминированного нисходящего распознавателя.

 3.4  Слаборазделенные  грамматики.

 3.4.1 Функции  ПЕРВ, СЛЕД  и  ВЫБОР.

 3.4.2 Построение функции ПЕРВ(µ)

 3.4.3 Построение функции СЛЕД(<B>)

3.4.4 Построение функции ВЫБОР.

3.4.5 Слаборазделенные грамматики

3.5 LL(1) - грамматики.

3.6 Построение магазинного автомата.

3.7  Преобразование грамматик к виду LL(1).

3.7.1  Исключение леворекурсивных правил.

3.7.2  Выделение общих частей.

3.8  Резюме.

3.9  Упражнения

 

 

    4.      Способы  описания  перевода.  Бесскобочные  выражения.

                                        Преобразователи. 4.1. Описание перевода или трансляции .

4.1.1.  Синтаксически - управляемые  схемы

4.1.2.  Перевод, определяемый СУ-схемой.

4.1.3.  Простая СУ - схема.

4.1.4.  Построение  простой СУ - схемы.

4.1.5.  Транслирующие грамматики

4.1.6.  Входная  и  выходная  грамматики  заданной  транслирующей грамматики.

4.1.7.  Построение   транслирующей  грамматики по  СУ - схеме

4.2. Бесскобочные выражения

4.2.1. Префиксная  польская  запись.

4.2.2.  Вычисление  префиксных  польских  записей.

4.2.3.  Постфиксная  польская  запись.

4.2.4.   Вычисление постфиксных польских записей.

4.2.5.  Примеры  постфиксных польских записей.

4.2.6.  Примеры  СУ - схем.

4.3. Магазинные Преобразователи.

4.3.1. Определение магазинного преобразователя.

4.3.2. Описание работы магазинного преобразователя.

4.3.3. Перевод определяемый преобразователем.

4.3.4. Построение преобразователя.

4.3.5. Пример построения детерминированного преобразователя.

4.3.6. Порядок построения детерминированного магазинного преобразователя.

4.4. Резюме.

4.5. Упражнения.

4.6. Термины.  

 

   

 

 

 

 

 

Соседние файлы в папке Формальные языки, грамматики и автоматы