">
Математика ![]() | |||||||||||||||||||||||||||
Похожие работы:
| |||||||||||||||||||||||||||
Министерство образования и науки РФ Институт Гуманитарного образования и Информационных технологий Курсовая работа по дисциплине «Алгоритмические языки и методы трансляции» на тему: «Анализаторы для имён простых переменных и переменных-элементов массивов, имеющих индексы в виде арифметических выражений, арифметического выражения и языка право-линейной грамматики» Выполнил: Проверил: г. Москва, 2012 Задание №1 Const uuu : record x,y : integer; ch : char : end = ( x : 6, y : 7, ch :u); Таблица №1 № n/n Служебные слова 1 Const 2 record 3 integer 4 char 5 end 6 ch Таблица №2 № n/n Константы 1 6 2 7 Таблица №3 № n/n Ограничители 1 : 2 , 3 ; 4 = 5 ( 6 ) 7 Таблица №4 № n/n Идентификаторы 1 a 2 b 3 c Задание №2 Анализ арифметического уравнения. Компилировать арифметическое выражение с генерацией в языке ПОЛИЗа и выполнение операций. Рассмотрим уравнение: > ???????????????????< 2.1 Лексический анализ. Таблица №1 № n/n Служебные слова Таблица №2 № n/n Ограничители 1 := 2 - 3 ( 4 ) 5 * 6 + 7 / Таблица №3 № n/n Константы 1 2 Таблица №4 № n/n Идентификаторы 1 a Лексемы: (4;1) – (2;1) – (2;2) – (2;3) – (4;1) – (2;5) – (3;1) – (2;6) – (4;1) – (2;7) – (4;1) – (2;4) – (2;7) – (4;1) 2.2 Синтаксический анализ арифметического уравнения. Левосторонний разбор L ( ? 1 ) Грамматика G= (T; N; P; S), где N = < S;R;V;C;Q;Y;M>, T = < ????+ ; := ; - ; ( ; ) ; * ; / > S > ?? R > :=V V> QC| QC | QC C > | + QC | - QC Q > MY Y > | * MY | /MY | ^ MY M > ??|?(V) | S ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????? 2.3Таблица генератора ПОЛИЗ. Таблица №5 + _ * / ( ) < I I I ? I выход I I + _ II I I IV ? IV I I * / IV II I IV ? IV I I II I I IV ? IV I I ( I I I III I ? I I IV IV I IV ? IV ? IV II II I IV ? IV I ? * ? – ошибка – верхний символ в стеке операции – текущий символ – код операции ** I – в стек операции и читать далее; II – генерировать , в стек операции и читать далее; III – удалить верхний символ из стека операции и читать далее; IV – генерировать и повторить с тем же входом. Таблица №6 Стек операции Символ Действия Команда > I > ( I >( ? K ? >( * I >(* 2 K 2 >(* + IV * >? + I >?? ? K ? >(+ / I >??? ? K ? >??? ) IV / >?? ) IV + >? ) III > / I >? ? K ? >? < IV / > < IV > < Выход ????????????? 2.4. Выполнение операций Пусть ??3 Стек операндов Команда Двойка или тройка K ? 3 K 2 3 2 * Тройка: 2*3=6 6 K ? 6 3 K ? 6 3 3 / Тройка: 3/3=1 6 1 + Тройка: 6+1=7 7 K ? 7 3 / Тройка: 7/3=2,3 2,3 Двойка: ???? - 2,3 Ответ Вывод: С помощью лексического анализа выбранное арифметическое выражение транслировано в язык лексем-представителей. На основе левостороннего разбора грамматики арифметических выражений сделан синтаксический анализ арифметического выражения. С помощью таблицы генерации ПОЛИЗ арифметическое выражение выраженно в виде цепочки языка ПОЛИЗ. На основе этой цепочки была построена таблица выполнения операций, с помощью которых было получено числовое значение арифметического выражения. Задание №3 |
© 2010–2021 Эссе.рф: Библиотека учебных материалов |