Automatic and Dynamic Visualization of Process-Based Concurrent Programs

Authors Daniel Augusto Rodrigues Farina, Rodrigo Campiolo, José Rufino, Maria João Varanda Pereira



PDF
Thumbnail PDF

File

OASIcs.SLATE.2024.6.pdf
  • Filesize: 0.78 MB
  • 12 pages

Document Identifiers

Author Details

Daniel Augusto Rodrigues Farina
  • Polytechnic Institute of Bragança, Portugal
  • Federal University of Technology - Paraná, Brazil
Rodrigo Campiolo
  • Federal University of Technology - Paraná, Brazil
José Rufino
  • Polytechnic Institute of Bragança, Portugal
Maria João Varanda Pereira
  • Polytechnic Institute of Bragança, Portugal

Cite As Get BibTex

Daniel Augusto Rodrigues Farina, Rodrigo Campiolo, José Rufino, and Maria João Varanda Pereira. Automatic and Dynamic Visualization of Process-Based Concurrent Programs. In 13th Symposium on Languages, Applications and Technologies (SLATE 2024). Open Access Series in Informatics (OASIcs), Volume 120, pp. 6:1-6:12, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2024) https://doi.org/10.4230/OASIcs.SLATE.2024.6

Abstract

This article discusses the development of forkSim, a tool that can be used to support the teaching of system-level programming within the context of Operating Systems classes, by facilitating the comprehension and analysis of the behavior of C codes representing process-based concurrent programs involving fork system calls. The tool builds on two main components. The first is a C preprocessor, created using language processing techniques. This preprocessor embeds inspectors into the C code before its execution. In runtime, the inspectors extract relevant data from the actions performed and generate a JSON file. The second component is a web application that generates a visual representation of the program flow based on the JSON file. This visualization incorporates elements from BPMN diagrams and draws inspiration from representations used for many years in OS classes. The development of forkSim faced several technical challenges and involved some design decisions, both documented in this paper, along with a discussion of the results achieved.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Parsers
  • Computing methodologies → Concurrent computing methodologies
  • Human-centered computing → Visualization systems and tools
Keywords
  • E-Learning Tool
  • System Programming
  • Concurrent Programming
  • Code Instrumentation
  • Inspector Functions
  • C
  • JSON
  • Konva JS
  • Canvas
  • Python
  • React JS
  • BPMN

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Pearson Education, 2006. Google Scholar
  2. Carlos Balsa, Luís M. Alves, Maria João Pereira, Pedro Rodrigues, and Rui Lopes. Graphical simulation of numerical algorithms : an approach based on code instrumentation and java technologies. CSEDU 2012 - 4th International Conference on Computer Supported Education, 2012. URL: http://hdl.handle.net/10198/6998.
  3. David Beazley. Library ply. https://github.com/dabeaz/ply. Accessed: 2024-03-12.
  4. Eli Bendersky. Library pycparser. https://github.com/eliben/pycparser. Accessed: 2024-03-12.
  5. Mário Berón, Pedro Henriques, Maria João Pereira, and Roberto Uzal. Static and dynamic strategies to understand c programs by code annotation. In 1st International Workshop on Fondations and Techniques for Open Source Software Certification, Braga, 2007. Google Scholar
  6. Max Brunsfeld. Library tree-sitter. https://github.com/tree-sitter/tree-sitter. Accessed: 2024-03-12.
  7. Max Brunsfeld. Transpotting problem in laboratory class using tsim software. https://github.com/tree-sitter/tree-sitter. Accessed: 2024-03-12.
  8. Daniela Cruz, Mário Berón, Pedro Henriques, and Maria João Pereira. Code inspection approaches for program visualization. Acta Electrotechnica et Informatica, 9(2):32-42, 2009. Google Scholar
  9. Free Software Foundation. Gdb front ends and other tools. https://sourceware.org/gdb/wiki/GDB%20Front%20Ends/. Accessed: 2024-02-04.
  10. Object Management Group. Bpmn specification - business process model and notation. https://www.bpmn.org/. Accessed: 2024-02-29.
  11. Philip Guo. Ten million users and ten years later: Python tutor’s design guidelines for building scalable and sustainable research software in academia. In The 34th Annual ACM Symposium on User Interface Software and Technology, UIST '21, pages 1235-1251, New York, NY, USA, 2021. Association for Computing Machinery. URL: https://doi.org/10.1145/3472749.3474819.
  12. Philip J. Guo. React. https://pythontutor.com/. Accessed: 2024-02-19.
  13. Philip J. Guo. Online python tutor: embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education, SIGCSE '13, pages 579-584, New York, NY, USA, 2013. Association for Computing Machinery. URL: https://doi.org/10.1145/2445196.2445368.
  14. KonvaJS. Konvajs. https://konvajs.org/. Accessed: 2024-02-19.
  15. Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558-565, July 1978. URL: https://doi.org/10.1145/359545.359563.
  16. Terence Parr. Library antlr. https://github.com/antlr/antlr4. Accessed: 2024-03-12.
  17. GNU Project. Gdb: The gnu project debugger. https://sourceware.org/gdb/. Accessed: 2024-02-04.
  18. Erez Shinan. Library lark. https://github.com/lark-parser/lark. Accessed: 2024-03-12.
  19. Milene Selbach Silveira and Mára Lúcia Fernandes Carneiro. Diretrizes para a avaliação da usabilidade de objetos de aprendizagem. In Simpósio Brasileiro de Informática na Educação, Rio de Janeiro, November 2012. Google Scholar
  20. Meta Open Source. React. https://pt-br.react.dev/. Accessed: 2024-02-19.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail