Abstracting Away the Machine


Book Description

At the dawn of the computer age, an elite development team at IBM built the most influential computer programming language in history: FORTRAN. Abstracting Away the Machine tells the epic story of how they did it--and what happened next. Over the past six decades, programming languages like ALGOL, BASIC, C/C++, COBOL, Java, LISP, LOGO, Pascal, PL/I, Python, Visual Basic, and many others opened up the field of computer science, and of computer programming in general, to the masses. But all of these high-level languages (HLLs)--computer languages that automate, hide, or otherwise abstract away the underlying operations of the machine--owe a huge debt of gratitude to FORTRAN (FORmula TRANslation), the first HLL to achieve widespread adoption. Many programming practices that we take for granted now came about as a result of FORTRAN. Created over a three-year period at IBM by a development team led by a brilliant but wayward mathematician named John W. Backus, FORTRAN was implemented initially on the IBM 704 mainframe computer in the mid-1950s, with dialects of the language quickly spreading thereafter to other platforms. FORTRAN's powerful compiler, which translated human-readable code into code a computer could understand, produced incredibly clean and optimized standalone executable programs, all of which could be run independently of the compiler, setting the standard for decades to come--and overcoming the doubts of many skeptics along the way, who thought the FORTRAN project would never succeed. In the 1960s the language was standardized, with machine-dependent commands excised, and many platform-independent implementations followed. With the language now portable, able to run on any computer (at least in theory), FORTRAN, almost by accident, secured a stranglehold in the fields of science and engineering. The language also came to dominate in the supercomputing industry. But FORTRAN, a blue-collar workhorse more concerned with results than with style, was a victim of its own success--the language sowed the seeds of its own demise. New high-level languages sprouted up, stealing the good bits from FORTRAN while simultaneously defining themselves in opposition to it. FORTRAN had become the foil. As these new languages pierced the cutting edge of the programming landscape, they redefined computing paradigms (e.g., with structured programming, object-oriented programming, and the like), and FORTRAN--though eventually (and repeatedly) modernized and formally renamed Fortran--struggled to keep up through multiple standardization efforts, finally ceding significant ground to its successors as it slowly withdrew from the spotlight. To add insult to injury, even John Backus eventually turned against his creation. This is not a book on how to program in FORTRAN, nor is it a technical manual. Rather, the focus in Abstracting Away the Machine, which chronicles the complete history and development of the FORTRAN programming language, is set squarely on telling three interlocking stories: (1) How an elite group of computing trailblazers built FORTRAN, (2) Why the conditions at the time were ripe for them to succeed, and (3) What happened after they did. Tracing the long arc of FORTRAN's development and maturation is integral to understanding not only the history of programming but also the state of computer science today. The birth of FORTRAN planted a seed that led to the full flowering of high-level languages, since FORTRAN overcame initial skepticism by demonstrating to the world that a well-made HLL really could abstract away the machine.




IBM's 360 and Early 370 Systems


Book Description

No product offering has had greater impact on the computer industry than the IBM System/360. This book describes the creation of this remarkable system and the developments it spawned, including its successor, System/370.




Endless Loop


Book Description

"Endless Loop" chronicles the complete history of the BASIC programming language--from its humble beginnings at Dartmouth College, to its widespread adoption and dominance in education, to its decline and subsequent modern rebirth.In the early morning hours of May 1, 1964, Dartmouth College birthed fraternal twins: BASIC, the Beginner's All-purpose Symbolic Instruction Code programming language, and, simultaneously, the Dartmouth Time-Sharing System (DTSS). It hadn't been an easy birth, and the gestation period was likewise difficult. BASIC was primarily the idea of one man, mathematics professor John Kemeny, a brilliant Hungarian mathematician who had once been an assistant to Albert Einstein, while the DTSS satisfied the vision of another, mathematics and statistics professor Thomas Kurtz, who had brought a democratizing spirit to Dartmouth's campus in the form of free computing for all.BASIC and DTSS caught on at Dartmouth quickly, with a vast majority of undergraduates (and faculty) making use of the computer system via teletypewriters only several years after its inception. But by the early 1970s, with the personal computer revolution fast approaching, Kemeny and Kurtz began to lose control over BASIC as it achieved widespread popularity outside of Dartmouth. The language was being adapted to run on a wide variety of computers, some much too short of memory to contain the full set of Dartmouth BASIC features. Most notably, Microsoft built its business on the back of ROM-based BASIC interpreters for a variety of microcomputers. Although the language was ubiquitous in schools by the early 1980s, it came under attack by such notables as computer scientist Edsger W. Dijkstra for its lack of structure as well as by Kemeny and Kurtz themselves, who viewed non-Dartmouth "Street BASIC" as blasphemous and saw it as their mission to right the ship through language standardization and the release of True BASIC. But by then it was too late: the era of BASIC's global dominance was over.In "Endless Loop," author Mark Jones Lorenzo documents the history and development of Dartmouth BASIC, True BASIC, Tiny BASIC, Microsoft BASIC--including Altair BASIC, Applesoft BASIC, Color BASIC, Commodore BASIC, TRS-80 Level II BASIC, TI BASIC, IBM BASICA/GW-BASIC, QuickBASIC/QBASIC, Visual Basic, and Small Basic--as well as 9845 BASIC, Atari BASIC, BBC BASIC, CBASIC, Locomotive BASIC, MacBASIC, QB64, Simons' BASIC, Sinclair BASIC, SuperBASIC, and Turbo Basic/PowerBASIC, among a number of other implementations.The ascendance of BASIC paralleled the emergence of the personal computer, so the story of BASIC is first and foremost a story--actually, many interlocking stories--about computers. But it is also a tale of talented people who built a language out of a set of primal ingredients: sweat, creativity, rivalry, jealousy, cooperation, and plain hard work, and then set the language loose in a world filled with unintended consequences. How those unintended consequences played out, leading to the demise of the most popular computer language the world has ever known, is the focus of "Endless Loop."




Grace Hopper and the Invention of the Information Age


Book Description

The career of computer visionary Grace Murray Hopper, whose innovative work in programming laid the foundations for the user-friendliness of today's personal computers that sparked the information age. A Hollywood biopic about the life of computer pioneer Grace Murray Hopper (1906–1992) would go like this: a young professor abandons the ivy-covered walls of academia to serve her country in the Navy after Pearl Harbor and finds herself on the front lines of the computer revolution. She works hard to succeed in the all-male computer industry, is almost brought down by personal problems but survives them, and ends her career as a celebrated elder stateswoman of computing, a heroine to thousands, hailed as the inventor of computer programming. Throughout Hopper's later years, the popular media told this simplified version of her life story. In Grace Hopper and the Invention of the Information Age, Kurt Beyer reveals a more authentic Hopper, a vibrant and complex woman whose career paralleled the meteoric trajectory of the postwar computer industry. Both rebellious and collaborative, Hopper was influential in male-dominated military and business organizations at a time when women were encouraged to devote themselves to housework and childbearing. Hopper's greatest technical achievement was to create the tools that would allow humans to communicate with computers in terms other than ones and zeroes. This advance influenced all future programming and software design and laid the foundation for the development of user-friendly personal computers.




Programming Languages: History and Fundamentals


Book Description

Monograph comprising fundamental information on the history and characteristics of approximately 120 programming languages for computer usage - covers technical aspects, language structure, etc. Bibliography at the end of each chapter.




IBM's Early Computers


Book Description

The challenges faced by IBM's research and development laboratories, the technological paths they chose, and how these choices affected the company and the computer industry.




Everlasting Code


Book Description

Grace Hopper's remarkable innovations in computing led to COBOL, which for decades was the most widely used programming language in the world. Everlasting Code offers an in-depth look at Hopper's work, while also chronicling the entire history of COBOL. The development of COBOL (COmmon Business-Oriented Language) was the strangest, wildest, and most dramatic story in the early history of computing. Everlasting Code covers it all, from Grace Hopper's pioneering work with compilers to the many contentious committee meetings that repeatedly put the birth of the language in jeopardy; from the race to build the world's first COBOL compiler to the numerous standardization efforts; and from the Y2K bug to the COVID-19 pandemic, times when public scapegoating of COBOL shifted into high gear. Even though it was the work of a committee and she was only indirectly involved in its creation, COBOL has Grace Hopper's fingerprints all over it. Therefore, since Everlasting Code tells two interrelated stories (that of Hopper's breakthroughs as well as the history of COBOL), the book is split into two parts. In the first part, we meet one of the most prolific computer scientists of the twentieth century and examine how Hopper's varied life experiences--as a student, professor, military officer, and programmer--led to her revolutionary ideas, setting the stage for the birth of COBOL. Hopper developed some of the earliest working compilers--programs that translated human-readable source code into machine code, a language computers could make sense of--including MATH-MATIC, for algebraic problems, and FLOW-MATIC, for data processing. Source code for Hopper's compilers had to be written in a form of everyday English, which proved eminently readable to some people and endlessly frustrating for others. FLOW-MATIC was the key influence for COBOL, as we discover in the second part of Everlasting Code. By the late 1950s, with the FORTRAN programming language dominating the engineering, scientific, and mathematical landscape, the need for a corresponding business data-processing language emerged. With Grace Hopper's full support, in early 1959 a programmer named Mary Hawes publicly suggested developing an industrywide common business language (CBL) capable of running the same programs on different computers. Thanks to Hopper's many government and military connections, the U.S. Department of Defense sponsored the CBL effort, taking the unprecedented step of bringing together many competing manufacturers and computer users for a high-stakes meeting at the Pentagon. Before long, subcommittees of CODASYL (the Committee on Data Systems Languages, which was formed to write the CBL) were at war with each other. Meanwhile, the chairman of CODASYL received a mysterious crated package. Inside was a tombstone with a reclining lamb statuette at the top and a single word engraved on the front: COBOL. Was this intended as a threat? Did someone want the language dead? Or was the tombstone merely delivering a warning: That if CODASYL couldn't get its act together, COBOL was sure to die an early death? Author Mark Jones Lorenzo takes you behind the scenes and inside the meeting rooms where the fate of a programming language hung in the balance. Filled with intrigue, conflict, suspense, drama, technical details, and the biographies of many larger-than-life personalities, Everlasting Code traces the precedents, the development, and the history of the COBOL programming language, which came to rule the world.




Concrete Abstractions


Book Description

CONCRETE ABSTRACTIONS offers students a hands-on, abstraction-based experience of thinking like a computer scientist. This text covers the basics of programming and data structures, and gives first-time computer science students the opportunity to not only write programs, but to prove theorems and analyze algorithms as well. Students learn a variety of programming styles, including functional programming, assembly-language programming, and object-oriented programming (OOP). While most of the book uses the Scheme programming language, Java is introduced at the end as a second example of an OOP system and to demonstrate concepts of concurrent programming.




How to Design Programs, second edition


Book Description

A completely revised edition, offering new design recipes for interactive programs and support for images as plain values, testing, event-driven programming, and even distributed programming. This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it. Because learning to design programs is about the study of principles and the acquisition of transferable skills, the text does not use an off-the-shelf industrial language but presents a tailor-made teaching language. For the same reason, it offers DrRacket, a programming environment for novices that supports playful, feedback-oriented learning. The environment grows with readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks. This second edition has been completely revised. While the book continues to teach a systematic approach to program design, the second edition introduces different design recipes for interactive programs with graphical interfaces and batch programs. It also enriches its design recipes for functions with numerous new hints. Finally, the teaching languages and their IDE now come with support for images as plain values, testing, event-driven programming, and even distributed programming.




Understanding Machine Learning


Book Description

Introduces machine learning and its algorithmic paradigms, explaining the principles behind automated learning approaches and the considerations underlying their usage.




Recent Books