Modeling user interfaces in a functional language

  • Authors:
  • Antony Alexander Courtney;Paul Hudak

  • Affiliations:
  • -;-

  • Venue:
  • Modeling user interfaces in a functional language
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

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.