jaideepdatti/Plagiarism-Detector-Using-CFG

GitHub: jaideepdatti/Plagiarism-Detector-Using-CFG

基于上下文无关文法(CFG)的代码抄袭检测工具,通过解析树与 AST 比较解决结构相似性识别问题。

Stars: 0 | Forks: 0

# 🔍 基于CFG的抄袭检测系统 一个基于上下文无关文法(CFG)解析树而非简单文本匹配的网页抄袭检测工具。 ## 🚀 功能 - 多代码比较(2+ 输入) - 基于 CFG 的解析与 AST 生成 - 基于树的相似度(LCS / 编辑距离) - 基于 DFA 的令牌验证 - 交互式解析树可视化 - 检测变量重命名与结构相似性 ## 🛠️ 技术栈 - HTML、CSS、JavaScript - 自定义 CFG 解析器(递归下降) - SVG 用于树可视化 ## ⚙️ 工作原理 1. 对输入代码进行分词 2. 规范化标识符与常量 3. 使用 CFG 解析 → 生成 AST 4. 比较树结构 → 计算相似度 5. 显示分数与解释 ## 📊 相似度分级 - 90–100% → 高度相似 - 70–89% → 中等 - 40–69% → 部分 - <40% → 低 ## ⚠️ 限制 - 基于语法,而非完整语义 - 不同结构(例如 for 与 map)可能降低分数 ## 📌 使用方法 1. 粘贴或上传代码 2. 添加多个面板 3. 点击 **分析** 4. 查看结果(分数、AST、令牌、DFA) ## 👨‍💻 使用 CFG、PDA 概念的计算机理论项目
标签:AST 抽象语法树, CFG 解析, CMS安全, CSS, DFA, HTML, JavaScript, Mutation, PDA, SVG 可视化, Theory of Computation, Token 校验, Web 应用, 上下文无关文法, 代码归一化, 代码比较工具, 代码相似性检测, 前端, 变量重命名, 可视化, 后端开发, 多代码比较, 多模态安全, 抄袭检测, 数据可视化, 最长公共子序列, 有限状态自动机, 树编辑距离, 源代码查重, 相似度评分, 结构相似性, 编程语言, 编译原理, 解析器, 计算理论, 词法分析, 语法分析, 语法分析工具, 语法树, 递归下降解析