Оба анализируемых языка – объектно-ориентированные, с синтаксисом, унаследованным от C++, но значительно переработанным. Следовательно, они имеют много общего, например, при анализе проектов, мы используем один общий класс разделителей и знаков операций.
Классы зарезервированных слов для каждого языка отличаются. В данном проекте исследуется лишь малая часть возможностей и особенностей вышеуказанных языков. В связи с этим, классы зарезервированных слов для этих языков будут включать лишь те ключевые слова и операторы, которые нам необходимы.
Проект позволяет проанализировать взаимодействие между классами и вывести результат в файл *.xml. Достаточно много времени было потрачено именно на вывод результата в *.xml, так как ранее с подобными задачами не сталкивались.
При реализации были выполнены критерии ООП и модульности, расставлены комментарии (по атрибутам, методам, по параметрам методов, классам).
Проект может существовать как автономное приложение, однако, на мой взгляд, его можно дополнить и доработать функционально, расширить классы зарезервированных слов, внести изменения в LL(1) – грамматику и т.д.
На данном этапе разработки программа работает корректно, четко выполняет поставленные требования.
1. Р. Хантер Проектирование и конструирование компиляторов
2. http://www.linuxcenter.ru/lib/articles/programming
3. Джеффри Рихтер CLR via C# // М., Издательство «Русская редакция», 2007
4. http://javaportal.ru/
5. Конспект лекций по ТОПТ