Results 11 -
13 of
13
FUDGETS - Graphical User Interfaces and I/O in Lazy Functional Languages
, 1993
"... This thesis describes an implementation of a small window-based graphical user interface toolkit for the X Window System written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objec ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This thesis describes an implementation of a small window-based graphical user interface toolkit for the X Window System written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objects, without conforming to more or less imperative programming paradigms imposed if she were to use a traditional (imperative) toolkit. Instead, the power of the abstraction methods provided by Haskell or LML are used. The main abstraction we use is the fudget. Fudgets are combined in a hierarchical structure, and they interact by message passing. The current implementation is based on a sequential evaluator, but by using nondeterminism and oracles, we suggest how fudgets can evaluate in parallel. We believe that the toolkit can be extended to a full-feathered and practically useful high level graphical toolkit. ISBN 91-7032-841-2 i No one can have experienced to the fullest the true sense ...
Nondeterminism in the APM methodology
- In SFP'99 --- Scottish Functional Programming Workshop
, 1999
"... This paper looks at the issues involved in incorporating nondeterminism into functional languages and particularly in representing the nondeterminacy which may arise in representing parallel programs in a functional language. It presents an implementation which does so without breaking the abili ..."
Abstract
- Add to MetaCart
This paper looks at the issues involved in incorporating nondeterminism into functional languages and particularly in representing the nondeterminacy which may arise in representing parallel programs in a functional language. It presents an implementation which does so without breaking the ability to perform equational reasoning, and shows how it may be incorporated into the APM (Abstract Parallel Machines) methodology for deriving parallel programs [5]. 1 Introduction Nondeterminism occurs when a program can choose between two or more values and this choice is not fixed in advance. It may be constrained under certain conditions, leading to different types of nondeterminism. One common area in which nondeterminism may occur is in parallel programming. This is because processors may execute independently and messages can be sent asynchronously. Here nondeterminism arises from the parallelism itself. The programmer may be unaware of it, and, although it may be useful, it may cau...
September 1999 CSPHD
- Department of Computer Science, University of Bristol
, 1999
"... This thesis presents the Brisk Machine #54#, a machine for executing functional languages, designed to be simple and #exible to support a number of run-time execution models for the Brisk compiler. Design considerations have been made to support dynamic loading, deterministic concurrency #23,51#, di ..."
Abstract
- Add to MetaCart
This thesis presents the Brisk Machine #54#, a machine for executing functional languages, designed to be simple and #exible to support a number of run-time execution models for the Brisk compiler. Design considerations have been made to support dynamic loading, deterministic concurrency #23,51#, distribution, debugging tools and logic programming #76#. To achieve this, the compiler's intermediate language, the Brisk Kernel Language BKL is simpler than the STG language #100#, as evaluation, extension and optimisation issues are relegated to special built-in functions. Moreover, function calls are saturated, as any function has an known arity and in every call to it, is applied to the rightnumber of arguments, which makes the machine dynamic and supports dynamic loading.

