32
Views
8
CrossRef citations to date
0
Altmetric
Original Articles

Fatal error in pass zero: how not to confuse novices

&
Pages 109-118 | Published online: 05 Feb 2007
 

ABSTRACT

All novice programmers find that their initial programs are rejected by the compiler in a flurry of incomprehensible error messages. Some messages are even hostile (e.g. fatal error in pass zero) and leave the novice sadder and certainly no wiser. The quality of error messages is usually the loser when the compiler writer attempts to balance conflicting design constraints such as size, speed, quality of target code and utility of use by competent programmers.

We believe that novices’ programs should be passed through a series of checkers which are designed to trap and comment on the particular kinds of errors made by them. Such systems may have to make several passes through the program, even to provide an apposite comment on a syntactic error. For logic checking such systems will need access to a description (in some form) of what the novice's program is supposed to do. Only when a novice's program passes through all the checkers successfully should it be submitted to the standard compiler.

This paper surveys existing attempts to build ‘intelligent’ compilers which are considerate of novices’ difficulties. It then describes our own progress towards the construction of program checkers for use by undergraduates learning Pascal.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.