Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Or cond else if. Тема: Синтаксический анализСтр 1 из 3Следующая ⇒ Курсовая работа. Часть 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
|