From: ivie@cc.usu.edu (CP/M lives!)
Newsgroups: alt.folklore.computers
Subject: SOAP, History flame, and 1st assembler
Date: 17 Apr 92 11:52:22 MDT
Organization: Utah State University

In article <1992Apr17.131457.17694@sctc.com>, smith@sctc.com (Rick Smith) writes:
> lasner@watsun.cc.columbia.edu (Charles Lasner) asks:
> 
>>Are you sure that SOAP actually worked?  
> 
> In any case, you should be able to go to any general work on '50s
> efforts in automatic programming and find references to it. I got
> the feeling it was an important part of the 650's market success.

While wandering through the library of the local university, I found 
"Programming the IBM 650 Magnetic Drum Computer and Data-Processing Machine"
by Richard V. Andree, dated 1958. I, of course, photocopied the whole thing
without permission. There's a chapter on SOAP (a whole four pages), which
pretty much assumes that the thing works (this is _not_ an IBM publication).
An interesting comment is "This program has better optimization than most
programmers would acheive in two hours time, but it is _not_ the best that
can be achieved by expert hand optimization. For most purposes SOAP is an
excellent method of writing good programs with a minimum of effort, without
using For Transit..."

The chapter also starts out with "Several programs exist which take a given
unoptimized program and use the 650 to produce an optimized program. One of
the best known of these programs is IBM's Symbolic Optimum Assembly Package,
S.O.A.P. ... SOAP utilizes the alphabetic device of the 650 so that the 
alphabetic mnemonic operation codes (RAL) may be used in place of the
corresponding numeric (65) codes."

While I haven't used SOAP or even seen a 650, I've seen lots of references
like this one which indicate that it did work, although not as well as
optimum hand-coding.

By the way, I've been looking into a lot of old machine and finding lots of
interesting stuff. It really annoys me that all of the history books seem to
talk about the _people_ rather than the _machines_. For example, a book
that discusses ENIAC (even one with a promising title like "From ENIAC to
UNIVAC: An Appraisal of the Eckert-Mauchly Computers") gives you the obligatory
pictures, a diagram showing how ENIAC occumpied the room, and the comment that
it was very hard to program. It then launches into a biography of Eckert and
Mauchly, discusses the funding issues, etc. without giving any real info about
how the machine worked!

I, for one, am much more interested in the machines than in the people.

Another aside: there were some questions about when the first assembler was
written. I have found that EDSAC (first used in 1949) had an assembler built
in; when you turned the machine on it loaded the assembler from a hand-wired
ROM and you fed your program in using that assembler. The book in which I
found this discusses EDSAC programming in detail, but the only time it even
gives you numeric opcode information is in the discussion of the subroutine-
calling convention; that involves adding a passed instruction to a fixed
instruction in the subroutine to construct an instruction that returns.

I've been very impressed with a number of these old machines I've been looking
at. 

Roger Ivie
ivie@cc.usu.edu

PS: I'm way off in Nowheresville, UT, so I don't have the luxury of popping
over to the library of the university that built the machines to find out
how they worked.