The Birth of the Pointer Variable Based upon: Experiences and Reflec ons of a Computer 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.
• Interes ng Reflec ons and Happenings are indicated in Red.
Computer Industry (1959 to 1974)
• Summer 1958 - US Census Bureau
• 1959 Temple University (Introduc on 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 Corpora on
• 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 Programmer of the MARK I Computer at Harvard Minted the word “COMPILER” with A-0 in 1951
Developed Math-Ma c and Flowma c and inspired the Development of COBOL
Grace loved US Navy Service – The oldest ac ve officer, re rement at 80. From Grace I learned that it is important to ques on the status-quo, to seek deeper meaning and explore alterna ve ways of doing things.
1980 – Honarary Doctor The USS Linköpings Universitet Hopper
Univac Compiler Technology of the 1950’s Grace Hopper’s Early Programming Languages
Math-Ma c
Flowma c The UNIVAC II
Core Memory 2K Words of 12 Decimal Digits/Characters Up to 10 Tape Drives Powerful Intui ve Instruc on Set Off line Typewriter/Punch Card to Tape and Printer
The COBOL Implementa on
• Grace insisted that we view the compiler as a data processing system
• The compiler was implemented in Flowma c!!!!! and had approximately 60 passes
• I did the ini al parser, the code generator and part of the I/O
• I called the code generator DUZ (DUZ does everything)
• Developed Generalized Algorithms for Decimal Alignment
• A parallel implementa on 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 o en in conflict with Corporate management. She returned to full- me Navy service at the Pentagon.
Several members of her Automa c Programming Department le Sperry Univac.
An important WWII slang term crept into our department vocabulary
some mes spelled
In tradi onal Military slang da ng back to the Second World War, a blivit was defined as "ten pounds of shit in a five pound bag" (a proverbial descrip on of anything ugly or unmanageable); it was applied to an unmanageable situa on, 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 ac ng. The Use of Chain List Matrices for the Analysis MY FIRST PROFESSIONAL PUBLICATION Of COBOL Data Structures
H. W. Lawson, Jr. IBM Corpora on Poughkeepsie, N. Y.
THE ANALYSIS, reduc on, and verifica on • Based on my Univac Experiences of the data hierarchy u lized 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 Computer Programming: COBOL program. Chain list matrices have been developed to provide a means of classifying and Fundamental Algorithms rela ng the elements of a tree structure. Offered will be defini ons of tree terminology such as nodes, branches, • First Publica on- Algorithms for Mul -Linked roots, leaves, subtrees, branching ra os, 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 Na onal 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 par cular SLANG (Systems Language) based upon instrumented Backus-Nauer Form (BNF) nota on. • 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 implementa on deteriorated. • Manager of Advanced Technology at the New York Programming Center. Start of my interest in Microprogramming and Computer Architecture. An Interes ng and Important SLANG Colleague Don Estridge (1937 – 1985)
• Made important contribu ons 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 facili es for trea ng linked lists HAROLD LAWSON,JR. • Customer demand to write Graphics Driver rou nes in PL/I Interna onal 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 facili es, it is possible to write Variables to flexibly treat linked lists. PL/I procedures that operate on simple and complex data list organiza ons. Most • Feedback from Don Knuth and Doug McIlroy. list-processing languages have suffered from their inability to deal directly with • Tried to restart the defini on and implementa on 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 programming language • Developed a PL/I subset as a Systems Programming opera ons upon the data list structures. These two problems have been Language. Implemented and used internally by IBM eliminated in the list-processing facili es • of PL/I. The basic concepts of list PL/I used to implement the Mul cs OS at MIT processing and the philosophy of the PL/I • Bell Labs backed out of the MIT coopera on and built Unix language extensions are discussed. In and C heavily using pointers and the Mul cs concepts. addi on, several detailed list-processing examples are provided. • Concepts further implemented in amongst others Pascal, C, C++, Ada, Fortran, COBOL and PL/M.
Communica ons of the ACM • When used properly – a powerful programming facility Volunme 10 / Number 6 / June, 1967 used by most all programmers 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 conven ons Mythical Man Month • As implementa on proceeded more and more projects requested excep ons • The document pile grow rapidly out of control – nobody read anymore • A cast of about one thousand from around the world joined the deteriora ng effort • Every release solved some problems but introduced many more • A root cause – the mismatch between the instruc on set and the performance goals of the system so ware • The unnecessary complexity created many Dr. Fred Brooks jobs for consul ng companies • Fred in retrospect stated that OS/360 should have been implemented in PL/I (like Mul cs) Microprogramming and Computer Architecture • From 1965-67 I was manager of Advanced Technology at the New York Programming Center • One interes ng aspect of System/360 was the use of microprograms to provide compa bility between series members. • Several research groups and companies became interested in exploi ng microprogram capabili es and this became the focus of my group of six researchers • We developed the no on of T-Machine and E-Machine architectures • T-Machines implemented microcode to support compilers • E-Machines provided via microcode the run- me execu on 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 direc ons 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 Computers” 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 inten on: Export your complexity to your Enemy!!!
Note: Several prior Soviet Machines where explicitly addressing the hardware-so ware rela onship 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-So ware Mismatch and A empts to Improve •The Birth of the Microprocessor •Early System So wares for Microprocessors •The Gates- Estridge Agreement in 1980 •The Cemen ng of the X86 Instruc on Set •The Func onality – Hardware Spiral (WINTEL) •Middleware hides Complexity – it does not remove it •The Market Impact of Inexpensive PC’s and the Internet
We Build Ever Increasing Complex So ware Systems on Hardware that Does not Support the Reduc on of So ware Complexity Perhaps it will require a melt down of the Internet before ac on is taken to improve upon the situa on
Rebirth of the Computer Industry, Communica ons 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 Ins tute) 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 Publica ons
• “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”, Communica ons of the ACM, Volume 10, Number 6, June 1967. • “Programming Language Oriented Instruc on Streams”, IEEE Transac ons on Computers, Volume C-17, Number 5, May 1968. • “Func onal Characteris cs of a Mul -Lingual Processor”, IEEE Transac ons 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). • “Func on Distribu on in Computer System Architectures”, Invited paper appearing in the Proceedings of the Third Annual Symposium on Computer Architecture, Clearwater, Florida, January 1976. Publica ons (con nued)
• “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 Interna onal Journal of Time-Cri cal Compu ng Systems, Vol. 4, No. 1, February, 1992. • Parallel Processing in Industrial Real-Time Applica ons, Pren ce-Hall series on “Innova ve Technologies”, ISBN 0-13-654518-1. 1992. • “BASEMENT: A Distributed Real-Time Architecture for Vehicle Applica ons”, Real Time Systems, The Interna onal Journal of Time- Cri cal Compu ng Systems, Vol. 11, No. 3, November, 1996. (Co- authors: H. Hansson, M. Strömberg, and S. Larsson). • “Salva on from System Complexity”, IEEE Computer, Vol. 31, No. 2, Feb 1998, pp 118-120. • “Infrastructure Risk Reduc on”, Communica ons of the ACM, Vol. 40, No. 6, June 1998, pp120. Publica ons (con nued)
• “From Busyware to Stableware”, IEEE Computer, Vol. 31, No. 10, Oct 1998, pp117-119. • “Rebirth of the Computer Industry”. Communica ons fo the ACM June 2002/Vol. 45, No. 6. • “Twenty Years of Safe Train Control in Sweden”, Proceedings of the Interna onal 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 Perspec ve: 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 Publica ons, Kings College, UK, ISBN 978-1-84890-010-3. 2010.