Expressing the Behavior of Three Very Different Concurrent Systems by Using Natural Extensions of Separation Logic

Edgar G. Daylight,Sandeep K. Shukla,Davide Sergio
DOI: https://doi.org/10.4204/EPTCS.8.3
2009-11-11
Abstract:Separation Logic is a non-classical logic used to verify pointer-intensive code. In this paper, however, we show that Separation Logic, along with its natural extensions, can also be used as a specification language for concurrent-system design. To do so, we express the behavior of three very different concurrent systems: a Subway, a Stopwatch, and a 2x2 Switch. The Subway is originally implemented in LUSTRE, the Stopwatch in Esterel, and the 2x2 Switch in Bluespec.
Logic in Computer Science,Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is to explore whether separation logic and its natural extensions can be used as a specification language to express the behavior of concurrent system designs. Specifically, the author chooses to use separation logic to describe three very different concurrent systems: a subway system, a stopwatch, and a 2x2 switch. These three systems were originally implemented in LUSTRE, Esterel, and Bluespec languages respectively. The goal of the paper is to show that separation logic is not limited to verifying pointer - intensive code, but can also be used as a specification language for the behavior of concurrent systems. ### Specific Problem Description 1. **Diversity of Concurrent Systems**: - Concurrent systems can choose different specification languages according to their characteristics. For example, the design of a stopwatch can choose the synchronous language Esterel, while a 2x2 switch is more suitable for the language Bluespec with guarded commands. - The paper explores whether these systems with different characteristics can be described by unified separation logic and its extensions. 2. **Measurement of Practical Expressiveness**: - Currently, there is no formal measurement standard for practical expressiveness. The paper attempts to find a relevant measurement that is both well - defined and practical by comparing the specifications of different systems in different languages. 3. **Application of Separation Logic**: - Separation logic is usually used to verify pointer - intensive code, but in this paper, the author applies it to the behavior description of concurrent systems. - The author proposes several extended forms (such as "snapshot", "change", and "change of change" in the photography analogy) to meet the needs of different types of concurrent systems. ### Solution - **Photography Analogy**: The author introduces the concepts of "snapshot" and "change" through the photography analogy, enabling separation logic to describe the behavior of concurrent systems. - **Logical Extension**: Several logical extensions, such as ChaLo (Change Logic), Cha2Lo (Change of Change Logic), etc., are proposed to meet the needs of more complex behavior description. - **Case Study**: Through specific case studies of the subway system, stopwatch, and 2x2 switch, the effectiveness and flexibility of separation logic and its extensions are demonstrated. ### Conclusion The paper shows the potential of separation logic and its extensions in describing the behavior of concurrent systems, especially when dealing with concurrent systems with different characteristics. This provides new ideas and tools for future research and also lays the foundation for the further development of specification languages for concurrent systems.