Results 1 -
4 of
4
A principled approach to operating system construction in Haskell
- In ICFP ’05: Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming
, 2005
"... We describe a monadic interface to low-level hardware features that is a suitable basis for building operating systems in Haskell. The interface includes primitives for controlling memory management hardware, user-mode process execution, and low-level device I/O. The interface enforces memory safety ..."
Abstract
-
Cited by 34 (2 self)
- Add to MetaCart
We describe a monadic interface to low-level hardware features that is a suitable basis for building operating systems in Haskell. The interface includes primitives for controlling memory management hardware, user-mode process execution, and low-level device I/O. The interface enforces memory safety in nearly all circumstances. Its behavior is specified in part by formal assertions written in a programming logic called P-Logic. The interface has been implemented on bare IA32 hardware using the Glasgow Haskell Compiler (GHC) runtime system. We show how a variety of simple O/S kernels can be constructed on top of the interface, including a simple separation kernel and a demonstration system in which the kernel, window system, and all device drivers are written in Haskell.
Realtime Signal Processing -- Dataflow, Visual, and Functional Programming
, 1995
"... This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing "block-diagram" programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computat ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing "block-diagram" programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computation. The dataflow process network model, although widely-used, lacks a formal description, and I provide a semantics for it. The formal work leads into a new form of actor. Having established the semantics of dataflow processes, the functional language Haskell is layered above this model, providing powerful features---notably polymorphism, higher-order functions, and algebraic program transformation---absent in block-diagram systems. A visual equivalent notation for Haskell, Visual Haskell, ensures that this power does not exclude the "intuitive" appeal of visual interfaces; with some intelligent layout and suggestive icons, a Visual Haskell program can be made to look very like a block dia...
Realtime Signal Processing Data ow, Visual, and Functional Programming
, 1995
"... This thesis presents and justi es a framework for programming real-time signal process-ing systems. The framework extends the existing \block-diagram " programming model� it has three components: a very high-level textual language, a visual language, and the data ow process network model of com ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This thesis presents and justi es a framework for programming real-time signal process-ing systems. The framework extends the existing \block-diagram " programming model� it has three components: a very high-level textual language, a visual language, and the data ow process network model of computation. The data ow process network model, although widely-used, lacks a formal description, and I provide a semantics for it. The formal work leads into a new form of actor. Having established the semantics of data ow processes, the functional language Haskell is layered above this model, providing powerful features|notably polymorphism, higher-order func-tions, and algebraic program transformation|absent in block-diagram systems. A visual equivalent notation for Haskell, Visual Haskell, ensures that this power does not exclude the \intuitive " appeal of visual interfaces � with some intelligent layout and suggestive icons, a Visual Haskell program can be made to look very like ablock diagram program. Finally, the functional language is used to further extend data ow process networks, by simulating timed and dynamically-varying networks.
Astro-Gofer: Parallel Functional Programming with Co-ordinating Processes
- In Euro-Par'96
, 1996
"... . This paper investigates the addition of operations for explicit parallelism to the lazy functional language, Gofer. For this purpose, we choose to use a co-ordination language, derived from Linda, based on logically shared associative memories, called spaces. We describe the use of Gofer type cla ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
. This paper investigates the addition of operations for explicit parallelism to the lazy functional language, Gofer. For this purpose, we choose to use a co-ordination language, derived from Linda, based on logically shared associative memories, called spaces. We describe the use of Gofer type classes in building an interface to spaces, which highlights and extends the traditional associative access mechanism. We then show how processes can be added to Gofer, and how we can combine spaces and processes to produce a parallel functional language, which we have called Astro-Gofer. 1 Introduction In this paper, we describe a parallel lazy functional programming language based on the notion of co-ordination[4]. The functional language used is Gofer[8], a dialect of Haskell in which type classes may have multiple type parameters. The co-ordination language is based on shared associative memories called spaces, derived from Linda[4]. 2 Simple Spaces in Gofer We begin with a preliminary e...

