Programming the Web with High-Level Programming Languages

Paul T. Graunke, Shriram Krishnamurthi, Steve van der Hoeven, Matthias Felleisen

European Symposium on Programming, 2001


Many modern programs provide operating system-style services to extension modules. A Web server, for instance, behaves like a simple OS kernel. It invokes programs that dynamically generate Web pages and manages their resource consumption. Most Web servers, however, rely on conventional operating systems to provide these services. As a result, the solutions are inefficient, and impose a serious overhead on the programmer of dynamic extensions.

In this paper, we show that a Web server implemented in a suitably extended high-level programming language overcomes all these problems. First, building a server in such a language is straightforward. Second, the server delivers static content at performance levels comparable to a conventional server. Third, the Web server delivers dynamic content at a much higher rate than a conventional server, which is important because a significant portion of Web content is now dynamically generated. Finally, the server provides programming mechanisms for the dynamic generation of Web content that are difficult to support in a conventional server architecture.


The server discussed in this paper is part of the default DrScheme distribution. The presentation and content of this paper is quite out-of-date; instead, please see the corresponding journal version for a much better exposition. Because of changes to the language, you will probably not be able to run the code in this paper. Please instead read the documentation in Help Desk and consult the demos in the web-server collection of the distribution.



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.