Как сделать статический анализ с ANTLR - PullRequest
1 голос
/ 18 декабря 2010

Я планирую создать инструмент статического анализатора для проприетарного языка. Я планирую использовать ANTLR для создания AST. Я хотел бы знать, как можно проверить правила и рекомендации, установленные проектом с использованием собственного языка с использованием AST.

например если я построю AST для исходного кода на C и скажу, что я хочу проверить нулевые указатели. Как мне сделать эту проверку, используя AST или CST.

Придется ли мне кодировать в тесте с созданным ANTLR лексером / анализатором?.

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 декабря 2010

Это зависит от конкретного анализа, который вы хотите выполнить. Возьмем конкретный пример: чтобы определить статически, может ли переменная быть (или будет) нулевым указателем, вам нужно построить график потока данных . Я рекомендую изучить книгу дракона .

1 голос
/ 20 декабря 2010

Если вы хотите проверить нулевые значения указателя, вам потребуется полный контроль и анализ потока данных для вашего проприетарного языка.ANTLR не доставит вас туда без сверхчеловеческих усилий с вашей стороны.

Проверьте возможности анализа потока нашего DMS Мы использовали это для глубокого анализа потока крупномасштабных программ на Си.

Даже используя этот механизм, вам придется проделать большую работу, чтобы объяснить свой язык.Это намного проще, чем любой другой подход, который вы могли бы использовать.

...