Integrating Event-Driven and Capsule-Oriented Programming
Modern computer processors now commonly have multiple cores, each of which can do only one thing at a time. The Panini programming model helps programmers take advantage of this to improve the speed of their programs by sending messages to and from different capsules potentially residing on different cores. Event-driven programming allows one to be notified when some event occurs, which prevents needing to poll for the event. This project seeks to integrate both of these programming models into one. Multiple questions about this integration were answered. First is how events are defined in each capsule, second is how other capsules will subscribe to these events, third is how subscribers are notified in relation to message passing between capsules, and finally whether this integration of Panini and events preserves the properties of the Panini programming model that make it both easy and safe to use. To help answer these questions, I extended @Paninij, an implementation of Panini, with event-driven programming capabilities so that programmers can take advantage of both programming models simultaneously.