Program Execution Monitoring for Better Understanding and Debugging

From Simple Sci Wiki
Revision as of 14:52, 24 December 2023 by SatoshiNakamoto (talk | contribs) (Created page with "Title: Program Execution Monitoring for Better Understanding and Debugging Main Research Question: How can program execution monitoring be used to enhance understanding and debugging of programs, and what are the implications for software development and maintenance? Methodology: The researchers proposed a high-level primitive called "foldt" that operates on execution traces. This primitive allows for the easy creation of monitors for Mercury program executions, includ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Title: Program Execution Monitoring for Better Understanding and Debugging

Main Research Question: How can program execution monitoring be used to enhance understanding and debugging of programs, and what are the implications for software development and maintenance?

Methodology: The researchers proposed a high-level primitive called "foldt" that operates on execution traces. This primitive allows for the easy creation of monitors for Mercury program executions, including execution profiles, graphical abstract views, and test coverage measurements. These monitors are implemented with a few lines of Mercury code.

Results: The researchers demonstrated that their approach allows for a clean separation of concerns, with the definition of monitors distinct from both the user source code and the language compiler. They provided examples of the use of foldt to define monitors, showing that it is possible to easily create monitors for various aspects of program execution.

Implications: The research suggests that program execution monitoring can be a powerful tool for enhancing program understanding and debugging. It also implies that software developers can now create their own monitors, tailored to their specific needs, without having to invest a lot of effort in implementing relevant monitoring code. This could potentially lead to more efficient and effective software development and maintenance.

The research also highlights the importance of providing genericity in monitoring systems, as it is impossible to foresee all the properties that programmers may want to check on executions. This suggests that future monitoring systems should be designed with this in mind, to ensure they are versatile and adaptable to different application domains.

Link to Article: https://arxiv.org/abs/0311016v1 Authors: arXiv ID: 0311016v1