|
Разработка транслятора в среде Java и С+ |
/b>Таблица разбора 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 | - | - | + | - | | | Разработка программыКлассовая модельДиаграмма прецедентовДиаграмма классовАнализ результатов работы программы и выводыОба анализируемых языка - объектно-ориентированные, с синтаксисом, унаследованным от C++, но значительно переработанным. Следовательно, они имеют много общего, например, при анализе проектов, мы используем один общий класс разделителей и знаков операций.Классы зарезервированных слов для каждого языка отличаются. В данном проекте исследуется лишь малая часть возможностей и особенностей вышеуказанных языков. В связи с этим, классы зарезервированных слов для этих языков будут включать лишь те ключевые слова и операторы, которые нам необходимы.Проект позволяет проанализировать взаимодействие между классами и вывести результат в файл *.xml. Достаточно много времени было потрачено именно на вывод результата в *.xml, так как ранее с подобными задачами не сталкивались.При реализации были выполнены критерии ООП и модульности, расставлены комментарии (по атрибутам, методам, по параметрам методов, классам).Проект может существовать как автономное приложение, однако, на мой взгляд, его можно дополнить и доработать функционально, расширить классы зарезервированных слов, внести изменения в LL(1) - грамматику и т.д.На данном этапе разработки программа работает корректно, четко выполняет поставленные требования.Список используемой литературы1. Р. Хантер Проектирование и конструирование компиляторов2. http://www.linuxcenter.ru/lib/articles/programming3. Джеффри Рихтер CLR via C# // М., Издательство «Русская редакция», 20074. http://javaportal.ru/5. Конспект лекций по ТОПТ
Страницы: 1, 2
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|