The Birth of the Pointer Variable Based upon: Experiences and Reflecons of a Pioneer Harold “Bud” Lawson

FELLOW

FELLOW and LIFE MEMBER

IEEE COMPUTER SOCIETY CHARLES BABBAGE COMPUTER PIONEER FELLOW Overlapping Phases

• Phase 1 (1959-1974) – Computer Industry

• Phase 2 (1974-1996) - Computer-Based Systems

• Phase 3 (1996-Present) – Complex Systems

• Dedicated to all the talented colleagues that I have worked with during my career.

• We have had fun and learned from each other.

• Interesng Reflecons and Happenings are indicated in Red.

Computer Industry (1959 to 1974)

• Summer 1958 - US Census Bureau

• 1959 Temple University (Introducon to IBM 650 (Drum Machine))

• 1959-61 Employed at Remington-Rand Univac

• 1961-67 Employed at IBM

• 1967-69 Part Time Consultant (Professor)

• 1969-70 Employed at Standard Computer Corporaon

• 1971-73 Consultant to Datasaab, Linköping

• 1973-… Consultant .. Expert Witness.. Rear Admiral Dr. Grace Murray Hopper (December 9, 1906 – January 1, 1992)

Minted the word “BUG” – During her me as of the MARK I Computer at Harvard Minted the word “” with A-0 in 1951

Developed Math-Ma and Flowmac and inspired the Development of COBOL

Grace loved US Navy Service – The oldest acve officer, rerement at 80. From Grace I learned that it is important to queson the status-quo, to seek deeper meaning and explore alternave ways of doing things.

1980 – Honarary Doctor The USS Linköpings Universitet Hopper

Univac Compiler Technology of the 1950’s ’s Early Programming Languages

Math-Mac

Flowmac The UNIVAC II

Core Memory 2K Words of 12 Decimal Digits/Characters Up to 10 Tape Drives Powerful Intuive Instrucon Set Off line Typewriter/Punch Card to Tape and Printer

The COBOL Implementaon

• Grace insisted that we view the compiler as a data processing system

• The compiler was implemented in Flowmac!!!!! and had approximately 60 passes

• I did the inial parser, the code generator and part of the I/O

• I called the code generator DUZ (DUZ does everything)

• Developed Generalized for Decimal Alignment

• A parallel implementaon was done at RCA in Camden, New Jersey

• December 1960 - first me the same program compiled-executed on two machines

• Seminar 1999 – CHM (Stanford University) with Howard Bromberg

Grace was not a very “manageable” person and oen in conflict with Corporate management. She returned to full-me Navy service at the Pentagon.

Several members of her Automac Programming Department le Sperry Univac.

An important WWII slang term crept into our department vocabulary

somemes spelled

In tradional Military slang dang back to the Second World War, a blivit was defined as "ten pounds of shit in a five pound bag" (a proverbial descripon of anything ugly or unmanageable); it was applied to an unmanageable situaon, a crucial but substandard or damaged tool, or a self-important person.

Blivit Avoidance – Finding a limited number of driving concepts and principles that guide thinking, influence decision making and provide a controlled means of acng. The Use of Chain List Matrices for the Analysis MY FIRST PROFESSIONAL PUBLICATION Of COBOL Data Structures

H. W. Lawson, Jr. IBM Corporaon Poughkeepsie, N. Y.

THE ANALYSIS, reducon, and verificaon • Based on my Univac Experiences of the data hierarchy ulized in COBOL presents a major problem for implementors of the language. The use of • Referred to by Don Knuth – chain list matrices, to be presented in this paper, provides a significant aid in reducing the me required to process the variably structured data elements in a The Art of : COBOL program. Chain list matrices have been developed to provide a means of classifying and Fundamental Algorithms relang the elements of a tree structure. Offered will be definions of tree terminology such as nodes, branches, • First Publicaon- Algorithms for Mul-Linked roots, leaves, subtrees, branching raos, etc. Examples that explain the structure and meaning of arbitrary order, level order, and subtree order chain list Data Structures matrices will also be presented.

1962 ACM Naonal Conference Syracuse, New York Provided a good basis for my eventual work on The Pointer Variable. My Time at IBM 1961-67 • Research in Compiler-Compiler techniques, in parcular SLANG (Systems Language) based upon instrumented Backus-Nauer Form (BNF) notaon. • System/360 announced in 1963. PL/I specified. • Member of the PL/I Language Board and assigned to develop a List-Processing facility for PL/I. • The Birth of the Pointer Variable. • Represented PL/I on the OS/360 Change Control Board and observed the Entropy as the OS implementaon deteriorated. • Manager of Advanced Technology at the New York Programming Center. Start of my interest in Microprogramming and Computer Architecture. An Interesng and Important SLANG Colleague Don Estridge (1937 – 1985)

• Made important contribuons to SLANG • A very impulsive person • Led a group of 4 (including me) that implemented a FORTRAN compiler in SLANG over a weekend • Called “the father of the PC era” – as an IBM Vice President - led IBM into the PC market • Made Microso and Bill Gates what they became as a result of the 1980 agreement. • Tragically died in a crash at Dallas Airport together with his wife. The Pointer Variable - 1964

PL/I List Processing • PL/I Language lacked facilies for treang linked lists HAROLD LAWSON,JR. • Customer demand to write Graphics Driver rounes in PL/I Internaonal Business Machines Corp., – Especially GM Research Laboratories New York, N. Y. • Plan to implement PL/I (H-level) compiler in PL/I The concepts of list processing have been • Developed the concepts of the Pointer Variable and Based introduced into the PL/I language. With these new facilies, it is possible to write Variables to flexibly treat linked lists. PL/I procedures that operate on simple and complex data list organizaons. Most • Feedback from Don Knuth and Doug McIlroy. list-processing languages have suffered from their inability to deal directly with • Tried to restart the definion and implementaon of PL/I – complex data structures and/or from Would have made PL/I less complex and more useful. their inability to perform the complete range of • Developed a PL/I subset as a Systems Programming operaons upon the data list structures. These two problems have been Language. Implemented and used internally by IBM eliminated in the list-processing facilies • of PL/I. The concepts of list PL/I used to implement the Mulcs OS at MIT processing and the philosophy of the PL/I • Bell Labs backed out of the MIT cooperaon and built language extensions are discussed. In and C heavily using pointers and the Mulcs concepts. addion, several detailed list-processing examples are provided. • Concepts further implemented in amongst others Pascal, C, C++, Ada, Fortran, COBOL and PL/M.

Communicaons of the ACM • When used properly – a powerful programming facility Volunme 10 / Number 6 / June, 1967 used by most all but when not used properly can lead to chaos. • Awarded the IEEE Computer Society Charles Babbage Computer Pioneer Award in 2000 OS/360 – The Black Hole of Complexity • Started with reasonable concepts and Documented in the principles – coding convenons Mythical Man Month • As implementaon proceeded more and more projects requested excepons • The document pile grow rapidly out of control – nobody read anymore • A cast of about one thousand from around the world joined the deteriorang effort • Every release solved some problems but introduced many more • A root cause – the mismatch between the instrucon set and the performance goals of the system soware • The unnecessary complexity created many Dr. jobs for consulng companies • Fred in retrospect stated that OS/360 should have been implemented in PL/I (like Mulcs) Microprogramming and Computer Architecture • From 1965-67 I was manager of Advanced Technology at the New York Programming Center • One interesng aspect of System/360 was the use of microprograms to provide compability between series members. • Several research groups and companies became interested in exploing microprogram capabilies and this became the focus of my group of six researchers • We developed the noon of T-Machine and E-Machine architectures • T-Machines implemented to support • E-Machines provided via microcode the run-me execuon environments for compiled code • During this me, I taught a graduate course at New York University on Programming Languages and Compilers • It was impossible to convince IBM to change direcons and so the fruits of our research would not be used - The march into the black hole of complexity proceeded in an accelerated manner. ES EVM ЕС ЭВМ, Единая система электронных вычислительных машин

“Unified System of Electronic ” In the mid-1970s at the height of the Cold War, the US Government gave the go-ahead to IBM to license 360 technology (including OS/360) to the Soviet Union.

There were about 15000 computer developed in Russia and other Eastern Block countries.

They never mastered the complexity of OS/360.

This probably set Soviet Computer Technology back at least 20 years.

This was most likely the intenon: Export your complexity to your Enemy!!!

Note: Several prior Soviet Machines where explicitly addressing the hardware-soware relaonship in a manner similar to the Burroughs Machines, T and E Machines and the plans for the Datasaab FCPU The March into the Black Hole of Complexity

•The IBM System 360 (Plus and Minus) •The Hardware-Soware Mismatch and Aempts to Improve •The Birth of the •Early System Sowares for •The Gates- Estridge Agreement in 1980 •The Cemenng of the X86 Instrucon Set •The Funconality – Hardware Spiral (WINTEL) •Middleware hides Complexity – it does not remove it •The Market Impact of Inexpensive PC’s and the

We Build Ever Increasing Complex Soware Systems on Hardware that Does not Support the Reducon of Soware Complexity Perhaps it will require a melt down of the Internet before acon is taken to improve upon the situaon

Rebirth of the Computer Industry, Communicaons of the ACM, June 2002/Vol. 45, No. 6 Systems Thinking – Systems Engineering

• In my search for deeper meaning, I found that the literature in Systems Science and Systems Thinking provided very useful insights • Ask by Dr. Dinesh Verma (Stevens Instute) to develop a Systems Thinking graduate course that I delivered in 2002 and 2003 • Further developed the material that provides a sound basis for learning to “think” and “act” in terms of systems • Graduate courses at Skövde, KTH-Stockholms Universitet, Mälardalen and Stevens • Provided professional development courses for FMV, Swedish Military, Nokia and Rosatom • Resulted in the book: A Journey Through the Systems Landscape (also available in Russian and soon Ukrainian and French) Systems thinking design 2b blue_9781904987468-template.qxd 01/02/2010 12:38 Page 1 Systems Thinking Systems and Systems and

Engineering Systems Thinking and Systems 1 Engineering

Systems Thinking has grown during the 20th 1 century into highly useful discipline independent theories and practices. Systems Thinking focuses A Journey Through the upon understanding the holistic properties of Landscape Systems the Through Journey A complex systems and in particular the dynamic Systems Landscape relationships that arise in the interactions of multiple systems in operation.

Systems Engineering has gained momentum during the latter part of the 20th century and has led to engineering related practices and standards that can be used in the life cycle management of complexsystems. Systems Engineering focuses upon transforming the need for a system into a set of capabilties, requirements, functions or objects, that guide production of products and services that meet the need in an effective manner.

The combination of Systems Thinking and Systems Engineering is of particular interest in establishing the capabiltiy to ”think” and ”act” in terms of systems.

This series publishes books and proceedings that are related to Systems Thinking or Systems Engineering or both subjects. Harold "Bud" Lawson "Bud" Harold

Harold "Bud" Lawson

6.14 x 9.21.629 6.14 x 9.21

A Journey Through the Systems Landscape

Book website and Download of the Digital Version http://www.thesystemslandscape.com/

That’s all folks

Do your best to avoid Blivits Most Important Publicaons

• “The Use of Chain List Matrices for the Analysis of COBOL Data Structures”, Proceedings of the ACM Conference 1962, Syracuse, New York. • “PL/I List Processing”, Communicaons of the ACM, Volume 10, Number 6, June 1967. • “Programming Language Oriented Instrucon Streams”, IEEE Transacons on Computers, Volume C-17, Number 5, May 1968. • “Funconal Characteriscs of a Mul-Lingual Processor”, IEEE Transacons on Computers, Volume C-20, July 1971. (Co-author: Burton K. Smith). • “Advantages of Structured Hardware”, Proceedings of the Second Annual Symposium on Computer Architecture, Houston, Texas, January 1975. (Co- author: Dr. Bengt Magnhagen). • “Funcon Distribuon in Computer System Architectures”, Invited paper appearing in the Proceedings of the Third Annual Symposium on Computer Architecture, Clearwater, Florida, January 1976. Publicaons (connued)

• “Philosophies for Engineering Computer Based Systems”, IEEE Computer, Vol. 23, No. 12, pp. 52-63, December, 1990. • “CY-CLONE - An Approach to the Engineering of Resource Adequate Cyclic Real-Time Systems”, Real Time Systems, The Internaonal Journal of Time-Crical Compung Systems, Vol. 4, No. 1, February, 1992. • Parallel Processing in Industrial Real-Time Applicaons, Prence-Hall series on “Innovave Technologies”, ISBN 0-13-654518-1. 1992. • “BASEMENT: A Distributed Real-Time Architecture for Vehicle Applicaons”, Real Time Systems, The Internaonal Journal of Time- Crical Compung Systems, Vol. 11, No. 3, November, 1996. (Co- authors: H. Hansson, M. Strömberg, and S. Larsson). • “Salvaon from System Complexity”, IEEE Computer, Vol. 31, No. 2, Feb 1998, pp 118-120. • “Infrastructure Risk Reducon”, Communicaons of the ACM, Vol. 40, No. 6, June 1998, pp120. Publicaons (connued)

• “From Busyware to Stableware”, IEEE Computer, Vol. 31, No. 10, Oct 1998, pp117-119. • “Rebirth of the Computer Industry”. Communicaons fo the ACM June 2002/Vol. 45, No. 6. • “Twenty Years of Safe Train Control in Sweden”, Proceedings of the Internaonal Symposium and Workshop on Systems Engineering of Computer Based Systems, Washington, DC. April, 2001. (Co-authors: S. Wallin, B. Bryntse, and B. Friman). • “Viewing Systems from a Business Management Perspecve: The ISO/ IEC 15288 Standard”, The Journal of Systems Engineering, Vol. 7, No. 3, September, 2004. Co-author: Stuart Arnold • A Journey Through the Systems Landscape, College Publicaons, Kings College, UK, ISBN 978-1-84890-010-3. 2010.