Programming Language for Old Timers

by David A. Moon
February 2006 .. September 2008

Comments and criticisms to dave underscore moon atsign alum dot mit dot edu.

Previous page   Table of Contents   Next page


Programming Language for Old Timers (PLOT) is a new dialect of Lisp designed by Dave Moon in February 2006, and thoroughly revised and simplified November 2007 and March 2008. I have been developing PLOT as a hobby, with the idea of for once having a programming language which does everything the right way. You know it is right when both simplicity and power are maximized, while at the same time confusion and the need for kludges are minimized.

PLOT emphasizes cleanliness, flexibility, and extensibility. PLOT sports a more conventional-looking syntax than classic Lisp. It is, of course, fully object-oriented. Perhaps the most interesting feature of PLOT is that the syntax is totally user-definable.

How can this be a dialect of Lisp, you say, if it does not have S-Expressions, does not have NIL, does not have conses, does not have atoms, and does not have a simple parenthesized Polish prefix syntax?

I say it is a dialect of Lisp because it uses a fully dynamic memory model, fully dynamic typing, a resident program semantics (although separate compilation is possible), fully powerful macros (but hygienic!), and because (almost) everything about the language is defined in the language itself. It has the same extreme flexibility and extensibility, and the same minimum of nonsense that gets in your way, that have always been hallmarks of Lisp. It has the important things about Lisp while jettisoning the things that in my opinion were mistakes from the beginning.

Obviously this language owes a lot to Scheme, Dylan, Common Lisp, Python, Java, and a few others. There is a remarkable amount of convergence with Ruby, considering that I hadn't seen Ruby when I first did this. But as compared with Ruby, PLOT has macros, has my preferred non-class-centric model of methods, and is designed to be compiled.

This document takes an unconventional approach and describes the semantics before explaining the syntax. But, hey! it's hypertext, if you find that approach confusing you don't have to read it in that order.

Maybe I should rename PLOT to Mud (Moon's Ultimate Distraction), an obvious reference to the words of an ancient sage.

The slides from my presentation at the 2009 International Lisp Conference are here. Some of the syntax used in those slides is from an earlier version of the language and is no longer valid.

Previous page   Table of Contents   Next page