>> Sean: We've talked about Pascal. What happened in Nottingham?
>> DFB: what happened in Nottingham?! Well, there we were,
at the end of the 1960s turn of the 70s. I had been appointed to
do computer appreciation lectures for
Arts Professors and Lecturers and so on. I did a little bit of programming [with them] and I
did it in Algol 60. Algol60 was also what we used because,
at that time, we were just a little Computer
Group within the Maths department and the other lecturer involved was Andy
Walker who, well we
both agreed - he knew a lot more about the alternatives than i did -
we could see Pascal was definitely a contender [for the future]
but we also knew they [IFIP] were doing this [language called] Algol 68.
And the attraction at the time although it wasn't really an attraction [as] we soon
realized was that Algol 68 had a
two-level grammar. So it wasn't just Backus-Naur specification, which
was standard after Algol 60. Algol 68 took the view
that the way you could gain a lot more power
was not just to write down, by hand, your BNF specification but to have a
master, supe,r all-action extra program [layer] at the top that
generated the BNF from other considerations.
The efforts of two-level grammars to lead to a
new way of looking at things, appealed to only a very narrow minority. What we [pragmatists] were
concerned with is: how did it compare with Pascal in
terms of the facilities it would be offering?
Was it a suitable language to be given to computer science undergrads, and
specialist postgrads? And our view was: "yes it was".
Next question - I can't emphasize this strongly enough but I said it, I think in
the Pascal video: if we're going to teach this, are
the compilers any good ? Because we're going to have, you know, 50
or 60 undergrads wanting to do courseworks with this.
It's no good if the compiler's flaky. It's got to be robust,.
got to have good diagnostics; you've got to be able to teach with it.
We could see good compilers being developed with Pascal
and I said to Andy: "But what about Algol 68?" He said: "Dave, you won't believe this
but there is a bunch of really talented computer
scientists at the Royal Radar Establishment in Malvern ... "
It sounded stupid at the time and this was a bit before we ever got to
hear about Bell Labs - that was weird enough, you know, a secret
bunch of excellent computer scientists buried inside a
research department for a telephone company! Here were some extra,
super, computer scientists. Not so many of them, but buried in a Radar Establishment.
And these people are really competent. They have a good track record.
And he said - you know even now I mean I was talking [in] about
1970. He said: "Even in 1968 as it was announced, they had their
implementation working!" I said: "Andy, right, so in principle it's
fine but here we are stuck on an ICL1906A. We do not have an IBM !"
"No problem" [replied Andy], "because they are a UK research establishment they have also been
stiffed with ICL hardware, like it or not" "Oh" Ii said, "well that will
certainly help if we're all on the same machine ... "
So we got to know them at Malvern very well indeed and rightly they were
celebrated for their implementation of this Algol 68.
What did it do that helped? First of all it came up with
an idea of "types". Well, I'll call them types.
they preferred the 'in' phrase of modes But i won't call them that because i'll
just confuse you. Types. They were dead keen on types and
what Algol 68 could do, you know, if you had an integer it could
now be called an 'int'. You could abbreviate it.
But what about the place in memory that holds your integer?
That's got an address - but we don't talk about address[es], we say
it *refers* to the integer it's where the integer is stored.
So that was taken up, everybody liked that.
"It's the int - but this place where it's stored? It's got an address
And that address is a 'ref int'- it refers you to where the integer is".
You see? And then if you get a pointer to that box, that's a pointer to a pointer
and that thing becomes a 'ref ref int' And in the end you sound like a barking dog!
You know: "So i had this ref ref ref int
and i decided that i wanted to singly dereference it and not
to doubly de-reference it right down to the basic int
as the circumstance would seem to imply." So do you know what I did? Ii used a cast -
where you pour your hot metal into a mould and it comes out in the shape you
want it? And I said: " ... I'm going to cast it down
just to to ref ref int - not all the way back down to int".
All this kind of stuff. Andy [Walker] reassured me. Quite rightly he said:
It [Algol 68] does do bytes and it does do bits and all this kind of stuff". [By contrast] in your
Pascal compiler you can't get down to bit-level manipulation.
The implementation team at Malvern could use ... I think they used their
Algol 60 compiler to implement Algol 68.
They pretty well got their compiler working on the day the {Algol 68] report
was released. Because of course they were on the inside track; they knew what was
going on. here were a few restrictions on it.
It was what's called a single-pass compiler for speed.
And that meant sometimes declaring your structures [e.g. for types] was a bit awkward.
And they had banned certain things that were appearing in [full] Algol 68
that they thought would be expensive to do. It was called Algol 68R. And i think
'R' meant 'restricted'. Andy and i we were very happy
with it. We could make [it] a success. But - because you're going to ask me -
surely it's all right for hardcore computer scientists
to be casting ref ref ref ints down to ref ints
[But] how do mere mortals cope with that? And we were very alive to the 'mere mortals'.
We weren't just doing hardcore computer scientists.
We were involved in 'outreach' Masters courses
which wanted a bit of programming towards
making this be a digital business person
Or being on a programming team in a commercial environment. And i think we
both agreed that a good choice for the absolute
non-specialists but it wouldn't scare them too much would be Pascal
so we did actually run both. We ran Pascal for many years, I think, in our
so-called 'conversion Master's' degrees. but we kept Algol 68 for the hardcore stuff.
>> Sean: Was that something you could do relatively straightforwardly
from an infrastructure point of view? Because i'm not talking about PCs on
every desk in this era ? >> DFB: No, fortunately, with the Algol 68R
compilers we could have people feeding in
Algol 68 jobs on cards into the 1906A but equally ICL had their own Pascal
compiler. One way or another there were good
enough compilers. Yes, I mean, we were teaching
Pascal, I think, into the early 90s. We knew that, coming up on the rails
alongside, of course, was that C from the mid- to late- 70s
almost was getting better and better. C has got input from Algol,
Algol 68 and also, but principally, from BCPL.
And guess what? Two of the people who designed BCPL were also on the Algol 60
committee,basically saying: " ... it's not quite the way
to do it - BCPL is a lot better!" And all this kind of stuff.
Because of that rallying point, way back, of Algol 60,
it you could transfer between these dialects
fairly easily. You probably had "theological" opinions about the right and
just way forward, and you deprecated all of the other approaches, but
nevertheless you knew you were basically in the same playground.
But you were just making different decisions because of the different,
you know, clientele involved, I think, too.
One of the things that does need to be said and it brought it home to Andy and
me, is that the implementation team at
Malvern, for Algol 68R was, Ian Currie, John Morison
and Susan Bond. Ian and John, I think, were the driving force behind Coral 64 their
early adventure [system programming language] But Sue Bond was an absolutely vital
member of that team for Algol 68. She was an absolute rock of that team
[and] gets under-appreciated because she suffered from what we've referred to,
I think obliquely in these [video] lectures. [It] started at Bletchley Park.
The Joan Clark effect. Joan Clark was a highly qualified mathematician.
[She] studied at Cambridge with Alan Turing. Alan Turing wanted her on his team at
Bletchley Park. Big Problem. They couldn't pay her enough
because she was a woman and [a] Cryptographer post was for men only!
So they had to get round it by saying that she was a Linguist.
[Buty by] reclassifying her they could get her the right money. I think a similar thing
happened with Sue Bond. The only way she could make further
progress was to become more of an administrator,
which she did. And she made a very successful career for herself [ending up as Superintendent of Computing and Software Research].
Here's just a moment when we should be celebrating our women computer
scientists they were absolutely equal colleagues
and, you know, deserve to get a lot more
respect than they do - even now.