Dancing Trees in the Reiser4 Filesystem [reiser04:tree]
Hans Reiser (The Naming System Venture), 2004
Purely Functional System Configuration Management [dolstra07:purely]
Eelco Dolstra, Armijn Hemel, Proceedings of the Workshop on Hot Topics in
Operating Systems (HotOS XI), May 2007
About the ``purely functional'' Nix package management system.
Naming and Binding of Objects [saltzer78:naming]
Jerome Howard Saltzer (Massachusetts Institute of Technology, Cambridge,
MA, USA), Operating Systems, An Advanced Course, 1978
This paper discusses concepts related to naming in computer science (operating systems and programming
languages), notably closures.
GNU Guile: GNU's Ubiquitous Intelligent Language for
Aubrey Jaffer, Thomas Lord, Jim Blandy, Marius Vollmer,
Mikael Djurfeldt (GNU Project), 1996
Project GNU's embeddable Scheme implementation.
Design Issues for Persistent Java: A Type-Safe,
Object-Oriented, Orthogonally Persistent System [atkinson96:design]
Malcom P. Atkinson, Mick Jordan, Laurent Dayn?s, Susan
Spence, Proceedings of the 7th Workshop on Persistent Object
Systems, May 1996
This allows transactions to be requested by users,
making it similar to the new object prevalence trend prevayler06:web.
A Technique for Drawing Directed Graphs [gansner93:technique]
Emden R. Gansner, Eleftherios Koutsofios, Stephen
C. North, Kiem-Phong Vo (AT&T Bell Laboratories, NJ, USA), appeared in IEEE Transactions on Software Engineering, March 1993
A presentation of the graph layout algorithms used by
dot, part of Graphviz.
Valgrind: A Framework for Heavyweight Dynamic Binary
Nicholas Nethercote, Julian Seward (National ICT Australia, Melbourne, Australia), Proceedings of the ACM SIGPLAN Conference on
Programming Language Design and Implementation (PLDI), 2007
SRFI-1 --- List Library [shivers99:srfi-1]
Olin Shivers (Massachusetts Institute of Technology, Cambridge,
MA, USA), October 1999
Design Patterns---Elements of Reusable Object-Oriented
Erich Gamma, Richard Helm, Ralph Johnson, John
Not a very functionalish reference but one that is
nevertheless useful at times. ;-)
Can Programming Be Liberated from the von Neumann Style?
A Functional Style and Its Algebra of Programs [backus78:liberated]
John Backus (IBM Research Laboratory, San Jose, CA, USA), appeared in Communications of the ACM, August 1978
An ode to functional languages. The paper contains an
interesting comparison of ``von Neumann'' (i.e., imperative) languages
and of functional languages, with an analysis of the ease of reasoning
each on each of them, their ``composability'', and their mathematical
properties (or lack thereof). Backus notably insists on function
currying and combinators.
Libckpt: Transparent Checkpointing Under Unix [plank95:libckpt]
James S. Plank, Micah Beck, Gerry Kingsley (University of Tennessee, Knoxville, USA), Proceedings of the USENIX Annual Technical
Conference, January 1995
A simple checkpointing library for Unix. The
checkpoints are not portable, unlike those produced by Pego. It supports
both automatic, periodic checkpointing and user-directed
Compact Encodings of List Structure [bobrow79:compact]
Daniel G. Bobrow, Douglas W. Clark (Xerox Palo Alto Research Center, CA, USA), appeared in ACM Transactions on Programming Languages and
Systems, October 1979
Compact encoding of list structures in Lisp. The basic
idea is to remove the pointer indirection in a pair's car (and
cdr?) when the datum that has to be stored in there is small
enough (e.g., small number, nil). This is the basic strategy
that has been used, I guess, by most Lisp and Scheme implementations
since then. It's sometimes referred to as type tagging or
Hibernate: Relational Persistence for Java and .NET [redhat07:hibernate]
Red Hat, Inc., 2007
So-called object-relational mapping, which
turns out to be comparable to ``object prevalence'' [?bib prevayler06:web: ../phd-thesis/bibliography/os.skb:171:54:]. Hibernate is actually kind of awful, since it
requires human beings to describe the mapping in XML (!), as
can be seen in the tutorial.
Implementations are available for Common Lisp, Python, Ruby, etc., and
chances are that they are not XML-bloated.
On Programming of Arithmetic Operations [ershov58:on-programming]
A. P. Ershov (Moscow University, Moscow, USSR), Communications of the ACM, August 1958
Apparently the first reference to hash-consing
(although the term isn't used). This is pretty hard to read (at best),
as stated in the intro.
FUSE: Filesystem in User-Space for Linux [fuse:web]
Miklos Szeredi, 2005
A Linux driver that makes it possible to implement
filesystems in user-space ? la
GNU/Hurd translators or
filesystem servers. Several filesystems including
built on top of FUSE.
The Trivial Database [tridgell99:tdb]
Adrew Tridgell, Paul Russel, Jeremy Allison, 1999
Revised5 Report on the Algorithmic Language
Richard Kelsey, William Clinger, Jonathan Rees, appeared in Higher-Order and Symbolic Computation, August 1998
Prevayler, a Java Implementation of ``Object
``Object prevalence'', i.e., transactional semantics at
the programming language-level, as was previously envisioned in
gray81:transaction and birrell87:small-db. Implementations also exist for Common Lisp, Haskell, Ruby, etc.
Using Sparse Capabilities in a Distributed Operating
Andrew S. Tanenbaum, Sape J. Mullender, Robbert van
Renesse (Vrije Universiteit, Amsterdam, The Netherlands), Proceedings of the International Conference on
Distributed Computing Systems (ICDCS), May 1986
A Persistent System in Real Use --- Experiences of the
First 13 Years [liedtke93:persistent]
Jochen Liedtke (German National Research Center for Computer
Science), Proceedings of the International Workshop on
Object-Orientation in Operating Systems (I-WOOOS), December 1993
Experience with the Eumel and L3 persistent OSes.
Design Evolution of the EROS Single-Level Store [shapiro02:store]
Jonathan S. Shapiro, Jonathan Adams (Johns Hopkins University, University of
Pennsylvania), Proceedings of the USENIX Annual Technical
Conference, May 2002
A toolkit for user-level file systems [mazieres01:fstk]
David Mazi?res (Department of Computer Science, NYU), Proceedings of the 2001 USENIX Technical
Conference, June 2001