skip to main content
Modeling user interfaces in a functional language
Publisher:
  • Yale University
  • Computer Science Dept. 51 Prospect St. New Haven, CT
  • United States
Order Number:AAI3125177
Pages:
205
Bibliometrics
Skip Abstract Section
Abstract

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

  1. ACM
    Perez I (2017). Back to the future: time travel in FRP, ACM SIGPLAN Notices, 52:10, (105-116), Online publication date: 31-Oct-2017.
  2. ACM
    Perez I Back to the future: time travel in FRP Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell, (105-116)
  3. ACM
    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)
  4. ACM
    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.
  5. 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)
  6. ACM
    Schneider O, Dutchyn C and Osgood N Towards frabjous Proceedings of the 2nd ACM SIGHIT International Health Informatics Symposium, (785-790)
  7. 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.
  8. ACM
    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)
  9. ACM
    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.
  10. ACM
    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)
  11. ACM
    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)
  12. 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.
Contributors
  • Yale University

Recommendations