Function Execution

Concurrent Computational Model

We derived an abstract computational model for the execution of functions. We started with the traditional sequential execution model for function execution from which we obtained a sequential computational model by abstracting from the details of function call implementation. By further abstraction of how a function is scheduled for execution, we obtained an abstract computational model that allows for the concurrent execution of functions.

We have shown that with abstraction and relaxing constraints a model for execution of functions can be obtained in which function scheduling plays a key role. This model has as a possible implementation inline scheduling, the original stack-based function execution model we started with. Moreover, this model allows for concurrent execution of instructions, and therefore it is suitable as model for implementation of concurrent software.

We can implement a concurrent computational model from the abstract computational model that resembles the operational semantics of a programming language supporting a particular form of concurrent execution of functions. From the concurrent computational model a concurrent execution model can be implemented for a certain concurrent machine model.

In the framework described above we deal with the execution of functions on different levels of abstraction. Each lower level is a refinement of the level above, until reaching the target machine model. In the concurrent computational model we also have to deal with the problems caused by the concurrent execution of functions, such as problems with shared memory. With the sequential computational model this is not necessary as these problems dissappear due the inline scheduling of functions.