Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Интересное:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Алфавит языка
Большие и малые буквы английского алфавита: a..z, A..Z
Цифры: 0,1,2,3,4,5,6,7,8,9.
Другие символы: ‘<’, ‘>’, ‘:’, ‘, ’, ‘’’, ‘;’, ‘{», ‘}’, ‘(», ‘)’
Классы лексем
- зарезервированные слова;
- знаки операций и разделители;
- литералы;
- идентификаторы
Лексика языков
1. Класс идентификаторы: к этому классу относятся все наборы цепочек, кроме зарезервированных слов
2. Класс зарезервированных слов:
2.1 Для C#
using, class, int, float, char, public, protected, private, return, namespace
2.2 Для Java
using, class, int, float, char, public, protected, private, return
3. Класс знаков операций и разделителей:
() {}: ; = ->. , ‘ *
4. Класс литералов:
Литерал – целочисленная или текстовая константа.
Структура таблицы идентификаторов
| имя | номер в классе | тип |
Структура таблицы литералов
| имя | тип |
Разработка синтаксического анализатора
Грамматика языков
В данном проекте исследуется лишь малая часть возможностей и особенностей вышеуказанных языков. В связи с этим спроектированные грамматики для этих языков будут включать лишь те структуры языка, которые нам необходимы
Грамматика С#
1 <программа>:= 2 <предпроцессор> 3 namespace 4 {5 <операторы> 6}
7 <предпроцессор>:= 9 using 10 <предпроцессор>
8 <предпроцессор>:= 11 е
12 <операторы>:= 16 <класс> 17 <операторы>
13 <операторы>:= 18 идентификатор 19 <продолжение1>
20 <операторы>
14 <операторы>:= 21 е
15 <операторы>:= 22 <декларация> 23 <операторы>
24 <класс>:= 25 class 26 идентификатор 27 <наследование> 28 {29 <операторы> 30} 31;
32<наследование>:= 34: 35 идентификатор
33<наследование>:= 36е
37<продолжение1>:= 40. 41 идентификатор 42 <продолжение2> 43;
38<продолжение1>:= 44 <продолжение2> 45;
39<продолжение1>:= 46;
47 <продолжение2>:= 49 (50)
48 <продолжение2>:= 80 е
51 <декларация>:= 52 <тип> 53 идентификатор 55 <продолжение3>
56<продолжение3>:= 58 (59) 60 (61 <операторы> 62 return 63 литерал 64; 81)
57<продолжение3>:= 65<продолжение4>
66 <продолжение4>:= 68, 69 идентификатор 70 <продолжение4>
67 <продолжение4>:= 71;
72 <тип>:= 76 int
73 <тип>:= 77 float
74 <тип>:= 78 char
75 <тип>:= 79 идентификатор
Грамматика java
1 <программа>:= 2 <предпроцессор> 3 <операторы>
7 <предпроцессор>:= 9 using 10 <предпроцессор>
8 <предпроцессор>:= 11 е
12 <операторы>:= 16 <класс> 17 <операторы>
13 <операторы>:= 18 идентификатор 19 <продолжение1>
20 <операторы>
14 <операторы>:= 21 е
15 <операторы>:= 22 <декларация> 23 <операторы>
24 <класс>:= 25 class 26 идентификатор 27 <наследование> 28 {29 <операторы> 30} 31;
32<наследование>:= 34: 35 идентификатор
33<наследование>:= 36е
37<продолжение1>:= 40 -> 41 идентификатор 42 <продолжение2> 43;
38<продолжение1>:= 44 <продолжение2> 45;
39<продолжение1>:= 46;
47 <продолжение2>:= 49 (50)
48 <продолжение2>:= 80 е
51 <декларация>:= 52 <тип> 53 <ссылка> 54 идентификатор 55 <продолжение3>
56<продолжение3>:= 58 (59) 60 (61 <операторы> 62 return 63 литерал 64; 81)
57<продолжение3>:= 65<продолжение4>
66 <продолжение4>:= 68, 69 идентификатор 70 <продолжение4>
67 <продолжение4>:= 71;
72 <тип>:= 76 int
73 <тип>:= 77 float
74 <тип>:= 78 char
75 <тип>:= 79 идентификатор
82<ссылка>:= 84 *
83<ссылка>:= 85 e
Доказательство принадлежности к LL(1) – грамматике
С#
<предпроцессор>={using | namespace}
<операторы>={class | идентификатор |} | int | float | char}
<наследование>={: | {}
<продолжение1>={. | (|;)
<продолжение2>={(|;)
<продолжение3>={(|, |;)
<продолжение4>={, |;}
<тип >={int | float | char | идентификатор}
Грамматика java
<предпроцессор>={using | class | идентификатор | int | float | char}
<операторы>={class | идентификатор | int | float | char}
<наследование>={: | {}
<продолжение1>={-> | (|;)
<продолжение2>={(|;)
<продолжение3>={(|, |;)
<продолжение4>={, |;}
<тип >={int | float | char | идентификатор}
<ссылка>={* | идентификатор}
Таблицы разбора
Таблица разбора С#
| № | Ожидаемый терминал | Переход | Принять | В стек | Из стека | Ошибка |
| 1. | ~ | 2 | - | - | - | - |
| 2. | ~ | 7 | - | - | - | - |
| 3. | namespace | 4 | + | - | - | + |
| 4. | { | 5 | + | - | - | + |
| 5. | ~ | 12 | - | + | - | - |
| 6. | } | 0 | + | - | + | + |
| 7. | using | 9 | - | - | - | - |
| 8. | ~ | 11 | - | - | - | - |
| 9. | using | 10 | + | - | - | + |
| 10. | ~ | 7 | - | - | - | - |
| 11. | ~ | 3 | - | - | - | - |
| 12. | class | 16 | - | - | - | - |
| 13. | идентификатор | 18 | - | - | - | - |
| 14. | } | 21 | - | - | - | - |
| 15. | ~ | 22 | - | - | - | - |
| 16. | ~ | 24 | - | + | - | - |
| 17. | ~ | 12 | - | - | - | - |
| 18. | идентификатор | 19 | + | - | - | + |
| 19. | ~ | 37 | - | + | - | - |
| 20. | ~ | 12 | - | - | - | - |
| 21. | ~ | 0 | - | - | + | - |
| 22. | ~ | 51 | - | + | - | - |
| 23 | ~ | 12 | - | - | - | - |
| 24 | ~ | 25 | - | - | - | - |
| 25 | class | 26 | + | - | - | + |
| 26 | идентификатор | 27 | + | - | - | + |
| 27 | ~ | 32 | - | + | - | - |
| 28 | { | 29 | + | - | - | + |
| 29 | ~ | 12 | - | + | - | - |
| 30 | ) | 31 | + | - | - | + |
| 31 | ; | 0 | + | - | + | + |
| 32 | : | 34 | - | - | - | - |
| 33 | ~ | 36 | - | - | - | - |
| 34 | : | 35 | + | - | - | + |
| 35 | идентификатор | 0 | + | - | + | + |
| 36 | ~ | 0 | - | - | + | - |
| 37 | . | 40 | - | - | - | - |
| 38 | ( | 44 | - | - | - | - |
| 39 | ; | 46 | - | - | - | + |
| 40 | . | 41 | + | - | - | + |
| 41 | идентификатор | 42 | + | - | - | + |
| 42 | ~ | 47 | - | + | - | - |
| 43 | ; | 0 | + | - | + | + |
| 44 | ~ | 47 | - | + | - | - |
| 45 | ; | 0 | + | - | + | + |
| 46 | ; | 0 | + | - | + | + |
| 47 | ( | 49 | - | - | - | - |
| 48 | ~ | 80 | - | - | - | - |
| 49 | ( | 50 | + | - | - | + |
| 50 | ) | 0 | + | - | + | + |
| 51 | ~ | 52 | - | - | - | - |
| 52 | ~ | 72 | - | + | - | - |
| 53 | идентификатор | 55 | + | - | - | + |
| 54 | ||||||
| 55 | ~ | 56 | - | - | - | - |
| 56 | ( | 58 | - | - | - | - |
| 57 | ~ | 65 | - | - | - | - |
| 58 | ( | 59 | + | - | - | + |
| 59 | ) | 60 | + | - | - | + |
| 60 | { | 61 | + | - | - | + |
| 61 | ~ | 12 | - | + | - | - |
| 62 | return | 63 | + | - | - | + |
| 63 | литерал | 64 | + | - | - | + |
| 64 | ; | 81 | + | - | - | + |
| 65 | ~ | 66 | - | - | - | - |
| 66 | , | 68 | - | - | - | - |
| 67 | ; | 71 | - | - | - | + |
| 68 | , | 69 | + | - | - | + |
| 69 | идентификатор | 70 | + | - | - | + |
| 70 | ~ | 66 | - | - | - | - |
| 71 | ; | 0 | + | - | + | + |
| 72 | int | 76 | - | - | - | - |
| 73 | float | 77 | - | - | - | - |
| 74 | char | 78 | - | - | - | - |
| 75 | идентификатор | 79 | - | - | - | + |
| 76 | int | 0 | + | - | + | + |
| 77 | float | 0 | + | - | + | + |
| 78 | char | 0 | + | - | + | + |
| 79 | идентификатор | 0 | + | - | + | + |
| 80 | ~ | 0 | - | - | + | - |
| 81 | } | 0 | + | - | + | + |
Таблица разбора java
| № | Ожидаемый терминал | Переход | Принять | В стек | Из стека | Ошибка |
| 1. | ~ | 2 | - | - | - | - |
| 2. | ~ | 7 | - | - | - | - |
| 3. | ~ | 12 | - | - | - | - |
| 7. | using | 9 | - | - | - | - |
| 8. | ~ | 11 | - | - | - | - |
| 9. | using | 10 | + | - | - | + |
| 10. | ~ | 7 | - | - | - | - |
| 11. | ~ | 3 | - | - | - | - |
| 12. | class | 16 | - | - | - | - |
| 13. | идентификатор | 18 | - | - | - | - |
| 14. | } | 21 | - | - | - | - |
| 15. | ~ | 22 | - | - | - | - |
| 16. | ~ | 24 | - | + | - | - |
| 17. | ~ | 12 | - | - | - | - |
| 18. | идентификатор | 19 | + | - | - | + |
| 19. | ~ | 37 | - | + | - | - |
| 20. | ~ | 12 | - | - | - | - |
| 21. | ~ | 0 | - | - | + | - |
| 22. | ~ | 51 | - | + | - | - |
| 23 | ~ | 12 | - | - | - | - |
| 24 | ~ | 25 | - | - | - | - |
| 25 | class | 26 | + | - | - | + |
| 26 | идентификатор | 27 | + | - | - | + |
| 27 | ~ | 32 | - | + | - | - |
| 28 | { | 29 | + | - | - | + |
| 29 | ~ | 12 | - | + | - | - |
| 30 | ) | 31 | + | - | - | + |
| 31 | ; | 0 | + | - | + | + |
| 32 | : | 34 | - | - | - | - |
| 33 | ~ | 36 | - | - | - | - |
| 34 | : | 35 | + | - | - | + |
| 35 | идентификатор | 0 | + | - | + | + |
| 36 | ~ | 0 | - | - | + | - |
| 37 | -> | 40 | - | - | - | - |
| 38 | ( | 44 | - | - | - | - |
| 39 | ; | 46 | - | - | - | + |
| 40 | -> | 41 | + | - | - | + |
| 41 | идентификатор | 42 | + | - | - | + |
| 42 | ~ | 47 | - | + | - | - |
| 43 | ; | 0 | + | - | + | + |
| 44 | ~ | 47 | - | + | - | - |
| 45 | ; | 0 | + | - | + | + |
| 46 | ; | 0 | + | - | + | + |
| 47 | ( | 49 | - | - | - | - |
| 48 | ~ | 80 | - | - | - | - |
| 49 | ( | 50 | + | - | - | + |
| 50 | ) | 0 | + | - | + | + |
| 51 | ~ | 52 | - | - | - | - |
| 52 | ~ | 72 | - | + | - | - |
| 53 | ~ | 82 | - | - | + | - |
| 54 | идентификатор | 55 | + | - | - | + |
| 55 | ~ | 56 | - | - | - | - |
| 56 | ( | 58 | - | - | - | - |
| 57 | ~ | 65 | - | - | - | - |
| 58 | ( | 59 | + | - | - | + |
| 59 | ) | 60 | + | - | - | + |
| 60 | { | 61 | + | - | - | + |
| 61 | ~ | 12 | - | + | - | - |
| 62 | return | 63 | + | - | - | + |
| 63 | литерал | 64 | + | - | - | + |
| 64 | ; | 81 | + | - | - | + |
| 65 | ~ | 66 | - | - | - | - |
| 66 | , | 68 | - | - | - | - |
| 67 | ; | 71 | - | - | - | + |
| 68 | , | 69 | + | - | - | + |
| 69 | идентификатор | 70 | + | - | - | + |
| 70 | ~ | 66 | - | - | - | - |
| 71 | ; | 0 | + | - | + | + |
| 72 | int | 76 | - | - | - | - |
| 73 | float | 77 | - | - | - | - |
| 74 | char | 78 | - | - | - | - |
| 75 | идентификатор | 79 | - | - | - | + |
| 76 | int | 0 | + | - | + | + |
| 77 | float | 0 | + | - | + | + |
| 78 | char | 0 | + | - | + | + |
| 79 | идентификатор | 0 | + | - | + | + |
| 80 | ~ | 0 | - | - | + | - |
| 81 | } | 0 | + | - | + | + |
| 82 | * | 84 | - | - | - | - |
| 83 | ~ | 85 | - | - | - | - |
| 84 | * | 0 | + | - | + | + |
| 85 | ~ | 0 | - | - | + | - |
Разработка программы
Классовая модель
Диаграмма прецедентов

Диаграмма классов

|
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!