The Fox Project: Advanced Languages for Systems Software

Robert Harper, Peter Lee, and Frank Pfenning, Principal Investigators

The objective of the Fox Project in the School of Computer Science at Carnegie Mellon is to advance the art of programming-language design and implementation, and simultaneously to apply principles of programming languages to advance the art of systems building. The work of the project includes theoretical studies of programming languages and their properties, development of new compiler and run-time technology, and empirical studies of the application of advanced language techniques to real-world programming problems, especially in the areas of high-performance networks and operating systems.

Research papers and reports

Fox Project people

The FoxNet Web Server in Standard ML

The FoxNet is a system developed by the Fox Project in the Computer Science Department at Carnegie Mellon University. The objective of the project is to advance the art of programming-language design and implementation, and simultaneously to apply principles of programming languages to advance the art of systems building. The work of the project includes theoretical studies of programming languages and their properties, development of new compiler and run-time technology, and empirical studies of the application of concepts and ideas from advanced languages to real-world programming problems, especially in the areas of networks and operating systems.

The starting point for our work on language design and implementation is the Standard ML programming language. To assess the viability of this language as a vehicle for systems programming, the project has implemented a collection of software modules that implement network communication protocols. These modules can be easily and safely composed in order to build both standard and customized network communication systems (including the standard TCP/IP protocol suite). This collection of modules is called the FoxNet, and is implemented entirely in a type-safe extension of the Standard ML programming language.

As a demonstration of the FoxNet, a web server has been written completely in an extension of the Standard ML programming language. This includes the HTTPD server software and the TCP/IP protocol stack used by the server (essentially everything down to the network device driver). This server is available via the URL http://foxnet.cs.cmu.edu/home.html.

The FoxNet

A report describing the FoxNet was written by Jeremy Buhler and published in ACM Crossroads.

Version 2.0 of the FoxNet, is available by anonymous FTP. This is a new, easier-to-install-and-run release, complete with several server and client applications.

The TIL Compiler

TIL is an advanced compiler for a subset of Standard ML based on the principle of Typed Intermediate Languages. The subset of SML includes all core constructs and top-level structures, but does not include functors, signatures, or nested structures.

The current focus of researchers at Cornell and Carnegie Mellon is on TILT, the successor to TIL. Since we are no longer actively developing TIL, we can't really offer any help in setting it up or configuring it to run.

Papers and source code for TIL can be found online. The Cornell release of TIL includes an ANSI C back end. The Carnegie Mellon release includes a back end which uses Lal George's MLRISC framework.

Proof-Carrying Code

The Touchstone certifying compiler is available by anonymous FTP.

Other Information

  • Mark Leone maintains a useful page of resources for programming language research
  • The Fox Project is sponsored by ARPA. Information on related ARPA-sponsored projects can be found on the ARPA WWW server.
  • The Venari project at CMU also works with Standard ML.
  • Pictures:
  • A group photo, containing some members of the project.
  • A picture of a book and wire.
  • Maintained by:

    David.Swasey@cs.cmu.edu
    and
    Peter.Lee@cs.cmu.edu
    (last updated August 31, 1998)