Генерация парсера - PullRequest
       18

Генерация парсера

0 голосов
/ 20 октября 2010

Я делаю проект на ОБНАРУЖЕНИЕ ПРОГРАММНОГО ПЛАГИАЗМА .. Я собираюсь сделать это с помощью языка C ... для этого я должен создать генератор токенов и парсер ..знаю, с чего начать .. любой может помочь мне с этим ..

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

т.е. я хочу создать синтаксический анализатор для c программ на python

Ответы [ 3 ]

3 голосов
/ 20 октября 2010

Если вы хотите создать парсер в Python, вы можете посмотреть следующие библиотеки:
PLY
pyparsing
и Lepl - новый, но очень мощный

1 голос
/ 20 октября 2010

Создание реального синтаксического анализатора C - это действительно большая задача.

Я предлагаю вам либо найти тот, который уже сделан, например. pycparser или вы определяете действительно простое подмножество C, которое легко анализируется.

У вас будет много работы для детектора плагиата после того, как вы закончитеРазбор C.

0 голосов
/ 20 октября 2010

Я не уверен, что вам нужно проанализировать поток токенов, чтобы обнаружить функции, которые вы ищете.На самом деле, это, вероятно, усложнит ситуацию больше, чем что-либо еще.

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

...