HOME

TheInfoList



OR:

The Symbolic Optimal Assembly Program (SOAP) is an
assembler Assembler may refer to: Arts and media * Nobukazu Takemura, avant-garde electronic musician, stage name Assembler * Assemblers, a fictional race in the ''Star Wars'' universe * Assemblers, an alternative name of the superhero group Champions of ...
for the
IBM 650 The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer produced by IBM in the mid-1950s. It was the first mass produced computer in the world. Almost 2,000 systems were produced, the last in 1962, and it was the firs ...
Magnetic Drum Data-Processing Machine, an early computer first used in 1954. It was developed by Stan Poley at the IBM
Thomas J. Watson Research Center The Thomas J. Watson Research Center is the headquarters for IBM Research. The center comprises three sites, with its main laboratory in Yorktown Heights, New York, U.S., 38 miles (61 km) north of New York City, Albany, New York and with ...
. SOAP is called ''Optimal'' (or ''Optimum'') because it attempts to store generated instructions on the storage drum to minimize the
access time Access time is the time delay or latency between a request to an electronic system, and the access being completed or the requested data returned * In a computer, it is the time interval between the instant at which an instruction control uni ...
from one instruction to the next. SOAP is a multi-pass assembler, that is, it processes the source program more than once in order to generate the
object program In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file ...
. The first version of SOAP was succeeded by SOAP II in 1957, which supported additional hardware features such as
index register An index register in a computer's CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for hold ...
s and
magnetic core memory Magnetic-core memory was the predominant form of random-access computer memory for 20 years between about 1955 and 1975. Such memory is often just called core memory, or, informally, core. Core memory uses toroids (rings) of a hard magnetic ...
, SOAP IIA in 1958, SOAP 2L, SOAP 2L Tape, SOAP 4000, and SOAP 42 in 1961. SOAP was used as a backend to the
FOR TRANSIT FOR TRANSIT (also incorrectly FORTRANSIT) is a subset of the FORTRAN programming language for the IBM 650 Magnetic Drum Data-Processing Machine, developed by a group led by Bob Bemer. FORTRAN, the first high-level programming language, was develope ...
compiler in 1957.
Donald Knuth Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer sci ...
independently produced versions named SOAP III in 1958 and SUPERSOAP in 1959 at Case Institute of Technology, now part of
Case Western Reserve University Case Western Reserve University (CWRU) is a Private university, private research university in Cleveland, Cleveland, Ohio. Case Western Reserve was established in 1967, when Western Reserve University, founded in 1826 and named for its location i ...
in
Cleveland, Ohio Cleveland ( ), officially the City of Cleveland, is a city in the U.S. state of Ohio and the county seat of Cuyahoga County. Located in the northeastern part of the state, it is situated along the southern shore of Lake Erie, across the U.S. ...
. The US
National Bureau of Standards The National Institute of Standards and Technology (NIST) is an agency of the United States Department of Commerce whose mission is to promote American innovation and industrial competitiveness. NIST's activities are organized into physical sci ...
, under the direction of Herbert Howe, also wrote a version of SOAP, called ISOPAR, said to significantly improve optimization.


Optimization

The IBM 650 uses a magnetic drum as main storage. The drum holds up to 4,000 words and rotates at 12,500 revolutions per minute (RPM), 4.8 msec per rotation, or average access time of 2.4  msec. "If you placed your instructions sequentially onto the drum, you would have to wait for a complete rotation of the drum before the CPU could obtain the next instruction. Since many instructions on the 650 could execute in around 3 milliseconds, you would try to optimize your code by placing the instructions on the drum in such a way that it would not take the drum a full revolution to access your next instruction." Each instruction contains the address of the next instruction to execute; instead of a sequential array of instructions the memory appears to be a linked list. SOAP optimizes by placing instructions to be executed sequentially in locations around the drum such that the next instruction is available as soon as possible after the current instruction finishes. This optimization was said to make the assembled programs "run as much as six or seven times faster."


SOAP features


Pseudo-operations

SOAP II supports the following pseudo-operations (assembly directives):


Comments

Each source card can contain up to ten characters of comments in columns 63–72. For longer comments, up to thirty characters may be entered on a Comments Card (''Type 1'', '1' in column 41) in columns 43–72


References


External links


SOAP at the Online Historical Encyclopaedia of Programming Languages
1955 software Assemblers IBM software Assembly language software {{compu-lang-stub