1.15 A home on the Internet — Ludovic Courtès — Operating Systems and Programming Languages
  • 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 Extension [jaffer96:guile]
    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 Instrumentation [nethercote07:valgrind]
    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 Software [gamma95:design]
    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995

    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 checkpointing.

  • 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 some such.

  • 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 Plan 9 filesystem servers. Several filesystems including Wayback are built on top of FUSE.

  • The Trivial Database [tridgell99:tdb]
    Adrew Tridgell, Paul Russel, Jeremy Allison, 1999
  • Revised5 Report on the Algorithmic Language Scheme [kelsey98:r5rs]
    Richard Kelsey, William Clinger, Jonathan Rees, appeared in Higher-Order and Symbolic Computation, August 1998
  • Prevayler, a Java Implementation of ``Object Prevalence'' [prevayler06:web]
    Prevayler.Org, 2006

    ``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 System [tanenbaum86:sparse]
    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
(made with skribilo)