Communicating Functional Agents and Their Application to Graphical User Interfaces

We demonstrate how concepts of communicating agents can be integrated into purely functional languages by an orthogonal extension of I/O monads. These agents communicate via so-called service access points and foster concurrent programming in the style of client-server architectures. By applying our approach to the realization of graphical user interfaces it turns out that the combination of functional expressiveness and concurrency monads yields a powerful framework for such systems.

[1]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[2]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[3]  Neil Davies,et al.  The Brisk Project: Concurrent and Distributed Functional Systems , 1995, Functional Programming.

[4]  Simon L. Peyton Jones,et al.  Composing Haggis , 1995, Eurographics Workshop on Programming Paradigms in Graphics.

[5]  Roger B. Dannenberg,et al.  Creating graphical interactive application objects by demonstration , 1989, UIST '89.

[6]  Philip Wadler,et al.  Comprehending monads , 1990, Mathematical Structures in Computer Science.

[7]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[8]  Uday S. Reddy,et al.  Imperative functional programming , 1996, CSUR.

[9]  Wolfgang Grieskamp,et al.  OPAL: Design and Implementation of an Algebraic Programming Language , 1994, Programming Languages and System Architectures.

[10]  Anthony H. Dekker The game of life: a CLEAN programming tutorial and case study , 1994, SIGP.

[11]  Magnus Carlsson,et al.  Programming with Fudgets , 1995, Advanced Functional Programming.

[12]  Ton Vullinghs,et al.  Lightweight GUIs for Functional Programming , 1995, PLILP.

[13]  Wolfgang Grieskamp,et al.  On the Semantics of a Concurrency Monad with Choice and Services on the Semantics of a Concurrency Monad with Choice and Services , 1996 .

[14]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[15]  Colin Runciman,et al.  Functional Languages and Graphical User Interfaces -- a review and a case study , 1994 .

[16]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.