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. • InteresMng ReflecMons 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 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 Mme as Programmer of the MARK I Computer at Harvard Minted the word “COMPILER” with A-0 in 1951 Developed Math-MaMc and FlowmaMc and inspired the Development of COBOL Grace loved US Navy Service – The oldest acMve officer, reMrement at 80. From Grace I learned that it is important to queson the status-quo, to seek deeper meaning and explore alterna5ve 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-MaMc FlowmaMc The UNIVAC II Core Memory 2K Words of 12 Decimal Digits/Characters Up to 10 Tape Drives Powerful Intuive InstrucMon 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 FlowmaMc!!!!! 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 Algorithms for Decimal Alignment • A parallel implementaMon 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 ofen in conflict with Corporate management. She returned to full-;me Navy service at the Pentagon. Several members of her Automac Programming Department lef Sperry Univac. An important WWII slang term crept into our department vocabulary somemes spelled In tradi;onal 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 descrip;on 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 ac;ng. The Use of Chain List Matrices for the Analysis MY FIRST PROFESSIONAL PUBLICATION Of COBOL Data Structures H. W. Lawson, Jr. IBM CorporaMon Poughkeepsie, N. Y. THE ANALYSIS, reducMon, and verificaMon • 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 Computer Programming: 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 PublicaMon- Algorithms for MulM-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 Na5onal 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) 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 InteresMng 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 Microsof 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 treang 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 facilies, it is possible to write Variables to flexibly treat linked lists. PL/I procedures that operate on simple and complex data list organizaMons. 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 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 programming language • 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 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 cooperaon and built Unix language extensions are discussed. In and C heavily using pointers and the Mul;cs 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 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 implementaon 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 deteriorang 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 sofware • 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 compability 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-sofware 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-So‰ware Mismatch and Aempts to Improve •The Birth of the Microprocessor •Early System Sowares for Microprocessors •The Gates- Estridge Agreement in 1980 •The Cemenng of the X86 Instrucon Set •The FuncMonality – 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 SoOware Systems on Hardware that Does not Support the Reduc5on of SoOware Complexity Perhaps it will require a melt down of the Internet before ac5on is taken to improve upon the situa5on Rebirth of the Computer Industry, Communicaons of the ACM, June 2002/Vol.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages22 Page
-
File Size-