Dataflow constructs for a language extension based on the algebra of communicating processes

André van Delft
2013 Proceedings of the 4th Workshop on Scala - SCALA '13  
The dataflow programming paradigm addresses how data flows inside programs. Program components, that are often concurrently active, send data to one another; this eases software composition. Mainstream programming languages do not support the paradigm well because of their deterministic and sequential nature. A language that focuses on concurrency is better suited to incorporate concepts from the dataflow paradigm. SubScript is an extension to the Scala programming language with constructs from
more » ... the Algebra of Communicating Processes, targeted at event-driven and concurrent programming. Like ACP, SubScript focuses on program behavior; support for data was through local variables and parameters. However, the ACP background enabled SubScript to deal with the challenges of the dataflow paradigm. This is achieved through several new features. 1. A process may have a result value, like a method 2. A process result value may be passed on to another process that starts subsequently. This helps getting rid of variables, e.g., in GUI controller specifications. 3. Output actions from a process may be piped to a parallel process, yielding a similar expressiveness as pipes in Unix command shell language. 4. Actors written in Scala often need to keep track of a state, and their program text poorly expresses the conceptual control flow. When such actors are written in SubScript, incoming data may be treated as events that may appear anywhere in the specification, just like in SubScript GUI specifications.
doi:10.1145/2489837.2489849 dblp:conf/ecoop/Delft13 fatcat:6lya5tpug5fjvb4edf6wneyzay