LAML This is the homepage of LAML Version 17.00 (April 2, 2002) full . This is the full distribution, including all available documentation. As an alternative, it is possible to download a slim version with only the Scheme files. The slim version is much smaller than the full version. See below for a section about installation of LAML. The LAML home page at the Computer Science WWW server at Aalborg University contains additional and up-to-date information about LAML. The development version of the LAML software home page is also available. | ![]() |
The main idea behind LAML is to bring HTML into the domain of the Scheme programming language, and as such let the WWW author use the power of abstraction and programmed solutions when he or she produces WWW pages. LAML can be used for both statical markup purposes and for server side CGI programming purposes. For further information, see the LAML background page .
In order to realize what has happened recently in LAML please consult the page what is new in LAML .
Below follows a structured overview of the LAML software documentation in terms of library interfaces and programmatic descriptions of styles and tools. Dimmed entries represent old stuff, provided for backward compatibility.
|
The following table shows the existing LAML configurations by Scheme systems, Platform and Operating System:
A bold 'OK' means that I use the combination myself, and that it works for me. An 'OK' means that am confident that the configuration works, and that it is supported in the distribution. (Perhaps I used it earlier, I have tested it to some degree, or others have reported positively on that combination.) When a combination is OK you should be able to install LAML with no or very reasonable efforts (GNU Emacs support included). If you use a combination not supported you should make some porting efforts, which is more difficult. Currently I use MzScheme on both Unix (static LAML and for CGI programming) and Windows (Win2000, NT, Win98). Before that I used SCM on Unix. DRScheme is too slow for LAML purposes, at least for my taste; But as noticed, DRScheme works with LAML if you have time to wait. I do not use Guile in my daily work, but I have ported LAML to Guile and tested it in a reasonable way. LAML is also known to work with MzScheme on Linux. I have never used LAML on a Mac. As part of the LAML distribution we have a useful Scheme R4RS manual browser. My contribution is solely the indexing (which is not accurate in the index made from the TeXInfo source of the document). |
I recommend that you use LAML from GNU Emacs. The Emacs interface makes it possible to activate LAML directly on a buffer, and to produce an HTML file in a very flexible way. The Emacs interface abstracts away the starting of the Scheme system, and the loading of all the necessary files. The Emacs interface works well on both the UNIX and PC (NT4.0/Win98/Win95) platforms. You can download a PC verion of Emacs (win95/98/NT) from the GNU FTP site. As of November 2000 I recommend version 20.7, but earlier versions will probably also work without problems. (I do not rely on new Emacs features, as far as I am aware). |
The LAML software uses the following non-standard R4RS functions:
In addition, the following functions are desirable although not used in the central pieces of the LAML software. If you cannot implement them, just relax...
The Scheme system compatibility files in lib/compatibility/ provide implementations of the functions mentioned above. (In case no implementation is possible, we call the error procedure.) In the distribution, there are a compatibility files for a number of Scheme systems and operating systems. |
You are supposed to unzip the LAML distribution into a directory of your choice. Next you have to make a few modifications to a configuration file in order to describe properties of your installation. Finally you run a particular Scheme program which effectuates the configuration process. See the LAML installation guide for details on that. We assume that you are a competent Scheme programmer, and as such that you are able to fix simple installation problems that may occur. |
By processing an LAML file (a file with extension laml) the LAML Scheme expressions are translated to HTML.
Thus, by processing the file f.laml you typically get g.html in the same directory.
Usually f equals g (depending on the method of processing). When we start a LAML process, we transfer a bit of context to the processing which gives us knowledge about the name of the file, on which the laml source resides, and the directory in which the source file is placed. In addition, the underlying Scheme process needs to know where the LAML software is located (and a few other options to allow correct processing using a particular Scheme engine). We support the following LAML processing methods:
|
Elucidative Programming in Scheme is supported by a tool which we call the Scheme Elucidator. Elucidative programming is a variant of literate programming in which programs and internal
documentation is presented in an Internet Browser. The Scheme Elucidator is one of the most
substantial LAML-based pieces of software I have written. The Scheme Elucidator is an integrated part the LAML distribution. With respect to installation and setup of the Scheme Elucidator see the Elucidator Installation page. In addition, the distribution contains elucidative documentation of the Elucidator tool itself. See also the Home Page of Elucidative Programming on the Aalborg University WWW site. |
As an integral part of this software package you will find special LAML support from the Emacs editor, including
a LAML mode with both key bindings.
If you followed the installation steps you should be able to use LAML from emacs.
Many LAML command are available via the LAML menu, which will apear when you work on a Emacs buffer in LAML mode. The following gives an overview of the most important, general LAML Emacs commands.
Besides these, a variety of specialized template insertion commands are available. They all start with insert-. Use the Emacs completion facility to find out about these. There also exists a number of more specific emacs command for the Elucidator, the Manual style, and for LENO. See the relevant manual pages for description of these. In case you want to change the key bindings used by Emacs LAML mode, you will have to change these in emacs-support/dot-emacs-contribution.el |
Besides the papers about LAML available from the LAML home page, there is also a slide presentation of the ideas behind LAML. The slides were - in the original version - presented at the Lisp User Group Meeting in Amsterdam in 1999. There is also a brief version available. The slides are made by the LENO tool, which itself is LAML based. The brief version illustrates the LENO trail facility. The slides are contained in the LAML distribution. |
We keep track of the changes from one version to the next. Below you can navigate to these |
In order to port the LAML software package to another Scheme system you will need to carry our some programming work. I have written a guide for people who want to port LAML to another Scheme system. |
Kurt Nørmark
Aalborg University
normark@cs.auc.dk