TY - GEN
T1 - Trace-Based Bytecode Interpreter Visualization for Compiler Construction Education
AU - Herber, Tobias
AU - Weninger, Markus
PY - 2025/9/30
Y1 - 2025/9/30
N2 - Enhancing students’ comprehension of bytecode generation and its interpretation is crucial, yet challenging, in compiler construction courses. Traditional approaches often emphasize theoretical concepts, making it difficult for students to grasp the inner workings of bytecode interpreters.To bridge this gap, we introduce a web-based tool for trace-based bytecode interpreter visualization, designed to enhance comprehension by providing an interactive and visually enriched learning experience. Our tool provides a side-by-side view that aligns the original high-level source code and its corresponding low-level bytecode, with arrows indicating jumps and method calls. Users can step through the executed bytecode (forwards and backwards) to see the effect of each operation. A dynamic memory visualization utilizes animations to illustrate changes in the interpreter’s various memory regions and its registers. To further increase the flexibility of our tool, we developed a lightweight metalanguage that enables educators to define visualizations for arbitrary bytecode formats.Our tool aims to bridge the gap between abstract theory and concrete execution. We demonstrate its effectiveness in various educational settings, e.g., how it can help educators improve their live teaching and how it facilitates student self-study.
AB - Enhancing students’ comprehension of bytecode generation and its interpretation is crucial, yet challenging, in compiler construction courses. Traditional approaches often emphasize theoretical concepts, making it difficult for students to grasp the inner workings of bytecode interpreters.To bridge this gap, we introduce a web-based tool for trace-based bytecode interpreter visualization, designed to enhance comprehension by providing an interactive and visually enriched learning experience. Our tool provides a side-by-side view that aligns the original high-level source code and its corresponding low-level bytecode, with arrows indicating jumps and method calls. Users can step through the executed bytecode (forwards and backwards) to see the effect of each operation. A dynamic memory visualization utilizes animations to illustrate changes in the interpreter’s various memory regions and its registers. To further increase the flexibility of our tool, we developed a lightweight metalanguage that enables educators to define visualizations for arbitrary bytecode formats.Our tool aims to bridge the gap between abstract theory and concrete execution. We demonstrate its effectiveness in various educational settings, e.g., how it can help educators improve their live teaching and how it facilitates student self-study.
KW - Bridges
KW - Visualization
KW - Source coding
KW - Education
KW - Debugging
KW - Animation
KW - Software
KW - Registers
KW - Computer science education
UR - https://ieeexplore.ieee.org/document/11175651/
UR - https://www.scopus.com/pages/publications/105018911681
U2 - 10.1109/VISSOFT67405.2025.00010
DO - 10.1109/VISSOFT67405.2025.00010
M3 - Conference proceedings
SN - 979-8-3315-9518-0
SP - 13
EP - 24
BT - 2025 IEEE Working Conference on Software Visualization (VISSOFT)
PB - IEEE
T2 - 2025 IEEE Working Conference on Software Visualization (VISSOFT)
Y2 - 7 September 2025 through 8 September 2025
ER -