какой язык будет подходящим для разбора кода и рисования графа вызовов - PullRequest
1 голос
/ 11 августа 2011

У меня есть идея проанализировать некоторый код C ++ / C и нарисовать из него картинку (почти как график вызовов).Но я могу нарисовать не только статичные изображения (некоторые именованные блоки внутри), но также и надеяться, что эти блоки являются реляционными (связанными), так что конечный пользователь может настроить эти поля вокруг, но линия, соединяющая эти блоки, все еще там.* Другими словами, конечная цель состоит в том, чтобы пользователь мог взаимодействовать с диаграммой, настраивая в ней элементы.

Также требуется более продвинутая функция поддержки анимации в языке / структуре.

И я публикую здесь поиск лучшего языка для этой идеи (C ++ (в рамках Microsoft MVC?) Или python и т. Д.).Платформа (Windows против Unix) также должна быть определена.Может быть, Java также является хорошим вариантом в этом отношении ..

Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

Если вам нужен только граф вызовов, вам не нужно разбирать C ++. Вместо этого вы можете скомпилировать его в LLVM IR (с помощью llvm-gcc, Dragonegg или Clang) и отобразить график вызовов из промежуточного кода. Что касается визуализации больших графиков, я сам в отчаянном поиске такого инструмента, пока застрявшим в Graphviz.

0 голосов
/ 08 сентября 2011

Анализ / анализ C и выполнение того же для C ++ - это совершенно разные задачи.

Набор инструментов для реинжиниринга программного обеспечения DMS содержит анализаторы и различные виды анализаторов потока C и C ++ .

Для C анализаторы осуществляют контроль и анализ потока данных, глобальный анализ точек и построение графа вызовов с использованием точек-анализ.Для C ++ (на самом деле C ++ 11) мы работаем над завершением анализа потока управления;это жесткий язык для анализатора.DMS имеет встроенный механизм для потока данных и т. Д., Но нам потребуется некоторое время, чтобы связать интерфейс C ++ со всем этим.

...