zbMATH — the first resource for mathematics

Declarative programming with algebra. (English) Zbl 06562514
Kiselyov, Oleg (ed.) et al., Functional and logic programming. 13th international symposium, FLOPS 2016, Kochi, Japan, March 4–6, 2016. Proceedings. Cham: Springer (ISBN 978-3-319-29603-6/pbk; 978-3-319-29604-3/ebook). Lecture Notes in Computer Science 9613, 232-251 (2016).
Summary: The Algebra of Communicating Processes (ACP) is a theory that views sequences and choices as mathematical operations: multiplication and addition. Based on these base constructs others are defined, such as parallel merge, interruption and disruption.
Conventional programming languages may be enriched with ACP features, to gain declarative expressiveness. We have done this in SubScript, an extension to the Scala language. SubScript has high level support for sequences, choices and iterations in a style similar to parser generator languages. It also offers parallel composition operations, such as and- and or- parallelism, and dataflow.
The declarative style is also present in the way various execution modes are supported. Conventional programming languages often require some boilerplate code to run things in the background, in the GUI thread, or as event handlers. SubScript supports the same execution modes, but with minimal boilerplate. It is also easy to compose programs from blocks having different execution modes.
This paper introduces ACP and SubScript; it briefly describes the current implementation, and gives several examples.
For the entire collection see [Zbl 1331.68016].
68N17 Logic programming
68N18 Functional programming and lambda calculus
SugarCubes; YACC
Full Text: DOI
[1] Thati, P., Agha, G.: An algebraic theory of actors and its application to a simple object-based language. In: Owe, O., Krogdahl, S., Lyche, T. (eds.) From Object-Orientation to Formal Methods. LNCS, vol. 2635, pp. 26–57. Springer, Heidelberg (2004) · Zbl 1278.68064
[2] Baeten, J.C.M.: A brief history of process algebra. Theor. Comput. Sci. 335, 131–146 (2005) · Zbl 1080.68072 · doi:10.1016/j.tcs.2004.07.036
[3] Boussinot, F.: Reactive c: an extension of c to program reactive systems. Softw. Pract. Experiance 21(4), 401–428 (1991) · doi:10.1002/spe.4380210406
[4] Boussinot, F., Susini, J.F.: The sugarcubes tool box. In: Nets of Reactive Processes Implementation · Zbl 1147.68451
[5] van Delft, A.: Dataflow constructs for a language extension based on the algebra of communicating processes. In: Proceedings of 4th Workshop on Scala, SCALA 2013. ACM (2013) · doi:10.1145/2489837.2489849
[6] van Delft, A.: Some new directions for ACP research. CoRR abs/1504.03719 (2015). http://arxiv.org/abs/1504.03719
[7] Gaspari, M., Zavattaro, G.: An algebra of actors. In: Ciancarini, P., Fantechi, A., Gorrieri, R. (eds.) FMOODS, IFIP Conference Proceedings, vol. 139. Kluwer (1999) · Zbl 0928.68020 · doi:10.1007/978-0-387-35562-7_2
[8] Goeman, H.: Towards a theory of (self) applicative communicating processes: a short note. Inf. Process. Lett. 34(3), 139–142 (1990) · Zbl 0695.68048 · doi:10.1016/0020-0190(90)90092-C
[9] Hoare, C.: Communicating sequential processes. ACM Comput. Surv. 7(1), 80–112 (1985) · Zbl 0637.68007
[10] Johnson, S.: Yacc: Yet another compiler- compiler. Technical report, Bell Laboratories (1979)
[11] Milner, R.: A Calculus of Communicating Systems. Springer-Verlag New York Inc., Secaucus (1982) · Zbl 0452.68027
[12] Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part i. Inf. Comput. 100, 1–40 (1989) · Zbl 0752.68036 · doi:10.1016/0890-5401(92)90008-4
[13] Wang, Y.: Fully abstract game semantics for actors. CoRR abs/1403.6563 (2014)
[14] Wills, P.: No more regular expressions. Scala Exchange, Skills Matter, London (2014)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.