Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Or cond else if. Тема: Синтаксический анализ





Курсовая работа. Часть 1.

Студент: Тафинцев Г.М.

Группа: 8О-208Б

Номер по списку: 18

Вариант: 38

Дата: 22.06.2015

Тема: Синтаксический анализ.

Часть

…………………………………………………………………………………………………………………………………….

Для заданного диалекта языка МИКРОЛИСП разработать синтаксически управляемый транслятор в язык С++. Работоспособность транслятора проверить на трех контрольных задачах:

Числа Фибоначчи.

Размен денег.

Решение уравнения методом Ньютона.

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

…………………………………………………………………………………………………………………………………….

Набор отчетных документов:

Описание грамматики (файл b38.txt)

Описание особенностей грамматики (файл GrammaFeatures.txt)

Протоколы трансляции контрольных задач и дополнительных тестов.

4) Протоколы запуска контрольных задач и дополнительных тестов в системах Scheme и C++.

Распечатка файла code-gen.cpp

Диаграммы автоматов из лабораторной работы №3.

1) Описание грамматики:

# $b38

$id $idq $int $oct

$float $bool $str (

) + - *

/ < = >

<= >= and not

or cond else if

define display newline set!

#

S -> PROG #1

CALC -> E1 #2 |

BOOL #3 |

STR #4 |

DISP #5

DISP -> (display E1) #6 |

(display BOOL) #7 |

(display STR) #8 |

(newline) #9

PRED -> HPRED BOOL) #10

HPRED -> PDPAR) #11

PDPAR -> (define ($idq #12 |

PDPAR $id #13

CPROC -> HCPROC) #14

HCPROC -> ($id #15 |

HCPROC E #16

CPRED -> HCPRED) #17

HCPRED -> ($idq #18 |

HCPRED E #19

DINT -> $int #20 |

$oct #21

E -> $float #22 |

DINT #23 |

$id #24 |

ADD #25 |

SUB #26 |

DIV #27 |

MUL #28 |

COND #29 |

CPROC #30

ADD -> HADD E1) #31

HADD -> (+ #32 |

HADD E1 #33

MUL -> HMUL E1) #34

HMUL -> (* #35 |

HMUL E1 #36

SUB -> HSUB E1) #37

HSUB -> (- #38 |

HSUB E1 #39

DIV -> HDIV E1) #40

HDIV -> (/ #41 |

HDIV E1 #42

BOOL -> $bool #43 |

CPRED #44 |

REL #45 |

AND #46 |

(not BOOL) #47

REL -> HREL E1) #48

HREL -> (<= E #49

AND -> HAND BOOL) #50

HAND -> (and BOOL #51

COND -> HCOND CLAUS) #52

HCOND -> (cond #53 |

HCOND CLAUS #54

CLAUS -> HCLAUS E1) #55

HCLAUS -> (BOOL #56 |

HCLAUS DISP #57

E1 -> E #58

STR -> $str #59

SET -> HSET E1) #60

HSET -> (set! $id #61

VAR -> HVAR E1) #62

HVAR -> (define $id #63

PROC -> HPROC E1) #64

HPROC -> PCPAR) #65 |

HPROC VAR #66 |

HPROC SET #67 |

HPROC DISP #68

PCPAR -> (define ($id #69 |

PCPAR $id #70

DEF -> PRED #71 |

VAR #72 |

PROC #73

DEFS -> DEF #74 |

DEFS DEF #75

CALCS -> CALC #76 |

CALCS CALC #77

CALCS1 -> CALCS #78

PROG -> CALCS1 #79 |

DEFS #80 |

DEFS CALCS1 #81

Date: 2015-07-24; view: 318; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию