delatex essay.tex | spell | sort | enscript -2ryou write
(run (| (delatex essay.tex) (spell) (sort) (enscript -2r)))Unlike traditional shells, scsh has more than a high-level notation; it also provides complete low-level access to the Unix kernel, and the programming power of a full, R5RS-compliant Scheme. Scsh runs on just about every Unix system around. It has gone through multiple releases, and is available on the Net.
Some scsh-based projects one could do:
PostScript is a simple language. It has a base set of imaging operators (such as "fill in this outline with ink" or "rotate this image by an angle"). These basic operators are composed and applied by programs written in the forth programming language.
Functional PostScript is a UROP-designed graphics language that takes PostScript's base imaging operators, and embeds them in a Scheme engine instead of a forth engine. A "picture description" is a small (or not so small) Scheme program; executing the program causes the picture to be rendered.
The resulting language is something fairly similar to the "picture" language used in Structure and Interpretation of Computer Programming and the 6.001 course for building Escher-like pictures, but with the extremely powerful PostScript primitives at the base. For example, you can use any PostScript font to render text.
The result is a system that provides device-independent, resolution-independent graphics support from Scheme. A full description of the system can be obtained on the Web, complete with sources. (Take a look; it's an elegant system.)
The current implementation produces output by rendering the picture to a stream of straight-line PostScript text, which can then be shipped off to any PostScript printer, or viewed from Ghostview or other previewer program.
We'd like to have a back-end that renders directly to the screen. This could be done by linking FPS's Scheme with the free Ghostscript C library of PostScript primitives to render to X. Then we'd have a high-level, device-indendent graphics system for doing interactive screen graphics.
A member of the Underground who works in the document-layout industry is interested in Scheme-based tools for markup, and is willing to advise a student who wants to develop these kinds of tools. We would want to make these tools available to the various documentation projects that exist for free software such as Linux.
Scheme 48 is being used as an implementation platform by several research projects in the AI Lab. We are using it because it is elegant, comprehensible, efficient, easy to modify, and portable. This also means that any systems developed on top of Scheme 48 are easily exported outside MIT onto the Internet.
There are many projects possible for hacking Scheme48 for students who would like to get "under the hood" and learn what the internals of a new-tech Scheme implementation are like. Here is an assortment of projects that would provide real improvement to the system:
This would pay off for many other systems that could then be written using thread-based concurrency, such as graphics interfaces.