Institute for Software Research
School of Computer Science, Carnegie Mellon University


The Essence of Program Semantics Visualizers:
A Three-Axis Model

Josh Pollock*, Grace Oh**, Eunice Jun+,
Philip J. Guo++, Zachary Tatlock+

November 2020


This paper was presented at PLATEAU 2020:
The 11th Annual Workshop on the Intersection of HCI and PL
November 2020, Co-located with SPLASH 2020

Keywords: Program semantics visualizer, CS1, notional machine, abstract machine, term rewriting system, Python Tuto

A program semantics visualizer (PSV) helps illuminate a language's semantics by explaining the runtime execution of programs. PSVs are often used in introductory programming (CS1) courses to help introduce a notional machine, an abstraction of the computer that executes the language. But what information should PSVs present to fully explain such notional machines?

In this paper we propose a three-axis model to assess the design of PSVs that visualize execution traces. PSVs should help users by clearly answering three questions: What is the machine's cofiguration at each execution step? Why did an execution step take place? How did an execution step change the machine's configuration? We demonstrate our model's utility for assessing PSVs by explaining why, in actual classroom use, instructors have resorted to manually extending Python Tutor's visualizations.

21 pages

*Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, MA
**International School, Bellevue, WA
+Paul G. Allen School of Computer Science Engineering, University of Washington, Seattle, WA
++Department of Cognitive Science, University California, San Diego, La Jolla, CA

Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by