2012-04-21 1 views
1

Я пытаюсь выполнить свою работу, которая представляет собой «Анализ исходного кода в приложениях Java», где я анализирую нескомпилированные файлы .java или .txt.

Я создаю тему this, где я узнал, что я иду не так. Из того, что я слышал, я подумал, что лучший способ справиться с использованием ANTLR или JavaCC, но я не могу понять, как это работает и как его использовать (JavaCC я не мог сломать). Я хотел бы найти что-то, где я мог бы программировать «классический» в Netbeans, который я использую.

Можно ли использовать java.lang.reflect (в моей теме кто-то писал, что он может использоваться только в скомпилированном коде)? Есть ли способ, которым я мог бы написать все это без каких-либо «дополнений» или используя только библиотеки Java?

Спасибо за ценный совет. Я очень смущен и не знаю, с чего начать.

Вот описание моей работы:
1. Выбор анализатора языка хоста,
2. Сборка сканера (лексический анализатор),
3. Сборка анализатора синтаксиса,
4. Сохраните информацию, полученную в форма XML,
5. UML-графическое представление анализируемого проекта.
Основная цель - создать UML, XML - дополнение.Каков наилучший способ анализа кода для создания UML?

+0

При анализе у виду нарисовать UML (как это было предложено в теме)? –

+0

Я разрешаю загружать «n» файлы и на основе ссылок между ними (если есть) рисовать диаграмму классов UML. – avalagne

ответ

0

В общем, у вас есть два варианта.

Если вы хотите работать с исходным кодом, вам нужно построить что-то, что может интерпретировать эти файлы, и сформировать в них модель конструктивных конструкций. Это нетривиально - вы в основном создаете существенный подмножество компилятора, и вам приходится иметь дело с большим количеством предметов домашнего хозяйства - загрузка файлов, разработка ссылок на файлы .jar и т. Д., А также тот факт, что код может фактически не компилируются. Если вы выберете этот маршрут, лучшим вариантом будет ANTLR; go читать wiki и книги и застревать.

Альтернативой является работа с скомпилированными файлами - банками и т. д. - вы можете использовать инструменты отражения для интерпретации кода. Это упрощает вопросы - по крайней мере, вы знаете, что код компилируется, а кто-то еще много сделал для домашнего хозяйства. Это все еще не тривиально.

+0

ОК, я понимаю. Как вы думаете, что проще? Если я решил перейти к инструментам отражения, сложно собрать загруженные файлы (и подготовить) перед анализом? Спасибо за помощь. – avalagne

1

Менее простым решением было бы получить инструмент UML, поддерживающий импорт источника Java и создание диаграмм для вас.

Ваш путь чреват трудностями. Вы застряли на стороне ввода, но вы еще даже не рассматривали графическую сторону. Рисование диаграмм будет непросто, даже если вам удастся выяснить, как создать абстрактное синтаксическое дерево.

+0

Вы меня не радуете :) Должно быть какое-то «приличное» решение для этого :(Это «только» диплом бакалавра ... – avalagne

+0

Сколько времени у вас есть, чтобы завершить его? Это на конец 2012 учебного года , не так ли? – duffymo

+0

Да, это правда. К сожалению, я пошел не так, и мой руководитель не помогает мне, поэтому я ищу решения и советы на форумах. Мне это не мешает, я не знаю, как – avalagne

0

topcased могут быть полезны для вас, НТН

+0

Возможно, я неправильно прочитал, но сгенерировал код с UML-диаграмм с помощью Topcased. Или нет? Мне нужно создать диаграмму UML из кода. – avalagne

+0

@avalagne: Да, вы можете: Topcased способен делать обратное проектирование (Не очень красиво, это с открытым исходным кодом, но полезно). Не для огромного API, а для пакета по пакетам все в порядке.Я не здесь, но поиск в меню differents в проекте Eclipse, и doc, как настроить максимальную вы можете отобразить –

+0

Хорошо, спасибо. Я смотрю на это ... – avalagne

 Смежные вопросы

  • Нет связанных вопросов^_^