САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА
Кафедра информационных систем и технологий

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту по курсу
"Информационные технологии" на тему
"Построение функции предшествования по заданной КС-грамматике"

Выполнил:
студент группы 634 Абраров А.М.
Руководитель проекта:
Шамашов М.А.
Дата сдачи:
Оценка:

Самара 2001 г.


РЕФЕРАТ

Курсовой проект

Пояснительная записка: 30 с., 5 рис., 3 схем программ и алгоритмов, 3 библиографического источника.

ТЕРМИНАЛ, НЕТЕРМИНАЛ, ГРАММАТИКА, ФУНКЦИЯ ПРЕДШЕСТВОВАНИ, ГРАФ, ЛИНЕАРИЗАЦИЯ.

В курсовом проекте разработан алгоритм и соответствующая ему программа, позволяющая по введённой пользователем КС-грамматике построить функцию предшествования, используя граф линеаризации и алгоритм пересчета с визуализацией шагов построения графа. Грамматика может быть введена как в самой программе, так и из текстового файла. Также существует возможность сохранения результата. Программа написана на языке Pascal 7.0.


СОДЕРЖАНИЕ

СОДЕРЖАНИЕ...................................................................................................................................................................... 3

1. Постановка задачи............................................................................................................................................... 4

2. Описание структуры данных..................................................................................................................... 5

3. Грамматики предшествования................................................................................................................. 6

3.1 Грамматики простого предшествования................................................................... 6

3.2 Грамматики операторного предшествования........................................................ 8

3.3 Пример построения матрицы предшествования................................................. 10

3.4 Линеаризация матрицы предшествования.............................................................. 13

4. Руководство пользователя....................................................................................................................... 13

5. Текст программы................................................................................................................................................. 15

6. Список использованных источников............................................................................................. 30


1. Постановка задачи

 

По заданной КС-грамматике построить отношение простого или операторного предшествования и функцию предшествования, используя граф линеаризации и алгоритм пересчета с визуализацией шагов построения графа.


2. Описание структуры данных

Типы:

Для хранения терминалов и терминалов используется тип:

notTerm=^List;

List=Record{список терминалов и нетерминалов}

Name:Str10;{терминал или нетерминал}

Next:notTerm;

End;

Для хранения грамматики (текста) используется:

strBuf=array [1..800] of Char;

Матрица предшествования:

matrixPr=array [1..20,1..20] of 0..4;

Функция предшествования:

FuncPr=array [1..2,1..20] of Byte;

Процедуры и функции (основные):

Ввод грамматики осуществляется функцией:

Function InputText:Boolean;

Для синтаксического анализа КС-грамматики используется процедура:

Procedure Check;

Для нахождения «левых» и «правых» используется процедура:

Procedure SearchLR;

Построение матрицы предшествования выполняет процедура:

Procedure Matrix;

Построение функции предшествования осуществляется процедурой:

Procedure FuncPrecede;


3. Грамматики предшествования

КС-языки делятся на классы в соответствии со структурой правил их грамматик. В каждом из классов налагаются дополнительные ограничения на допустимые правила грамматики.

Одним из таких классов является класс грамматик предшествования. Они используются для синтаксического разбора цепочек с помощью алгоритма “сдвиг-свертка”. Выделяют следующие типы грамматик предшествования:

·     простого предшествования;

·     расширенного предшествования;

·     слабого предшествования;

·     смешанной стратегии предшествования;

·     операторного предшествования.

Далее будут рассмотрены ограничения на структуру правил и алгоритмы разбора для двух типов - грамматик простого и операторного предшествования.

3.1 Грамматики простого предшествования

Грамматикой простого предшествования называют такую КС-грамматику G(VN,VT,P,S), V=VTÈVN в которой:

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

·     Si = Sj (" Si,SjÎV), если и только если $ правило U® xSiSjy Î P, где UÎ VN, x,yÎ V*;

·     Si < Sj (" Si,SjÎV), если и только если $ правило U® xSiDy Î P и вывод DÞ *Sjz, где U,DÎ VN, x,y,zÎ V*;

·     Si > Sj (" Si,SjÎV) , если и только если $ правило U® xCSjy Î P и вывод CÞ *zSi или $ правило U® xCDy Î P и выводы CÞ *zSi и DÞ *Sjw, где U,C,DÎ VN, x,y,z,wÎ V*.


Информация о работе «Построение функции предшествования по заданной КС-грамматике»
Раздел: Информатика, программирование
Количество знаков с пробелами: 33198
Количество таблиц: 3
Количество изображений: 3

Похожие работы

Скачать
319724
0
0

... и определяю- щем вхождении идентификатора. КОНТЕКСТНЫЕ УСЛОВИЯ ЧЕТВЕРТОГО ТИПА Некоторые логические ограничения, которые относятся к реа- лизации той или иной версии транслятора. Массив может быть с неограниченным размером. ЛЕКЦИЯ 17 ПРОГРАММНЫЕ ГРАММАТИКИ Правила вывода этих грамматик имеют тот же вид, что и у классических, однако в ...

Скачать
161099
8
0

... habe die Sommerferien sehr gern. После проведения предэкспериментального среза началось пробное обучение (второй этап), в ходе которого основное внимание было направлено на формирование языковой компетенции учащихся (её грамматического аспекта) с учётом дифференцированного подхода к обучению активной и пассивной грамматике. В рамках учебной программы учащиеся знакомились с таким грамматическим ...

Скачать
59169
4
2

... , в данном каталоге в каждый момент времени может быть активным только один процесс yacc Постановка задачи Реализовать: – транслятор с языка математических выражений на язык деревьев вывода – интерпретатор языка деревьев вывода К разрабатываемым программам предъявляются следующие требования: – реализация осуществляется на языке C++. – функциональность транслятора и интерпретатора должна ...

Скачать
15528
11
5

... 78 IsNumeric 19 2 ( 22 77 A 21 1 ) 23 78 <>  9 67 0 20 3 and 18 1 A 21 1 >  9 66 0 20 3 ) 23 78 Then 11 11 A 21 1 = 1 65 B 21 2 EndIf 11 11 Text 14 14 . 6 74 Text 16 16 = 1 65 A 21 1 End 10 10 Sub 10 10   Отладка формальной грамматики Отладка грамматики – это процесс преобразования грамматики к виду, удовлетворяющему ...

0 комментариев


Наверх