Publication year
2004Publisher
Berlin : Springer
ISBN
9783540318729
In
Lecture Notes in Computer Science, (2004)Vene, V.; Uustalu, T. (ed.), Advanced Functional Programming: 5th International School, AFP 2004, Tartu, Estonia, August 14-21, 2004, Revised Lectures, pp. 245-272ISSN
Annotation
AFP2004
Publication type
Article in monograph or in proceedings
Display more detailsDisplay less details
Editor(s)
Vene, V.
Uustalu, T.
Organization
Software Technology
Journal title
Lecture Notes in Computer Science
Book title
Vene, V.; Uustalu, T. (ed.), Advanced Functional Programming: 5th International School, AFP 2004, Tartu, Estonia, August 14-21, 2004, Revised Lectures
Page start
p. 245
Page end
p. 272
Subject
Software TechnologyAbstract
Esther is the interactive shell of Famke, a prototype implementation of a
strongly typed operating system written in the functional programming
language Clean. As usual, the shell can be used for manipulating files,
applications, data and processes at the command line. Special about Esther
is that the shell language provides the full basic functionality of a
strongly typed lazy functional language. The shell type checks each command
line and only executes well-typed expressions. Files are typed as well, and
applications are simply files with a function type.
The implementation of the shell has some unusual aspects. The type
checking/inferencing performed by the shell is actually performed by the
hybrid static/dynamic type system of Clean. The shell behaves like an
interpreter, but it actually executes a command line by combining existing
code of functions on disk. Cleans dynamic linker is used to store (and
retrieve) any expression (both data and code) with its type on disk. This
linker is also used to communicate values of any type, e.g., data,
closures, and functions (i.e.compiled code), between running applications
in a type safe way.
The shell combines the advantages of interpreters (direct response) and
compilers (statically typed, fast code). Applications (compiled functions)
can be used, in a type safe way, in the shell, and functions defined in the
shell can be used by any compiled application.
This item appears in the following Collection(s)
- Academic publications [246265]
- Electronic publications [133934]
- Faculty of Science [37955]
- Open Access publications [107421]
Upload full text
Use your RU credentials (u/z-number and password) to log in with SURFconext to upload a file for processing by the repository team.