Does anyone know where I can get a copy of Cornell University report TR 89-1068, "First-class synchronous operations in Standard ML", by John Reppy? How about other material on signals, continuations, or "light-weight threads"??
[I found this tech report and others browsing Cornell's WWW server. See TR90-1144. My home page has a couple of papers on implementing threads for multiprocessors using SML/NJ's continuations.
Some other online references (e.g. Bob Harper's "Introduction to SML") are accessible on the following page.
(21.03.95: When he says "info pages", he means "translated TEXINFO" pages)
(21.03.95: visited it. contains real live on-line SML code that sits there are stares at you.)
The CAML Light ftp directory. From the README file:
Caml Light is a small, portable implementation of the ML language. that runs on most Unix machines. It has also been ported to the Macintosh and to the IBM PC.
Caml Light implements the Caml language, a functional language from the ML family. Caml is quite close to Standard ML, though not strictly conformant. There are some slight differences in syntax and semantics, and major differences in the module system (these changes were required to support separate compilation).
Caml Light is implemented as a bytecode compiler, and fully bootstrapped. The runtime system and bytecode interpreter is written in standard C, hence Caml Light is easy to port to almost any 32-bit platform. The whole system is quite small: about 100K for the runtime system, and another 100K of bytecode for the compiler. 1.2 megabyte of memory is enough to recompile the whole system. This stands in sharp contrast with other implementations of ML, such as SML-NJ, that requires about ten times more memory. Performance is quite good for a bytecoded implementation: five to ten times slower than SML-NJ. Optimizing compilers, camlot and bigloo, generate bigger executables, but performances are comparable to the best ML implementations.
Caml Light comes in two flavors: a classical, interactive, toplevel-based system; and a standalone, batch-oriented compiler that produces standalone programs, in the spirit of the Unix cc compiler. The former is good for learning the language and testing programs. The latter integrates more smoothly within programming environments. The generated programs are quite small, and can be used like any other command.
From: "Dr. Richard Botting" (email@example.com) Newsgroups: comp.lang.ml Subject: ANNOUNCE: ML Syntax Summary on WWW Date: 19 Jan 1995 21:54:41 MET Organization: CS Dept., Calif. State Univ., San Bernardino Distribution: world Reply-To: "Dr. Richard Botting" (firstname.lastname@example.org) Summary: ML Syntax at //www.csci.csusb.edu/dick/samples Keywords: EBNF ML Syntax WWW MATHS Originator: jgmorris@UNBOX.FOX.CS.CMU.EDUI have retrieved Larry Paulson's syntax for Standard ML (posted, here, some years ago) and (after asking his permission) translated it into a form that can be read by mosaic, netscape, lynx and other World-Wide-Web Browsers. It has a context list, index of definitions, and links back to the original document. Please point your browser at
or add this link to your most suitable pages:
The 'raw' form is in
-- EMail: email@example.comfirstname.lastname@example.org. Disclaimer::=`CSUSB may or may not agree with this message`. Copyright(1995)::=`Copy as long as you include this copyright and signature`.
Why did we write a C analyzer in ML? Because we got a really good C front-end in SML/NJ from AT&T. This was fortunate because the analyses are decribed in our papers in terms of instance (variable at site) relations. We implement the relational expressions from the paper directly in ML. This makes it easier to make sure the theory agrees with the implementation. Since we are prototyping emerging ideas, ML's types and modules make it easier to continually make changes to the code.
(21.03.95: the URLs are hand-patched, originally they missed the http:servername parts. As it is, www.cs.cmu.edu:8001 just times out on me, so i can't verify them. sorry for the inconveniences.)