Beginning programmers struggle with the complex grammar of modern programming languages like Java, and make lot of syntax errors. The diagnostic syntax error messages from compilers and IDEs are sometimes useful, but often the messages are cryptic and puzzling. Students could be helped, and instructors' time saved, by automated repair suggestions when dealing with syntax errors. Large samples of student errors and fixes are now available, offering the possibility of data-driven machine-learning approaches to help students fix syntax errors. Current machine-learning approaches do a reasonable job fixing syntax errors in shorter programs, but don't work as well even for moderately longer programs. We introduce SYNFIX, a machine-learning based tool that substantially improves on the state-of-the-art, by learning to use compiler diagnostics, employing a very large neural model that leverages unsupervised pre-training, and relying on multi-label classification rather than autoregressive synthesis to generate the (repaired) output. We describe SYNFIX's architecture in detail, and provide a detailed evaluation. We have built SYNFIX into a free, open-source version of Visual Studio Code; we make all our source code and models freely available.


翻译:初始程序员与像 Java 这样的现代编程语言的复杂语法拼凑, 并做了大量的语法错误。 编程员和 IDE 的诊断性语法错误信息有时有用, 但信息往往有隐秘和令人费解。 处理语法错误时, 学生可以得到帮助, 教官可以节省时间。 大量的学生错误和校正样本现已可用, 提供了数据驱动机学习方法的可能性, 以帮助学生修补语法错误。 当前的机器学习方法在较短的程序里可以做合理的工作, 修补语法错误, 但即使是对程序来说, 也不起作用。 我们引入了SYNFIX, 这是一种基于机器学习工具, 大大改进了当前艺术的状态, 学会使用编程诊断方法, 使用一个非常大型的神经模型, 利用不受监管的训练前训练, 依靠多标签分类而不是自动回归合成合成方法来生成( 更新 ) 输出。 我们详细描述SYNFIX 的架构, 并且提供详细的评估。 我们建立了一个自由的SIS 代码源, 我们建立了一个自由的SY- RVIS 版本。

0
下载
关闭预览

相关内容

编译器(Compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
专知会员服务
123+阅读 · 2020年9月8日
专知会员服务
38+阅读 · 2020年9月6日
开源书:PyTorch深度学习起步
专知会员服务
49+阅读 · 2019年10月11日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
38+阅读 · 2019年10月9日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
99+阅读 · 2019年10月9日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
ACL 2018 计算语言学协会接受论文列表
专知
3+阅读 · 2018年4月27日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】树莓派/OpenCV/dlib人脸定位/瞌睡检测
机器学习研究会
9+阅读 · 2017年10月24日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
自然语言处理 (NLP)资源大全
机械鸡
35+阅读 · 2017年9月17日
【推荐】Python机器学习生态圈(Scikit-Learn相关项目)
机器学习研究会
6+阅读 · 2017年8月23日
Techniques for Automated Machine Learning
Arxiv
4+阅读 · 2019年7月21日
Arxiv
4+阅读 · 2018年5月14日
VIP会员
相关VIP内容
专知会员服务
123+阅读 · 2020年9月8日
专知会员服务
38+阅读 · 2020年9月6日
开源书:PyTorch深度学习起步
专知会员服务
49+阅读 · 2019年10月11日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
38+阅读 · 2019年10月9日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
99+阅读 · 2019年10月9日
相关资讯
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
ACL 2018 计算语言学协会接受论文列表
专知
3+阅读 · 2018年4月27日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】树莓派/OpenCV/dlib人脸定位/瞌睡检测
机器学习研究会
9+阅读 · 2017年10月24日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
自然语言处理 (NLP)资源大全
机械鸡
35+阅读 · 2017年9月17日
【推荐】Python机器学习生态圈(Scikit-Learn相关项目)
机器学习研究会
6+阅读 · 2017年8月23日
Top
微信扫码咨询专知VIP会员