It is widely recognized that programs with Graphical User Interfaces (GUIs) are difficult to design and implement. One possible reason for this difficulty is the lack of any clear formal basis for GUI programming. GUI toolkit libraries are typically described only informally, in terms of implementation artifacts such as objects, imperative state and I/O systems.
In this thesis, we develop Fruit, a Functional Reactive User Interface Toolkit. Fruit is based on Yampa, an adaptation of Functional Reactive Programming (FRP) to the Arrows computational framework. Yampa has a clear, simple formal semantics based on a synchronous dataflow model of computation. GUIs in Fruit are defined compositionally using only the Yampa model and formally tractable mouse, keyboard and picture types. Fruit and Yampa have been implemented as libraries for Haskell, a purely functional programming language.
This thesis presents the semantics and implementations of Yampa and Fruit, and shows how they can be used to write concise executable specifications of common GUI programming idioms and complete GUI programs.
Cited By
- Perez I (2017). Back to the future: time travel in FRP, ACM SIGPLAN Notices, 52:10, (105-116), Online publication date: 31-Oct-2017.
- Perez I Back to the future: time travel in FRP Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell, (105-116)
- Winograd-Cort D and Hudak P Settable and non-interfering signal functions for FRP Proceedings of the 19th ACM SIGPLAN international conference on Functional programming, (213-225)
- Winograd-Cort D and Hudak P (2014). Settable and non-interfering signal functions for FRP, ACM SIGPLAN Notices, 49:9, (213-225), Online publication date: 26-Nov-2014.
- Winograd-Cort D, Liu H and Hudak P Virtualizing real-world objects in FRP Proceedings of the 14th international conference on Practical Aspects of Declarative Languages, (227-241)
- Schneider O, Dutchyn C and Osgood N Towards frabjous Proceedings of the 2nd ACM SIGHIT International Health Informatics Symposium, (785-790)
- Achten P, Eekelen M, Koopman P and Morazán M (2019). Trends in Trends in Functional Programming 1999/2000 versus 2007/2008, Higher-Order and Symbolic Computation, 23:4, (465-487), Online publication date: 1-Nov-2010.
- Liu H, Cheng E and Hudak P Causal commutative arrows and their optimization Proceedings of the 14th ACM SIGPLAN international conference on Functional programming, (35-46)
- Liu H, Cheng E and Hudak P (2009). Causal commutative arrows and their optimization, ACM SIGPLAN Notices, 44:9, (35-46), Online publication date: 31-Aug-2009.
- Blom K and Beckhaus S Supporting the creation of dynamic, interactive virtual environments Proceedings of the 2007 ACM symposium on Virtual reality software and technology, (51-54)
- Hudak P, Hughes J, Peyton Jones S and Wadler P A history of Haskell Proceedings of the third ACM SIGPLAN conference on History of programming languages, (12-1-12-55)
- Heunen C and Jacobs B (2006). Arrows, like Monads, are Monoids, Electronic Notes in Theoretical Computer Science (ENTCS), 158, (219-236), Online publication date: 1-May-2006.
Index Terms
- Modeling user interfaces in a functional language
Recommendations
Formal Specification of User Interfaces: A Comparison and Evaluation of Four Axiomatic Approaches
Annals of discrete mathematics, 24Few examples of formal specification of the semantics of user interfaces exist in the literature. This paper presents a comparison of four axiomatic approaches which we have applied to the specification of a commercial user interface-the line editor for ...
Specifying user interfaces in DisCo
In this paper we introduce a new approach for specification of interactive systems at a high level of abstraction. We use an excutable specification language DisCo, for which we have developed support tools including an execution environment with ...
Abstract User Interfaces: A Model and Notation to Support Plasticity in Interactive Systems
DSV-IS '01: Proceedings of the 8th International Workshop on Interactive Systems: Design, Specification, and Verification-Revised PapersThis paper introduces the Abstract User Interface (AUI) model and notation for specifying abstract interaction in interactive software systems with graphical, direct manipulation user interfaces. The AUI model is aimed at improving the plasticity of an ...