Animators and error reporters for generated programming environments
We study animators and error reporters for generated programming environments. An error reporter is a tool for indicating the exact position of a type-error in the source text. An animator visualizes program execution; typically, it highlights the statement that is currently executing. Applications of both tools are mainly to be found in the areas of debugging and tutoring. Instead of explicitly extending language specifications with these facilities, we claim that error reporters and animators can be generated from existing specifications for type-checkers and interpreters with little effort; to this end, a simple pattern-matching mechanism is used in conjunction with origin tracking, a generic tracing technique. In this paper, we discuss our claim, and at the same time investigate the limitations and deficiencies of origin tracking. Our techniques are illustrated using an example language named CLaX, a Pascal relative. The full specifications of the CLaX syntax, type-checker and interpreter are included in appendices.