- •Задание на курсовую работу
- •1. Описание входного языка.
- •1.2.3. Конструкции входного языка.
- •Если результат false, то происходит переход на оператор2, в противном случае выполняется оператор1 и происходит переход в конец оператора if-then-else. Лексический анализатор.
- •Представление основных операторов в полиз
- •Операционный символ { вычислить адрес }p, n, r
- •Операционный символ {сложить}p, q, r
- •Операционный символ {вычесть}p, q, r
- •Операционный символ { умножить }p, q, r
- •Операционный символ { делить }p, q, r
- •Операционный символ { общий знаменатель }p, q, r
- •Операционный символ { дизъюнкция }p, q, r
- •Операционный символ { конъюнкция }p, q, r
- •Операционный символ { отрицание }p, q
- •Операционный символ { меньше }p, q, r
- •Операционный символ { отношение }q1, q2, q3, r
- •Операционный символ { id }n
- •Операционный символ { init }n, V, r
- •Операционный символ { нач_ц }q1, q2, q3, m1, m2, r2
- •Операционный символ { кон_ц } q4, q5, m1, m2
- •Операционный символ { присвоить }p, q
- •Операционный символ { имя }q, r
- •Операционный символ { последовательность имён }p, q, r
- •Операционный символ {индекс}p, r
- •Операционный символ {массив}t, q, r
- •Операционный символ { последовательность индексов }p, q, r
- •Операционный символ {диапазон}p, q, r
- •Операционный символ {создать метку}p, r
- •Описание типа
- •Структуры данных дмп-процессора
- •Структура символа
- •Магазин дмп процессора
- •Часть 1 :
- •Часть 2 :
- •Разработка дмп-процессора
- •Взаимодействие дмп-процессоров
- •Алгоритм работы дмп-процессора
- •Передача атрибутов в дмп-процессоре
- •Тестирование дмп-процессора
Операционный символ { имя }q, r
Записать в переменную по адресу r элемент перечислимого типа по адресу q
Операционный символ { последовательность имён }p, q, r
Записать в переменную по адресу r элементы перечислимого типа, содержащиеся в p и q
Подграмматика для типов:
Таблица нетерминалов:
Имя нетерминала |
Описание |
Тип атрибута |
TNp |
Имя типа |
p - синтезированный |
INTp |
Внутренний тип |
p - синтезированный |
ATp |
Тип-массив |
p - синтезированный |
ETp |
Перечислимый тип |
p - синтезированный |
RTp |
Ограниченный тип |
p - синтезированный |
ITp |
Индекс |
p - синтезированный |
SITt, p |
Последовательность индексов |
t – унаследованный, p - синтезированный |
NLp |
Список имен |
p - синтезированный |
TNp2INTp1
p2 p1
TNp2ATp1
p2 p1
TNp2ETp1
p2 p1
TNp2RTp1
p2 p1
TNp2idp1
p2 p1
INTp2integerp1
p2 p1 (p1 = integer)
INTp2rationalp1
p2 p1 (p1 = rational)
ATr4array [ ITp1 {индекс}p2, r1 SITr2, t1 ] of TNq1 {массив}t2, q2, r3
r1 NewElem
r3 NewElem
p2 p1
r2 r1
t2 t1
q2 q1
r4 r3
ITp2ETp1
p2 p1
ITp2RTp1
p2 p1
ITp2idp1
p2 p1
SITp1, t2, ITq1 { последовательность индексов }p2, q2, r1 SITr2, t1
r1 NewElem
p2 p1
q2 q1
r2 r1
t2 t1
SITp1, p2
p2 p1
ETp2( NLp1 )
p2 p1
RTr2usip1 .. usiq1 {диапазон}p2, q2, r1
r1 NewElem
p2 p1
q2 q1
r2 r1
Операционный символ {индекс}p, r
Записать в переменную по адресу r индекс p массива
Операционный символ {массив}t, q, r
Записать в переменную по адресу r новый тип, представляющий собой массив с индексами t из элементов q
Операционный символ { последовательность индексов }p, q, r
Записать в переменную по адресу r индексы, содержащиеся в p и q
Операционный символ {диапазон}p, q, r
Создать диапазонный тип и записать значение в таблицу промежуточных результатов по адресу r. Значения по адресам p и q, задающие границы диапазона, должны быть integer
Основная подграмматика:
Таблица нетерминалов:
Имя нетерминала |
Описание |
Тип атрибута |
P |
Программа |
|
PN |
Имя программы |
|
SD |
Раздел описаний |
|
SO |
Раздел операторов |
|
SDL |
Раздел описания меток |
|
LNp |
Имя метки |
p - синтезированный |
SLN |
Последовательность меток |
|
SDC |
Раздел описания констант |
|
CD |
Объявление константы |
|
SCD |
Последовательность объявлений констант |
|
SDV |
Раздел описания переменных |
|
SN |
Последовательность имен |
|
DOT |
Объявление переменных одного типа |
|
SDO |
Последовательность объявлений переменных одного типа |
|
NLp |
Список имен |
p - синтезированный |
SDT |
Раздел описания типов |
|
TD |
Описание типа |
|
STD |
Последовательность описаний типов |
|
TNp |
Имя типа |
p - синтезированный |
CNSp |
Константа |
p - синтезированный |
PPN SD SO
PNprogram ID;
PN
SDSDL SD
SDSDC SD
SDSDT SD
SDSDV SD
SD
SDLlabel LNp1 {создать метку}p2, r SLN ;
r NewLabel
p2 p1
LNp2idp1
p2 p1
LNp2usip1
p2 p1
SLN , LNp1 {создать метку}p2, r SLN
r NewLabel
p2 p1
SLN
SDCconst CD ; SCD
CDidp1 = CNSq1 {создать константу}p2, q2, r
r NewConst
p2 p1
q2 q1
CNSp2 idp1
p2 p1
CNSp2 usip1
p2 p1
SCDCD ; SCD
SCD
SDTtype TD ; STD
TDidp1 = TNq1 {создать тип}p2, q2, r
r NewType
p2 p1
q2 q1
STDTD ; STD
STD
SDVvar DOT ; SDO
DOTNLp1 : TNq1 {создать переменную}p2, q2, r
SDODOT ; SDO
SDO