Automatic generation of useful syntax error messages
Software—Practice & Experience
The implementation of the Icon programming language
The implementation of the Icon programming language
Intention-based diagnosis of errors in novice programs
Intention-based diagnosis of errors in novice programs
Eli: a complete, flexible compiler construction system
Communications of the ACM
lex & yacc (2nd ed.)
A Syntax-Error-Handling Technique and Its Experimental Analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Error messages: the neglected area of the man/machine interface
Communications of the ACM
Designing computer system messages
Communications of the ACM
Design and implementation of a diagnostic compiler for PL/I
Communications of the ACM
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
The ICON Programming Language
What the Compiler Should Tell the User
Compiler Construction, An Advanced Course, 2nd ed.
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Declarative, formal, and extensible syntax definition for aspectJ
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
What would other programmers do: suggesting solutions to error messages
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Preventing injection attacks with syntax embeddings
Science of Computer Programming
On compiler error messages: what they say and what they mean
Advances in Human-Computer Interaction
Hi-index | 0.00 |
LR parser generators are powerful and well-understood, but the parsers they generate are not suited to provide good error messages. Many compilers incur extensive modifications to the source grammar to produce useful syntax error messages. Interpreting the parse state (and input token) at the time of error is a nonintrusive alternative that does not entangle the error recovery mechanism in error message production. Unfortunately, every change to the grammar may significantly alter the mapping from parse states to diagnostic messages, creating a maintenance problem.Merr is a tool that allows a compiler writer to associate diagnostic messages with syntax errors by example, avoiding the need to add error productions to the grammar or interpret integer parse states. From a specification of errors and messages, Merr runs the compiler on each example error to obtain the relevant parse state and input token, and generates a yyerror() function that maps parse states and input tokens to diagnostic messages. Merr enables useful syntax error messages in LR-based compilers in a manner that is robust in the presence of grammar changes.