Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. This thesis proposes a purely declarative and deterministic model for concurrency that can be adopted by a standard non-strict functional language. The design and implementation of a simple but complete single-user concurrent working environment is presented in order to demonstrate the feasibility of deterministic design.
|
1128
|
Lectures on constructive functional programming
– Bird
- 1988
|
|
496
|
S.: The Implementation of Functional Programming Languages
– Jones
- 1987
|
|
393
|
Comprehending monads
– Wadler
- 1992
|
|
369
|
Programming Be Liberated from von Neumann Style? A Functional Style and its Algebra of Programs
– Backus
- 1978
|
|
354
|
Computational lambda-calculus and monads
– Moggi
- 1989
|
|
259
|
The Calculi of Lambda-Conversion
– Church
- 1941
|
|
258
|
The Godel Programming Language
– Hill, Lloyd
- 1994
|
|
257
|
The mechanical evaluation of expressions
– Landin
- 1964
|
|
246
|
Why Functional Programming Matters
– Hughes
- 1989
|
|
215
|
Report on the Programming Language Haskell, A Non-strict, Purely Functional Language
– Hudak, Jones, et al.
- 1992
|
|
183
|
The lambda calculus, its syntax and semantics. Revised edition edn
– Barendregt
- 1984
|
|
170
|
A new implementation technique for applicative languages
– Turner
- 1979
|
|
159
|
a non-strict functional language with polymorphic types
– Miranda
- 1985
|
|
147
|
A Basis for a Mathematical Theory of Computation
– McCarthy
- 1963
|
|
108
|
Functional Programming
– Field, Harrison
- 1988
|
|
89
|
A gentle introduction to Haskell
– Hudak, Fasel
- 1992
|
|
87
|
Unboxed values as first class citizens in a non-strict functional language
– Jones, Launchbury
- 1991
|
|
76
|
FUDGETS - A Graphical User interface in a Lazy Functional Language
– Carlsson, Hallgren
- 1993
|
|
72
|
Evolution, and Application of Functional Programming Languages
– Conception
- 1989
|
|
68
|
Functional Programming Application and Implementation
– Henderson
- 1980
|
|
54
|
The implementation of the Gofer functional programming system
– Jones
- 1994
|
|
50
|
Heap profiling of lazy functional programs
– Runciman, Wakeling
- 1993
|
|
47
|
The Spineless Tagless G-machine
– Jones, Salkild
- 1989
|
|
46
|
Implementing Functional Languages, A Tutorial
– Jones, Lester
- 1992
|
|
39
|
Tim: A Simple, Lazy Abstract Machine to Execute Supercombinators
– Fairbairn, Wray
- 1987
|
|
38
|
Purely functional operating systems
– Henderson
- 1982
|
|
35
|
Non-determinism in functional languages
– Sndergaard, Sestoft
- 1992
|
|
34
|
Recursion Equations as a Programming Language
– Turner
- 1982
|
|
31
|
The Implementation of Practical Functional Programming Languages
– Perry
- 1991
|
|
24
|
Functional Programming
– Henderson
- 1980
|
|
24
|
On the expressiveness of purely functional I/O systems
– Hudak, Sundaresh
- 1988
|
|
23
|
The Chalmers lazy-ML compiler
– Augustsson, Johnsson
- 1989
|
|
23
|
Nondeterministic Call by Need is Neither Lazy Nor by Name
– Clinger
- 1982
|
|
21
|
Nondeterminism with Referential Transparency in Functional Programming Languages
– Burton
- 1988
|
|
19
|
A Functional Database
– Trinder
- 1989
|
|
16
|
Functional programming and operating systems
– Jones, Sinclair
- 1989
|
|
15
|
The spineless tagless G-machine: a second attempt
– Jones
- 1991
|
|
14
|
A new scheme for writing functional operating systems
– Stoye
- 1984
|
|
14
|
An approach to functional operating systems
– Turner
- 1990
|
|
13
|
Nebula: a functional operating system
– Karlsson
- 1981
|
|
12
|
Dialogues: A basis for constructing programming environments
– O'Donnell
- 1985
|
|
10
|
Functions and Dynamic User Interfaces
– Dwelly
- 1989
|
|
10
|
A range of operating systems written in a purely functional style
– Jones
- 1984
|
|
9
|
RUTH: A Functional Language for Real-Time Programming
– Harrison
- 1987
|
|
7
|
Encapsulating non-determinacy in an abstract data type with determinate semantics
– Burton
- 1991
|
|
7
|
The design and implementation of an operating system in a functional language
– Cupitt
- 1990
|
|
6
|
XView Programming Manual. O'Reilly
– Heller
- 1990
|
|
6
|
Towards a Concurrent Object/Process Oriented Functional Language
– Perry
- 1992
|
|
5
|
Functional Programming with Miranda
– Holyer
- 1991
|
|
5
|
Abstract machine support for purely functional operating systems
– Jones
- 1983
|