Visual languages are well accepted and frequently applied in concurrent systems design. Whereas visual languages are mainly used for system specification, only little attention is paid for visual means w.r.t. integrated prototyping and dynamic visualization of parallel programs. This article presents SAL (Synchronous Agent Language), a general-purpose grid-based 2D programming language for parallel system specification, implementation, and visualization. SAL agents have a depiction and a behavior. The behavior is defined by the means of state transition rules. The depiction is given by the drawing area on its surface. Actions in rules can execute drawing operations for dynamically changing the depiction during runtime. For a broader range of applications, SAL incorporates mobile code, code modification during runtime, and tool integration facilities. SAL is strongly inspired by Agentsheets [3], SAM [1], arid Esterel [2]. The synchronous execution model is derived from Esterel and the 3D programming language SAM whereas the visual/textual syntax is based on a combination of Agentsheets and Esterel. In contrast to Agentsheets, depictions can be arbitrary drawings modified during runtime; and rules are specified through text in tables rather than through the selection of icons. Moreover, SAL has an explicit notion of state and state transition where rules are explicitly partitioned into states. The remainder of this article first sketches the SAL basic concepts and introduces its current implementation thereafter.
展开▼