SYNFIX: Automatically Fixing Syntax Errors using Compiler Diagnostics
Not on the map. Why?
Abstract (arXiv)
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.
Key facts. Cited by 8 papers in the map (data through 7 Oct 2026). Builds on 21 of its 57 references that are in the map. First posted on arXiv 29 Apr 2021.
Builds on
21 of 57 references.
References · 21
- 2017Attention Is All You Needcited by 59,932
- 2018BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingcited by 40,204
- 2019RoBERTa: A Robustly Optimized BERT Pretraining Approachcited by 13,266
- 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,286
- 2015Effective Approaches to Attention-based Neural Machine Translationcited by 1,024
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 732
- 2020GraphCodeBERT: Pre-training Code Representations with Data Flowcited by 600
- 2021Unified Pre-training for Program Understanding and Generationcited by 361
- 2017OpenNMT: Open-source Toolkit for Neural Machine Translationcited by 251
- 2018SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repaircited by 144
- 2020Graph-based, Self-Supervised Program Repair from Diagnostic Feedbackcited by 93
- 2021Studying the Usage of Text-To-Text Transfer Transformer to Support Code-Related Taskscited by 70
9 more
- 2021DOBF: A Deobfuscation Pre-Training Objective for Programming Languagescited by 68
- 2018DeepBugs: A Learning Approach to Name-based Bug Detectioncited by 65
- 2020Big Code != Big Vocabulary: Open-Vocabulary Models for Source Codecited by 53
- 2019On Learning Meaningful Code Changes via Neural Machine Translationcited by 50
- 2021ProphetNet-X: Large-Scale Pre-training Models for English, Chinese, Multi-lingual, Dialog, and Code Generationcited by 31
- 2020Patching as Translation: the Data and the Metaphorcited by 18
- 2021Learning to Find Usages of Library Functions in Optimized Binariescited by 5
- 2018Deep Reinforcement Learning for Programming Language Correctioncited by 4
- 2019Learning Lenient Parsing & Typing via Indirect Supervisioncited by 1
Built on by
Citing papers per year: 2023: 3; 2024: 3; 2025: 2.
8 papers.
- 2023The Robots are Here: Navigating the Generative AI Revolution in Computing Educationcited by 85
- 2024Evaluating Mathematical Reasoning of Large Language Models: A Focus on Error Identification and Correctioncited by 45
- 2024LLM4PLC: Harnessing Large Language Models for Verifiable Programming of PLCs in Industrial Control Systemscited by 20
- 2023Pitfalls in Language Models for Code Intelligence: A Taxonomy and Surveycited by 9
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarkscited by 7
- 2025ObscuraCoder: Powering Efficient Code LM Pre-Training Via Obfuscation Groundingcited by 4
- 2025Collaborative Agents for Automated Program Repair in Rubycited by 1
- 2023On ML-Based Program Translation: Perils and Promisescited by 0
- 2025Collaborative Agents for Automated Program Repair in Ruby6 Nov 2025
- 2025ObscuraCoder: Powering Efficient Code LM Pre-Training Via Obfuscation Grounding27 Mar 2025
- 2024Evaluating Mathematical Reasoning of Large Language Models: A Focus on Error Identification and Correction2 Jun 2024
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarks8 May 2024
- 2024LLM4PLC: Harnessing Large Language Models for Verifiable Programming of PLCs in Industrial Control Systems8 Jan 2024
- 2023Pitfalls in Language Models for Code Intelligence: A Taxonomy and Survey27 Oct 2023
- 2023The Robots are Here: Navigating the Generative AI Revolution in Computing Education1 Oct 2023
- 2023On ML-Based Program Translation: Perils and Promises21 Feb 2023