Results 11 -
17 of
17
Polymorphic Subtyping in O'Haskell
- APPSEM Workshop on Subtyping and Dependent Types in Programming, 2000
, 2001
"... O'Haskell is a programming language derived from Haskell by the addition of concurrent reactive objects and subtyping. Because Haskell already encompasses an advanced type system with polymorphism and overloading, the type system of O'Haskell is much richer than what is the norm in almost any widesp ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
O'Haskell is a programming language derived from Haskell by the addition of concurrent reactive objects and subtyping. Because Haskell already encompasses an advanced type system with polymorphism and overloading, the type system of O'Haskell is much richer than what is the norm in almost any widespread object-oriented or functional language. Yet there is strong evidence that O'Haskell is not a complex language to use, and that both Java and Haskell programmers can easily find their way with its polymorphic subtyping system. This paper describes the type system of O'Haskell both formally and from a programmer's point of view; the latter task is accomplished with the aid of an illustrative, real world programming example: a strongly typed interface to the graphical toolkit Tk.
Declarative programming of user interfaces
- In Proc. of the 11th International Symposium on Practical Aspects of Declarative Languages (PADL’09
, 2009
"... Abstract. This paper proposes a declarative description of user interfaces that abstracts from low-level implementation details. In particular, the user interfaces specified in our framework are executable as graphical user interfaces for desktop applications as well as web user interfaces via stand ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. This paper proposes a declarative description of user interfaces that abstracts from low-level implementation details. In particular, the user interfaces specified in our framework are executable as graphical user interfaces for desktop applications as well as web user interfaces via standard web browsers. Thus, our approach combines the advantages of existing user interface technologies in a flexible way without demands on the programmer’s side. We sketch an implementation of this concept in the declarative multi-paradigm programming language Curry and show how the integrated functional and logic features of Curry are exploited to enable a high-level implementation of this concept. 1
Programming Generic Graphical User Interfaces
, 2005
"... Abstract. The GEC Toolkit offers to programmers a high-level, generic style of programming Graphical User Interfaces (GUIs). Programmers are not concerned with low-level widget plumbing. Instead, they use mathematical data models that reflect both the application logic and the visualisation. The dat ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. The GEC Toolkit offers to programmers a high-level, generic style of programming Graphical User Interfaces (GUIs). Programmers are not concerned with low-level widget plumbing. Instead, they use mathematical data models that reflect both the application logic and the visualisation. The data models and the logic are expressed as standard functional style data types and functions over these data types. This significantly brings down the learning effort. In this paper we present an improved programming method of this toolkit and illustrate it by means of a complicated case study: that of a family tree editor. The new programming method brings GUI programming into the reach of every novice functional programmer. 1
Special Difficulties
"... To implement a system for the declarative programming of interactive applications, such that these applications may be presented as GUIs, or represented in other ways. This is to be done without allowing applications to perform actions on global system state. Work Completed The system was implemente ..."
Abstract
- Add to MetaCart
To implement a system for the declarative programming of interactive applications, such that these applications may be presented as GUIs, or represented in other ways. This is to be done without allowing applications to perform actions on global system state. Work Completed The system was implemented. Several targets were written, including a GTK GUI target, a GDK graphics target, a web target and a file target. This allows simple programs to be written and run, and targetted at different runtime environments.
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

