Process Algebra Based Tool Coordination Architectures in Raku and Go

Bob Diertens
2024-06-24
Abstract:This paper presents ongoing research in our project software engineering with process algebra. In this project we have developed among others a reimplementation of the simulator from the PSF Toolkit, a set of tools for the Process Specification formalism (PSF). This new simulator uses the ToolBus, a tool coordination architecture based on process algebra. We now developed new tool coordination architectures based on this ToolBus. We implement the primitives of the ToolBus in the programming languages Raku and Go. Both these languages have support for concurrency and communication between concurrent entities in the form of channels. We apply these tool coorination architectures on a small example. And we give implementations for the simulator in the PSF Toolkit based on the tool coordination architectures in Raku and Go.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: how to utilize the concurrent features in modern programming languages (such as Raku and Go) to implement the Tool Coordination Architecture, thereby replacing the traditional implementation method based on ToolBus. Specifically, the paper aims to re - implement the simulator in the PSF (Process Specification Formalism) toolkit by using the concurrent and communication mechanisms in Raku and Go (such as channels), in order to improve flexibility and extensibility. ### Problem Background In software engineering, ToolBus is a tool coordination architecture based on process algebra, which is used to coordinate the communication and collaboration between multiple software tools. The traditional ToolBus implementation depends on specific scripting languages, and its communication mechanism is relatively fixed. In order to improve flexibility and adapt to the characteristics of modern programming languages, researchers hope to use the concurrent features provided by languages such as Raku and Go to redesign the tool coordination architecture. ### Main Objectives 1. **Improve Flexibility**: By using the concurrent features in Raku and Go, make the tool coordination architecture more flexible and better adapt to different application scenarios. 2. **Enhance Extensibility**: The new tool coordination architecture can be extended by adding more concurrent functions and other features without the need for large - scale changes to the original system. 3. **Simplify Communication Mechanisms**: Utilize the features of modern programming languages to simplify the communication mechanisms between tools, making them easier to maintain and debug. ### Solutions The paper achieved the above objectives through the following steps: 1. **Define Basic Primitives**: Define communication primitives similar to ToolBus in Raku and Go (such as `send - msg`, `receive - msg`, etc.), and implement the specific functions of these primitives. 2. **Implement Concurrent Processing**: Utilize the concurrent mechanisms in Raku and Go (such as the `start` command and the `go` keyword) to implement the concurrent execution and communication between tools. 3. **Construct Example Applications**: Demonstrate through a simple example how to use the newly implemented tool coordination architecture to coordinate the communication between two tools. 4. **Apply to PSF Simulator**: Apply the new tool coordination architecture to the simulator in the PSF toolkit to verify its effectiveness and feasibility. ### Conclusion By using the concurrent features in Raku and Go, the paper successfully implemented a new tool coordination architecture, which not only improves the flexibility and extensibility of the system but also simplifies the communication mechanism. This new implementation method provides new ideas and methods for future software engineering and tool coordination.