「将类似 i = i + 1 的语句替换为 i++」,「好的,已替换~」
IDE 除了检查语法错误或拼写错误,能不能更高级一点?借助深度学习,代码编辑能更智能,编辑器也能理解一些高级语义。在这篇文章中,CMU 和微软的研究者介绍了一篇 ICLR 2019 的新研究,它只需要输入一些高级语义,编辑器就能自动改改代码。
「这是我的顶会论文—你觉得如何?」经过数小时麻烦的文字输入和图片插入后,分享初稿的时刻你感到非常自豪。但没过多久,你可能就会有打脸的感觉,你的同事给你反馈时进行了大量的编辑。
这些编辑很多只是简单的语法、风格修正或添加引用,这些反馈的小建议并不如论文实质内容那样令人高兴或有价值。例如指出单词拼写错误等操作,最基础的反馈形式已经实现了自动化。但是,那些更复杂的编辑任务能否也实现自动化呢?
特别适合探究该问题的一个领域是源代码编辑(source code editing)。利用先进的控制工具和重构工具,源代码仓库为训练和测试深度学习模型提供大量数据,以研究如何表征、发现和应用编辑。在 ICLR 2019 大会论文《Learning to Represent Edits》中,微软利用这些资源创建无监督深度学习模型,该模型在代码和自然语言领域生成合理编辑过程显示出了良好的前景。
论文:LEARNING TO REPRESENT EDITS