ENIAC in Action by Thomas Haigh
Author:Thomas Haigh [MIT Digital Book Services]
Language: eng
Format: epub
ISBN: 9780262033985
Publisher: MIT Press
Published: 2016-05-03T18:38:59+00:00
The “Modern Code Paradigm”
We will call the third crucial aspect of von Neumann’s description of EDVAC “the modern code paradigm.” We will use this new term to describe the program-related elements of the 1945 First Draft design that become standard features of 1950s computer design. Not all of those features were original to the First Draft, but their packaging together and their integration with the von Neumann architecture and with the new hardware technologies exerted a remarkable influence.74
The program is executed completely automatically. To quote the First Draft, “Once these instructions are given to the device, it must be able to carry them out completely and without any need for further intelligent human intervention.” This was essential for electronic machines, whereas human intervention at branch points had been workable with slower devices such as the Harvard Mark I. Of course operators still had to tend to input and output devices, and data might require pre-processing and post-processing either manually or with punched-card equipment.
The program is written as a single sequence of instructions, known as “orders” in the First Draft, which are stored in numbered memory locations along with data. These instructions control all aspects of the machine’s operations. The same mechanisms are used to read code and data. As was discussed earlier, the First Draft did specify the explicit demarcation of memory locations holding code from those holding data. It also pointed toward the idea of a program as a readable text: “it is usually convenient that the minor cycles expressing the successive steps in a sequence of logical instructions should follow each other automatically.”
Each instruction within the program specifies one of a set of atomic operations made available to the programmer. This was usually done by beginning the instruction with one of a small number of operation codes. Some operation codes are followed by argument fields specifying a memory location with which to work or other parameters. The First Draft specified only seven “types of orders,” to be coded with three bits, although four of these instructions also included an additional four bits to select one of ten arithmetic and logic operations as a kind of parameter.75 Several order types additionally incorporated thirteen-bit addresses. In all, instructions required between nine and 22 bits to express. Actual machines usually followed this pattern, typically merging the “order type” and “operation” fields from the First Draft so that each arithmetic or logical operation received its own numerical order code. The main exceptions, Alan Turing’s Ace design and its derivatives, stuck close to the underlying hardware by coding all instructions as transfers of data between sources and destinations associated with specific circuits.
The program’s instructions are usually executed in a predetermined sequence. According to the First Draft, the machine “should be instructed, after each order, where to find the next order that it is to carry out.” In EDVAC this was to be represented implicitly by the sequence in which they were stored, as in “normal routine” it “should obey the orders in the temporal sequence in which they naturally appear.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Hello! Python by Anthony Briggs(9928)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9804)
The Mikado Method by Ola Ellnestam Daniel Brolund(9789)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8310)
Sass and Compass in Action by Wynn Netherland Nathan Weizenbaum Chris Eppstein Brandon Mathis(7792)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7773)
Grails in Action by Glen Smith Peter Ledbrook(7705)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7569)
Windows APT Warfare by Sheng-Hao Ma(6965)
Layered Design for Ruby on Rails Applications by Vladimir Dementyev(6699)
Blueprints Visual Scripting for Unreal Engine 5 - Third Edition by Marcos Romero & Brenden Sewell(6565)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6427)
Kotlin in Action by Dmitry Jemerov(5076)
Hands-On Full-Stack Web Development with GraphQL and React by Sebastian Grebe(4323)
Solidity Programming Essentials by Ritesh Modi(4071)
Functional Programming in JavaScript by Mantyla Dan(4044)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3863)
Unity 3D Game Development by Anthony Davis & Travis Baptiste & Russell Craig & Ryan Stunkel(3809)
The Ultimate iOS Interview Playbook by Avi Tsadok(3782)
