将结构带入自然性:关于抽象语法树(AST)自然性的论述
软件工程
2025-04-14 v1 机器学习
摘要
源代码呈现不同的形态和形式。先前的研究表明,代码比自然语言更可预测,并在词汇层面突出其统计可预测性:源代码是自然的。更近期的研究表明,代码的结构——控制流、语法图、抽象语法树等——成功用于提高诸多任务的最新成果:代码建议、代码摘要、方法命名等。该一体工作隐含地假设,对代码的结构化表示在统计上同样是可预测的,即结构化视图的自然性也应被认为是自然的。我们认为应明确这一观点,并提出直接研究结构化自然性假设。除了命名现有假设该假设的研究并对其进行表述外,我们还提供树结构的证据:针对Ruby等语言,TreeLSTM模型对AST进行建模可与n-gram模型相抗衡,同时处理先前研究'免费'处理的语法标记问题。对于其他语言,如Java或Python,我们发现树模型表现更差,这表明下游任务改进与语言建模任务无关。进一步,我们展示了如何利用这种自然性信号用于仅凭无需手动特征工程即可获得近乎最新的缺陷预测成果。
引用
@article{arxiv.2504.08234,
title = {Bringing Structure to Naturalness: On the Naturalness of ASTs},
author = {Profir-Petru Pârţachi and Mahito Sugiyama},
journal= {arXiv preprint arXiv:2504.08234},
year = {2025}
}