arrow
返回

An Interpretable Deterministic Framework for Cross-Language Educational Code Similarity Using Code Property Graphs

delete2026-08-27
delete0
delete
OA
AI
T
T. Hareesh
A
Abhinav C. Das
M
M.G. Thushara
DOI:10.1109/access.2026.3727772delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
多语言程序设计入门课程中,识别不同编程语言编写的算法等价代码仍是一项基础挑战。使用两种不同语言(一种为C,另一种为Java)表示同一算法的两个程序会生成不相交的语法树,使得基于标记匹配的算法无法检测跨语言的算法等价性。神经嵌入方法虽可实现跨语言表示,但需要标签充足的数据集进行微调,这在CS-1(计算机科学入门)标签数据稀缺的环境中不可用,且生成的稠密向量无法枚举提交代码中包含的算法模式——这一能力对于可解释的教学反馈至关重要。本文提出一种确定性、无梯度的CS-1教育场景下跨语言算法相似性框架,支持C、C++和Java三种语言。通过在代码属性图(CPG)节点上应用跨语言标签统一过程的“上下文归一化协议”,本框架可在无需任何学习对齐的情况下直接比较不同语言的代码模式。扩展的21模式计算演化签名(CES)分类法包含变量在循环和递归调用中演化的模式级描述符,覆盖了三种语言中的CS-1命令式策略。采用非对称Tversky公式对Java固有的冗长性进行补偿,通过为无关学生提交模式分配低权重,同时保留捕获必要参考策略的能力。该框架无需GPU和标签微调数据即可枚举提交代码中的所有算法模式。在匹配的留出评估中,模型达到88.75%的Top-1召回率,而神经基线仅达到71.37%,凸显了在微调标签数据缺乏场景下模型的有效性。在400个程序的完整跨语言评估任务中,总体跨语言检索准确率为87.25%(349/400,所有方向),核心方向(Java→C/C++和C↔C++)达到88.60%(342/386)。占评估对35%的Java→C/C++跨前端方向达到91.43%(128/140)。其余61.5%的对共享C/C++解析器前端。总体性能主要由Java→C/C++和C↔C++方向驱动;其余稀疏方向详见第VI-B节,表明总体分数不意味着对称的跨语言性能。特征权重仅通过单语言C代码估计且无需重新训练(与词汇BL视图消融相比p<0.0001)。此处所有发现仅针对机构样本中的CS-1命令式编程算法问题(N=400);专家设计的本体和知识库故意牺牲可扩展性以换取可解释性,而泛化性需要机构验证。代码:https://github.com/Abhinav-C-Das/Multi-language-extension-of-semantic-code-similarity-framework-with-code-translation
Keyword:
Automated program assessment
code property graph
computation evolution signatures
cross-language code similarity
Weisfeiler-Lehman graph kernel
context normalization
rule-based code generation
interpretable similarity
educational code assessment
deterministic program analysis

期刊

IEEE Access 封面图
IEEE Access
IF:
3.6
论文数:
9.8W
被引数:
29.4W

机构

A
Amrita Vishwa Vidyapeetham
学者数:
7.0K
论文数: 4.2K
被引数: 3.3K
引用论文

引用论文

暂无论文信息