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...
Gespeichert in:
| Veröffentlicht in: | Proceedings / International Symposium on Code Generation and Optimization S. 359 - 372 |
|---|---|
| Hauptverfasser: | , , , , , |
| Format: | Tagungsbericht |
| Sprache: | Englisch |
| Veröffentlicht: |
IEEE
02.03.2024
|
| Schlagworte: | |
| ISSN: | 2643-2838 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | 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. |
|---|---|
| AbstractList | 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. |
| Author | Rastello, Fabrice Barollet, Theo Guillon, Christophe Broquedis, Francois Bouchez-Tichadou, Florent Selva, Manuel |
| Author_xml | – sequence: 1 givenname: Theo surname: Barollet fullname: Barollet, Theo email: theo.barollet@inria.fr organization: Univ. Grenoble Alpes,Inria, CNRS, Grenoble INP, LIG,Grenoble,France,38000 – sequence: 2 givenname: Christophe surname: Guillon fullname: Guillon, Christophe email: christophe.guillon@inria.fr organization: Univ. Grenoble Alpes,Inria, CNRS, Grenoble INP, LIG,Grenoble,France,38000 – sequence: 3 givenname: Manuel surname: Selva fullname: Selva, Manuel email: manuel.selva@inria.fr organization: Univ. Grenoble Alpes,Inria, CNRS, Grenoble INP, LIG,Grenoble,France,38000 – sequence: 4 givenname: Francois surname: Broquedis fullname: Broquedis, Francois email: francois.broquedis@inria.fr organization: Univ. Grenoble Alpes,Inria, CNRS, Grenoble INP, LIG,Grenoble,France,38000 – sequence: 5 givenname: Florent surname: Bouchez-Tichadou fullname: Bouchez-Tichadou, Florent email: florent.bouchez-tichadou@inria.fr organization: Univ. Grenoble Alpes,Inria, CNRS, Grenoble INP, LIG,Grenoble,France,38000 – sequence: 6 givenname: Fabrice surname: Rastello fullname: Rastello, Fabrice email: fabrice.rastello@inria.fr organization: Univ. Grenoble Alpes,Inria, CNRS, Grenoble INP, LIG,Grenoble,France,38000 |
| BookMark | eNo1j8FOAjEURavRREH-wJj-wODrex06dUcmiCREWOCadDpvcBRa0hkT-Xs16urmbE7OHYiLEAMLcadgrBTY-3K-ys2EYIyAeqxAa10gnYmRNbagHMjmYO25uMaJpgwLKq7EoOveANBoRdfieea60yY5_87pQU7l-tS_xiCXbZVcOskmJlnG0Ke437dhJ12o5SJ0R_b9D65T3CV3kLNP9h99G8ONuGzcvuPR3w7Fy-NsUz5ly9V8UU6XmUMLfVYgg1UVG0TjvNLKsyHMuVZ1ww5rIvC-MlgB2wpdVeSEzoNDk2sD2NBQ3P56W2beHlN7-K7d_v-nL_XNUX8 |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/CGO57630.2024.10444823 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9798350395099 |
| EISSN | 2643-2838 |
| EndPage | 372 |
| ExternalDocumentID | 10444823 |
| Genre | orig-research |
| GroupedDBID | 29O 6IE 6IF 6IK 6IL 6IN AAJGR ABLEC ADZIZ ALMA_UNASSIGNED_HOLDINGS BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO IEGSK IPLJI OCL RIE RIL |
| ID | FETCH-LOGICAL-a290t-82e091be7227ac141ce7325ed1dfea2d330ccb72b0e9b2ab8532ac0a2754702f3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 1 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001179185400029&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 02:08:26 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a290t-82e091be7227ac141ce7325ed1dfea2d330ccb72b0e9b2ab8532ac0a2754702f3 |
| PageCount | 14 |
| ParticipantIDs | ieee_primary_10444823 |
| PublicationCentury | 2000 |
| PublicationDate | 2024-March-2 |
| PublicationDateYYYYMMDD | 2024-03-02 |
| PublicationDate_xml | – month: 03 year: 2024 text: 2024-March-2 day: 02 |
| PublicationDecade | 2020 |
| PublicationTitle | Proceedings / International Symposium on Code Generation and Optimization |
| PublicationTitleAbbrev | CGO |
| PublicationYear | 2024 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| SSID | ssj0027413 ssib057256076 |
| Score | 2.2554808 |
| Snippet | Learning to program involves building a mental representation of how a machine executes instructions and stores data in memory. To help students, teachers... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 359 |
| SubjectTerms | Buildings Codes debug Debugging instrumentation Libraries Optimization Python teaching Visualization |
| Title | EasyTracker: A Python Library for Controlling and Inspecting Program Execution |
| URI | https://ieeexplore.ieee.org/document/10444823 |
| WOSCitedRecordID | wos001179185400029&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV07T8MwELZoxcBUHkW85YE1xTknccKGqhZYSgeQulX2-SKxpKgPRP89tpMUMTCw2R4s687Wd2d_n4-xWyocCuZYRhlCGSWgMNI6SSOrEMAqUnlqQrEJNZnks1kxbcTqQQtDRIF8RgPfDG_5doEbf1XmTnjisgmQHdZRKqvFWu3mSZUHb4-tu2wrlo0kOBbF3fDxxYXWUriUEJJBO9OvmioBUsa9fy7mkPV_xHl8uoOdI7ZH1THrtdUZeHNYT9hkpFdbB0WeN3HPH_h0678J4I1QgbtglQ9rnrpXpHNdWf5c1cJL153WvC0--iIMe7PP3saj1-FT1FRPiDQUYh3lQC4WMKQAlMY4iZGUhJRsbEvSYKUUiEaBEVQY0MbhNmgUGlSaKAGlPGXdalHRGeMiLl3kgrk1mHn8MjL3d5A5UorClNk563v7zD_qDzLmrWku_hi_ZAfeC4HKBVesu15u6Jrt4-f6fbW8CW79Bia9ohM |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV27TsMwFLWgIMFUHkW88cCa4lwndcKGqpZWlJKhSGyVHzcSS4r6QPTvsZ2kiIGBzfZgWX7o3Guf40PILaYWBROdBx0NeRCB0IGUURwYoQGMQJHEyptNiPE4eXtLs0qs7rUwiOjJZ9h2Rf-Wb2Z65a7K7AmPbDYBfJvsOOusSq5Vb59YOPh26LrJt0JeiYJDlt51H19scM2ZTQohatd9_XJV8aDSb_5zOAek9SPPo9kGeA7JFhZHpFn7M9DquB6TcU8u1haMHHPinj7QbO0-CqCVVIHacJV2S6a606RTWRg6LErppa1mJXOL9r5Q-93ZIq_93qQ7CCr_hEBCypZBAmijAYUCQEgdRqFGwSFGE5ocJRjOmdZKgGKYKpDKIjdIzSSIOBIMcn5CGsWswFNCWZjb2EUnRumOQzDFE3cLmWiMNVN554y03PxMP8ovMqb11Jz_0X5D9gaT59F0NBw_XZB9tyKe2AWXpLGcr_CK7OrP5ftifu2X-BvKKaVc |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+%2F+International+Symposium+on+Code+Generation+and+Optimization&rft.atitle=EasyTracker%3A+A+Python+Library+for+Controlling+and+Inspecting+Program+Execution&rft.au=Barollet%2C+Theo&rft.au=Guillon%2C+Christophe&rft.au=Selva%2C+Manuel&rft.au=Broquedis%2C+Francois&rft.date=2024-03-02&rft.pub=IEEE&rft.eissn=2643-2838&rft.spage=359&rft.epage=372&rft_id=info:doi/10.1109%2FCGO57630.2024.10444823&rft.externalDocID=10444823 |