Talk:John Iliffe (computer designer)

The need for more supporting citations

 * Several citations added.
 * Should tone down "In the next 30 years he put into operation four computers demonstrating and evaluating new concepts in design"
 * Need citation to justify "The BLM ... was the first general­-purpose system to break completely with the Von Neumann architecture"

We may need to remove some items because they are unsupported by citations:
e.g.
 * Para beginning: "In parallel with construction of the BLM a separate evaluation team assessed it"
 * All of the "Refinements to the BLM"

The need to make it more understandable

 * TBD

Suggestions from Alan Kay (email of 8 Sept 2019)

 * it perhaps is a bit technical and assumes that the reader understands some of the concepts and background. I think the trick would be to be able to keep the technical information but to make it understandable to a wider audience.
 * is it possible to add some things about John's life as well as his work? This might counterbalance the technical paragraphs...just a thought  — Preceding unsigned comment added by Georgio8 (talk • contribs) 16:15, 16 October 2019 (UTC)

Other material for possible inclusion

 * J.K. Iliffe Architectural support for abstraction International Workshop on High Level Language Computer Architecture. Fort Lauderdale, Fla. May 26-28 1980
 * J.K. Iliffe and J. May Design of an emulator for Computer System Research. NATO Advanced Summer Institute in Microprogramming (Hermann 1971)
 * J.K. Iliffe A Machine Organisation Supporting Multiple Target Languages AFCET/IRIA/ENSIMAG Conference Alpe d’hues, May 1974
 * J.K. Iliffe and G. G. Scarrott The Basic Language Project IFIP Congress 1968 Proceedings pp 508-513 North-Holland Amsterdam (1969)
 * INTEL CORPORATION i960 Programmers Reference Manual 1994 (what relevance?)

Detail text on R1, removed for now:
A codeword had three components: A type value used to distinguish a codeword referencing a vector of data to one referring to a sequence of codewords, the address of the first memory element holding the relevant vector and, the length of the vector.

Some BLM References received from JKI April 2019
From Levy, Ch 3

Dennis and Van Horn’s publication paved the way for research in capability- and object-based systems [Dennis 661. It provided the step from descriptors to more generalized addressing. It is difficult to tell how radical the fundamental concepts were when compared to systems like the Basic Language Machine, which was never completely described in the literature. Is it just a matter of terminology? This issue is discussed in Iliffe’s letter to the Surveyors’ Forum in the September 1977 issue of ACM Computing Surveys (Volume 9, Number 3) and in Dennis’ response.

DOCUMENTS IN pdf FORM Abstraction (Part 3 of Advanced Computer Design, Prentice Hall)

Outline of Applied Basic Language (August 1969) International Computers Ltd. Original presented to TNMoC Bletchley.

Henry M. Levy, Capability-Based Computer Systems, Digital Press 1984is available on the WIKI.

SOME REFERENCES IN RELATION TO DIFFERENT STAGES OF WORK

(A) R1 COMPUTER

See Thornton for general discussion. The original machine order code is in CHM102726209 (1958) followed by revised 102726213 (1962). The video The Completed Computer is available as CHM102706842.

The original paper describing the method of dynamic storage allocation is in Computer Journal v.5 p.200 (1962} with Jane Jodeit. Jane followed this up with Storage Organization in Programming Systems Communications of the ACM v11 No 11 November 1968 (1968); see also CHM192726221.

The key paper describing the design of the Genie language is The use of the Genie system in numerical calculation Annual Review of Automatic Programming v.1 (Pergamon 1961) also CHM192726217).  Genie started working in 1961 but the final version with intrinsic array operations etc dates from 1964 (see CHM 192726212), mainly the work of Jodeit and Shaw.

(B) BLM

I think the key point here is that R1 provided ‘Proof of Concept’ of dynamic storage allocation and system organisation, while the BLM nailed these ideas down in a secure way. The Outline of Applied Basic Language has been catalogued at TNMoC (after four years) but they seem to have lost the Basic Machine Language (Final Report September 1969 Ministry of Technology Contract F/Y/034), so it’s not a reliable reference. The main sources are Elements of BLM Computer Journal v.12 pp251-258 (also CHM 102726223) and Basic Machine Principles (Elsevier 1968 and 1971). It’s a great shame that the Final Report cannot be cited as it makes many important points about performance and program design – the main one being that it could run legacy software without loss of performance.

I can’t remember exactly when BLM was rejected by ICL. I would guess 1969.

(C) VCS

(At this point I run out of easily retrieved references, but both the VCS and PN Machine, and the application of the latter to data abstraction, are described in Advanced Computer Design (ACD))

The Variable Computer System project was undertaken by ICL at Stevenage when writable microprogram became a feasible alternative to magnetic cores. It was thought by some to offer performance advantages by adapting the order code to one language or another. In fact that proved to be an illusion. Very little was published, but ACD contains a discussion and evaluation of the idea. An account by Jim May and myself was presented as Design of an Emulator for Computer Systems Research at the NATO Advanced Summer Institute in Microprogramming (Hermann 1971). I’m told that Jim or Owen Evans has more material on the VCS.

(D) PN MACHINE

Work on the VCS led to a clearer understanding of microprogramming. Provided the structural information remained intact between microinstructions it was possible to apply the same rules of composition and enjoy the same level of security as any ‘higher level’ instruction set. The definition of the BLM was simplified to enable all instruction to be completed within one or two CPU cycles. In other words, to behave as a ‘secure’ RISC. The result was the ‘PN’ machine, and the associated language, comparable to C++ was called ‘P’. It is described in ACD.

It had already been pointed out (Store management techniques CHM 102726224 (1969)) that advantage could be taken of structural information (i.e. pointers) in registers by guessing that storage access was about to be demanded, and to initiate a fetch of data to a cache line. Simulation experiments showed that such a ‘Forward-Looking Cache’ achieved high hit rates with comparatively little cache storage. The reference is A Forward-Looking Method of Cache Memory Control (SIGARCH Sept 1987 v.15 No 4). I updated that (Tagged Memory and the Forward-Looking Cache Revisited 1995) but can’t find a reference.

(E) LATER WORK

The DAP was initially presented as a peripheral processor carrying out operations on arrays directed by a controlling processor. It proved possible to implement the PN instruction set within the DAP itself and to use it as a freestanding machine.

I have private papers describing the work, which would not be helpful here. My simulated system bit the dust when Mac changed from Motorola to Intel.

George Coulouris (talk) 09:36, 10 April 2019 (UTC)

Died
Died 2020 February 16 according to son Jonathan in e-mail correspondence with efeustel

C arrays are not Iliffe vectors
"The Iliffe vector storage structure has been adopted widely for use in application programs and high-level language systems.[11]"

That is wrong on many levels. C arrays are flat and not Iliffe vectors at all. C is about the furthest away from Iliffe that you can get. C is not a high-level language and is used for programming low-level systems.

Where Iliffe storage is used is in Burroughs systems, which are now Unisys MCP systems. — Preceding unsigned comment added by Ian.joyner (talk • contribs) 23:13, 9 December 2021 (UTC)