CADR Lisp Machine emulator

via Planet Lisp
Brad Parker has released an emulator for CADR, the second-generation MIT Lisp Machine. The emulator comes bundled with the operating system and you can run it on a regular Unix machine.

He estimates that it is 90% complete. I can confirm that it does boot up and run ZWEI, the Lisp Machine Emacs. (Note that this is MIT's Lisp Machine and not the fancier Symbolics derivative.)

This is really cool!

Dr. Kenneth Iverson Passes Away

Ken Iverson, creator of APL and J, passed away this week.

Ralf Hinze: An algebra of scans

Ralf Hinze. An algebra of scans. Proceedings of the Seventh International Conference on Mathematics of Program Construction (MPC 2004).

In this paper we show that parallel prefix circuits enjoy a very pleasant algebra. Using only two basic building blocks and four combinators all standard designs can be described succinctly and rigorously. The rules of the algebra allow us to prove the circuits correct and to derive circuit designs in a systematic manner.

Parallel prefix computations, or scans if you speak APL, determine the sums of all prefixes of a given sequence. Obviously the term sum is used loosely: scan is a high-order function, and any associative operation can be used. In J talk scan is an adverb.

I wonder when we will be seeing courses called Algebra Design in Computer Science departments around the world...

Ah right, just after all universities offer language design courses ;-)

Whitespace

Whitespace

Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren't there. We consider this to be a gross injustice to these perfectly friendly members of the character set. Should they be ignored, just because they are invisible? Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax.

Durham students have fun again ;-)

Playing the Minesweeper with Constraints (MOZ 2004)

Peter linked to the MOZ 2004 papers earlier.

This presentation by Raphael Collet provides a nice example of constraint programming, a paradigm we don't discuss often enough.

Programming for non-programmers

A thread over on the PLT mailing list that LtU-ers may find interesting.

The thread isn't very technical, and the title may be a bit misleading: It's more about programming skills than about programming by non-programmers.

I wonder how many people outside the PL community would agree with the statement that Programming is just another name for the lost art of thinking. Perhaps a better formulation would be Programming, done right, is just another name for the art of thinking.

And by done right I mean using the right languages, of course.

MOZ 2004 talks available

The MOZ 2004 "Second International Conference on
Mozart/Oz" just finished a week ago. There were
50 participants and 23 technical talks. It was quite an
interesting and intense event, with lots of animated
discussions. We have put most of the talks on the
MOZ 2004 main page. I invite you to take a look at
the wide variety of stuff going on under the Mozart
banner.

F#, a functional language for .Net

From Microsoft Research:

F# is a variant of ML with a core language akin to that of the OCaml programming language. F# runs on top of the .NET Framework and in many ways the language is designed to be an "ML that fits with .NET". F# includes extensions for working across languages, and the aim is to have it work together seamlessly with C#, COmega, Visual Basic, SML.NET and other .NET programming languages and tools. It is the first ML language where all the types and values in an ML program can be accessed from some significant object-oriented imperative languages (e.g. C#) in a predictable and (reasonably) friendly way.

Rel: an open source implementation of Date & Darwen's Tutorial D

More from Slashdot, which today points to an article on Rel, Dave Voorhis' open source implementation of Tutorial D (see Chris Date and Hugh Darwen's The Third Manifesto for a discussion of the rationale behind this language).

Voorhis explains his motives for creating the implementation in an article on the (currently somewhat sparse) Rel Wiki.

Discussions of possible replacements of, or improvements on, SQL usually end up being all about the powerful institutional/human factors (or "network effects") that will impede acceptance of any new solution. Refreshingly, Voorhis is going ahead and building one anyway, without waiting for approval from the masses. It might catch on, or it might not; at least someone's giving it a go.

Statistical programming with R

Three part series on R that's of interest for domain specific PL development. First parts can be found at Part 1: Dabbling with a wealth of statistical facilities and
Part 2: Functional programming and data exploration. (Part three is still in the works). R is a suite of software facilities for data manipulation, calculation and graphical display, which is quite useful for statistical analysis. It builds upon the S language developed originally at Bell Labs.

A three-part series, ...introduces you to R, a rich statistical environment, released as free software. It includes a programming language, an interactive shell, and extensive graphing capability. What's more, R comes with a spectacular collection of functions for mathematical and statistical manipulations -- with still more capabilities available in optional packages... The (GPL'd) R programming language has two parents, the proprietary S/S-PLUS programming language, from which it gets most of its syntax, and the Scheme programming language, from which it gets many (more subtle) semantic aspects.
R and S were touched on fairly briefly in the LtU discussion about Regression Analysis. A more detailed introduction can found be found at An Introduction to R.