Tools for visual exploration of scope and parameter passing in a programming languages course

INTRODUCTION In a programming g languages course, a student must struggle with numerous parameter passing tectilques and also with different means of resolving the scope of variables that are not local to a procedure. Parameter passing methods typically studied include value, reference, copy-restore (valueresult), and macro (pass-by-name). Scope resolution teetilques include dynamic and static scoping, with static scoping implemented either by static chains or displays. Coping with all of these issues requires that the student have a solid understanding of the stack of activation records that is maintained by an exexuting program. We have developed a miniature Pascal-like language and accompanying user environment (called PSVE) expressly designed to allow exploration of parameter passing and scoping questions. By providing links to the GAIGS algorithm visualization system, the PSVE system allows a student to view a graphical rendering of the stack of activation records at user-selected key points of program execution.