View Proposal


Proposer
Marko Doko
Title
Software for Interactive Exploration of Concurrent Programs' Executions
Goal
develop software
Description
When it comes to defining possible behaviors of multithreaded programs accessing shared memory locations, modern programming languages often come with execution models which are (for a multitude of reasons) rather intricate. Those models represent possible executions of a program using graphs whose nodes represent actions taken by the program, and various types of edges represent the relations among the actions. Getting good intuitive understanding of the models of concurrent executions is not easy because people may find it difficult to visualize how the graphs which represent the executions are being built. This project will focus on a version of the execution model used by C/C++ language family. The task is to develop a software which will enable users to input an example program and interactively explore its executions, i.e., the software will help the user build various graphs which represent legal executions of the given program. Think of this software as a teaching aid. The ideal use case is to help people learn how to think about the modern execution models for concurrent programs. Note that you do not need to know much (or anything at all for that matter) about C or C++ to work on this project. The implementation language of the software being developed can be any language you feel comfortable with.
Resources
Background
Good programming skills.
Url
Difficulty Level
Moderate
Ethical Approval
None
Number Of Students
1
Supervisor
Marko Doko
Keywords
Degrees