The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: tfb@tfeb.org (Tim Bradshaw)
Subject: [TUHS] Happy birthday, Niklaus Wirth!
Date: Fri, 16 Feb 2018 11:27:50 +0000	[thread overview]
Message-ID: <B5DCD09E-D420-4B66-B4EE-0274EC74BEBA@tfeb.org> (raw)
In-Reply-To: <20180216024857.GH8295@mcvoy.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 5548 bytes --]

On 16 Feb 2018, at 02:48, Larry McVoy <lm at mcvoy.com> wrote:
> 
> I'd like to be told, as a systems guy, what those things are.

This is a story I was told in the 1980s about something which happened in the 1960s.  But I was told it by the person who did the thing in the 1960s so I believe it to be true subject to the limitations of my fading memory.

In General Relativity, one of the things you need to do is, starting from a metric (which is a specification, in terms of some basis -- usually a coordinate basis -- of how distances work in that basis), compute various geometrically and physically interesting properties.  Some of these are things like curvature, which tells you whether the spacetime the metric describes is flat, and some of them are related to understanding whether, given two apparently different metrics, do these metrics in fact describe the same spacetime, or parts of the same spacetime.

These calculations are laborious: really, seriously laborious. They're also not algorithmic: it's been known for a long time (this is all pretty much a corollary of Gödel incompleteness) that, for two quite simple algebraic expressions, you can't in general know if they are equal.  But they matter if you want to make progress in GR, because unless you can solve problems like this you end up with people churning out endless metrics and never knowing whether they describe the same spacetimes.  An early concrete example of this is the Schwarzschild metric (which describes nontorating, uncharged things and is a very good approximation for the gravitational field around stars and, famously, black holes).  In the obvious expression for this metric, it blows up in a horrible way at a particular radius (the Schwarzschild radius).  It took people a very long time to understand that this blowing up was not because something physically horrible happened at that radius, but because the coordinate system in which the metric was expressed went bad at that radius.  Eventually people found other metrics which were equivalent to the original one and which did not blow up at the Schwarzschild radius.

There's an important metric which I have always known as the 'Bondi metric' but I think is more properly known as the 'Lemaître–Tolman–Bondi metric', which was under investigation in the 1960s, towards the start of the GR renaissance.  Various properties of this thing needed to be computed, and this was assigned to a student as a PhD project (this is how laborious the computations are: they take a human several years).  I'm not sure who this person was, but they duly got their PhD for it.

At the same time another person (Ray d'Inverno) got interested in whether these computations could be done by machine.  He wrote a program on the Atlas (a second-generation British machine), and he may have written the Lisp in which it was implemented.  This was called ALAM: Atlas Lisp Algebraic Manipulation, and it gave rise to a slightly later thing called LAM (just dropping the 'Atlas': perhaps this was after it was ported somewhere else).

And it turns out that yes, these calculations can be done by machine: I was told that (A)LAM replicated the calculation that the PhD student had done over several years, and it took seven minutes (on, I think I was told, the Atlas).  Better: *it found mistakes in the original computation*.

LAM grew up and became, inevitably, SHEEP, in which form I used it in the 1980s. SHEEP and its derivatives (CLASSI) was widely used for computations in GR (and may still be), often extended by using another algebra system, REDUCE, to do some of the harder simplification -- REDUCE was also written in Lisp of course.  One of my early explorations in retrocomputing was to find the source of the original LAM, persuade it to run on a PC running muLisp that I discovered I could use at night, and use it to redo this original calculation.  I remember it took much longer than seven minutes: 8088-based PCs were still much slower than the Atlas in the early 1980s.  (This had all already been done on the mini we had, the interesting thing was making it work on a PC.)

Now of course, someone will make the silly argument that these systems could be written in C.  Yes, indeed they could be, and the way you do this is *by writing a Lisp system in C*.  Indeed there is a famous aphorism about this, Greenspun's tenth rule of programming:

"Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."

There is a corollary to this due to Morris (of the worm):

"Including Common Lisp."

There are some very well-known examples of Greenspun's tenth: I don't want to describe the best one here because it would involve being rude about famous people with extremely large egos in a public forum, and I also own a copy of the thing so I'd be being at least a bit hypocritical.

However I currently work with a very large Fortran program and I can confirm at first hand that it -- specifically its runtime configuration system -- contains a grotty implementation of half of CL (actually less than half, but the configuration system would be *so much nicer* if it was in Lisp).  If only the people who had written this thing had *known* about Lisp rather than known only about Fortran and Python, the world would be a better place.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180216/72ab0d07/attachment-0001.html>


  parent reply	other threads:[~2018-02-16 11:27 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-16  2:19 Noel Chiappa
2018-02-16  2:48 ` Larry McVoy
2018-02-16  4:19   ` Steve Nickolas
2018-02-16 11:27   ` Tim Bradshaw [this message]
2018-02-16 15:45     ` Nemo
  -- strict thread matches above, loose matches on Subject: below --
2018-02-18 20:50 Norman Wilson
2018-02-19  0:28 ` Dave Horsfall
     [not found] <mailman.22.1518790085.20342.tuhs@minnie.tuhs.org>
2018-02-16 17:40 ` Paul McJones
2018-02-16 19:24   ` Bakul Shah
2018-02-16 13:42 Noel Chiappa
2018-02-16 21:02 ` Tim Bradshaw
     [not found] <mailman.1.1518746401.1018.tuhs@minnie.tuhs.org>
2018-02-16  2:40 ` Paul McJones
2018-02-14 21:06 Dave Horsfall
2018-02-14 21:12 ` Clem Cole
2018-02-14 22:15   ` George Michaelson
2018-02-14 23:37   ` Dave Horsfall
2018-02-14 21:24 ` Toby Thain
2018-02-16  0:01   ` Dave Horsfall
2018-02-16  0:51     ` Dan Cross
2018-02-16  1:06       ` Clem cole
2018-02-16  3:10         ` Toby Thain
2018-02-16 13:36           ` Clem Cole
2018-02-16  1:18       ` Larry McVoy
2018-02-16  1:55         ` George Michaelson
2018-02-16  1:56         ` Lawrence Stewart
2018-02-16  2:38           ` Dan Cross
2018-02-16  2:41             ` Larry McVoy
2018-02-16  2:51               ` Dan Cross
2018-02-16  2:56                 ` George Michaelson
2018-02-16 10:26               ` Tim Bradshaw
2018-02-16  1:25       ` Ian Zimmerman
2018-04-24  0:59         ` Ian Zimmerman
2018-04-24  3:26           ` Dave Horsfall
2018-04-24  4:31           ` Dan Stromberg
2018-04-24 13:42             ` Clem Cole
2018-02-16  2:09       ` Bakul Shah
2018-02-16  2:31         ` Toby Thain
2018-02-16 10:01         ` Tim Bradshaw
2018-02-16 12:10           ` Bakul Shah
2018-02-16 12:37             ` tfb
2018-02-16 13:34               ` Bakul Shah
2018-02-16 14:07                 ` Bakul Shah
2018-02-16 20:13                 ` tfb
2018-02-16  3:17       ` Dan Stromberg
2018-02-14 23:19 ` Greg 'groggy' Lehey
2018-02-14 23:31   ` Dave Horsfall
2018-02-15 17:32     ` Steffen Nurpmeso
2018-02-15 19:18       ` Ian Zimmerman
2018-02-15 20:56         ` Steffen Nurpmeso
2018-02-15 21:31         ` Jeremy C. Reed
2018-02-15  2:30 ` Nemo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B5DCD09E-D420-4B66-B4EE-0274EC74BEBA@tfeb.org \
    --to=tfb@tfeb.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).