Bigraphical Domain-specific Language (BDSL): User Manual

Abstract

This report describes Bigraphical DSL (BDSL), a domain-specific language for reactive systems, rooted in the mathematical spirit of the bigraph theory devised by Robin Milner. BDSL is not only a platform-agnostic programming language but also a development framework for reactive applications, written in the Java programming language, with a focus on stability and interoperability. The report serves as a user manual mainly elaborating on how to write and execute BDSL programs, further covering several features such as how to incorporate program verification. Moreover, the manual procures some best practices on design patterns in form of code listings. The BDSL development framework comes with a ready-to-use interpreter and may be a helpful research tool to experiment with the underlying bigraph theory. The framework is further intended for building reactive applications and systems based on the theory of bigraphical reactive systems.:1 Introduction 1.1 Bigraphical Reactive Systems and Programming . . . . . 1.2 Installation 1.3 How to write and run BDSL programs? 1.4 Further Help 1.5 Remarks 2 General Usage of the BDSL Interpreter Tool 2.1 The CLI Interpreter of BDSL 2.2 Supplying a BDSL Program to the Interpreter 2.3 Externalized Configuration 3 BDSL Program Structure 3.1 Elements of a BDSL program 3.2 Main Block 3.3 Scoping, Namespaces and Imports 3.4 Classes and Variables 3.5 Event Listeners/Callbacks 4 Predefined Methods in BDSL 4.1 Printing to the Console 4.2 Loading Bigraphs 4.3 Synthesizing Random Bigraphs 4.4 Exporting Bigraph Variables 4.5 Executing BRSs 5 Examples 5.1 Basic Mathematical Calculations the Bigraphical Way 5.2 Importing External Libraries 5.3 Pathfinding: Naive Blind Search 5.4 Mutual Exclusion Problem 6 Advanced Topics 6.1 User-defined Functions 6.2 Using the Interpreter Programmatically 6.3 IDE Support 7 Conclusion 7.1 Future Work References Appendix A Configuration File for the BDSL Interpreter B BDSL Sample Programs C Using the BDSL Interpreter Programmaticall

    Similar works