EasyTracker: A Python Library for Controlling and Inspecting Program Execution

Learning to program involves building a mental representation of how a machine executes instructions and stores data in memory. To help students, teachers often use visual representations to illustrate the execution of programs or particular concepts in their lectures. As a famous example, teachers...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings / International Symposium on Code Generation and Optimization s. 359 - 372
Hlavní autoři: Barollet, Theo, Guillon, Christophe, Selva, Manuel, Broquedis, Francois, Bouchez-Tichadou, Florent, Rastello, Fabrice
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: IEEE 02.03.2024
Témata:
ISSN:2643-2838
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:Learning to program involves building a mental representation of how a machine executes instructions and stores data in memory. To help students, teachers often use visual representations to illustrate the execution of programs or particular concepts in their lectures. As a famous example, teachers often represent references/pointers with arrows pointing to objects or memory locations. While these visual representations are mostly hand-drawn, there is a tendency to supplement them with tools. However, building such a tool from scratch requires much effort and a high level of debugging technical expertise, while existing tools are difficult to adapt to different contexts. This article presents EasyTracker, a Python library targeting teachers who are not debugging experts. By providing ways of controlling the execution and inspecting the state of programs, EasyTracker simplifies the development of tools that generate tuned visual representations from the controlled execution of a program. The controlled program can be written either in Python, C, or assembly languages. To ease the development of visualization tools working for programs in different languages and to allow the building of web-based tools, EasyTracker provides a language-agnostic and serializable representation of the state of a running program.
ISSN:2643-2838
DOI:10.1109/CGO57630.2024.10444823