JUCS - Journal of Universal Computer Science 13(11): 1722-1754, doi: 10.3217/jucs-013-11-1722
High-level Structured Interactive Programs with Registers and Voices
expand article infoAlexandru Popa, Alexandru Sofronia, Gheorghe Stefanescu
‡ University of Bucharest, Bucharest, Romania
Open Access
Abstract
A model (consisting of rv-systems), a core programming language (for developing rv-programs), several specification and analysis techniques appropriate for modeling, programming and reasoning about interactive computing systems have been introduced by Stefanescu in 2004 using register machines and space-time duality, see [Stefanescu 2006, Stefanescu 2006b]. Later on, Dragoi and Stefanescu have introduced structured programming techniques for programming rv-systems and have presented a kernel programming language AGAPIA v0.1 for interactive computing systems, see [Dragoi and Stefanescu 2006a, Dragoi and Stefanescu 2006b]. AGAPIA v0.1 has a restricted format for program construction, using a "3-level" grammar for their definition: the procedure starts with simple while programs, then modules are defined, and finally AGAPIA v0.1 programs are obtained applying structured rvprogramming statements on top of modules. In the current paper the above restriction is completely removed. By an appropriate reshaping interface technique, general programs may be encapsulated into modules, allowing to reiterate the above "3-level" construction of programs, now starting with arbitrary AGAPIA programs, not with simple while programs. This way, high-level interactive programs are obtained. The extended version is called AGAPIA v0.2. As a case study we consider a cluster of computers, each having a dynamic set of running processes. We present a protocol for the communication and termination detection in this system and implement the protocol in our AGAPIA v0.2 language. We also describe the operational semantics of the program using high-level scenarios, i.e., scenarios where, recursively, the cells may themselves contain scenarios, at a lower, refined level.
Keywords
interactive systems, programming languages, typing systems, rv-systems, registers and voices, distributed termination protocols, AGAPIA programming