Results 1 -
4 of
4
Composing the user interface with Haggis
- Advanced Functional Programming: Second Interational School, LNCS #1129
, 1996
"... This tutorial presents Haggis, a graphical user interface framework written in the lazy functional language Haskell. The Haggis framework provides the programmer with a compositional view of graphical user interfaces, where complete GUI applications can be built by repeatedly composing together part ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This tutorial presents Haggis, a graphical user interface framework written in the lazy functional language Haskell. The Haggis framework provides the programmer with a compositional view of graphical user interfaces, where complete GUI applications can be built by repeatedly composing together parts. The individual user interface components are treated as virtual I/O devices that can be interacted with by the application just files and other `normal' devices. A key ingredient of Haggis is the use of concurrency to provide its compositional view of GUIs. 1 Introduction An important and interesting application area is graphical user interface applications. Haggis[6] is one Haskell[5] framework for composing such GUI applications within a functional language. Apart from being anchored in a lazy functional language, some of the important features of Haggis are: ffl A graphical user interface is treated as a virtual I/O device. A very common way of structuring a graphical user interface p...
Interactors and Haggis: Executable Specifications for Interactive Systems
- PROC OF 4 TH INT. EUROGRAPHICS WORKSHOP ON DESIGN, SPECIFICATION AND VERIFICATION OF INTERACTIVE SYSTEM DSV-IS'97
, 1997
"... ..."
Handling Exceptions in Haskell
- In submitted to Practial Applications of Declarative Languages (PADL'99
, 1999
"... Using a language without exception handling is like driving a car with no brakes and no seatbelt --- things work fine until something goes wrong. You also learn to drive rather carefully. This paper describes an exception handling extension to the Haskell lazy functional language. The implementation ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
Using a language without exception handling is like driving a car with no brakes and no seatbelt --- things work fine until something goes wrong. You also learn to drive rather carefully. This paper describes an exception handling extension to the Haskell lazy functional language. The implementation turned out to be very easy but we had problems finding a viable semantics for our system. The resulting semantics is a compromise between theoretical beauty and practical utility. 1 Introduction Haskell is an ivory tower language: full of lofty ideas, built on solid semantic foundations, praised by grey-bearded professors and about as much use in the real world as a chocolate teapot. For Haskell to emerge from the ivory tower, it must be possible to write the kinds of programs that less idealistic programmers can write in C, Java, Ada and other useful languages: programs that interact with the real world in interesting ways (using graphics, GUIs, databases, etc) and which are robust enough...
Declarative Support for Prototyping Interactive Systems
, 2001
"... The development of complex, multi-user, interactive systems is a difficult process that requires both a rapid iterative approach, and the ability to reason carefully about system designs. This thesis argues that a combination of declarative prototyping and formal specification provides a suitable wa ..."
Abstract
- Add to MetaCart
The development of complex, multi-user, interactive systems is a difficult process that requires both a rapid iterative approach, and the ability to reason carefully about system designs. This thesis argues that a combination of declarative prototyping and formal specification provides a suitable way of satisfying these requirements. The focus of this thesis is on the development of software tools for prototyping interactive systems. In particular, it uses a declarative approach, based on the functional programming paradigm. This thesis makes two contributions. The most significant contribution is the presentation of FranTk, a new Graphical User Interface language, embedded in the functional language Haskell. It is suitable for prototyping complex, concurrent, multi-user systems. It allows systems to be built in a high level, structured manner. In particular, it provides good support for specifying real-time properties of such systems. The second contribution is a mechanism that allows a formal specification to be derived from a high level FranTk prototype. The approach allows this to be done automatically. This specification can then be checked, with tool support, to verify some safety properties about a system. To avoid the state space explosion problem that would be faced when verifying an entire system, we focus on partial verification. This concentrates on key areas of a design: in particular this means that we only derive a specification from parts of a prototype. To demonstrate the scalability of both the prototyping and verification approaches, this thesis uses a series of case studies including a multi-user design rationale editor and a prototype data-link

