Lockheed virtual machine for IBM 701 

for Floating Octal Point

Lockheed macro assembler for a virtual machine running on the IBM 701 written by Robert Bozak
Operational March 1953, simulated FP.

According to BRL 61:
"A general purpose system called FLOP, a contraction of Floating Octal Point, was developed at Lockheed by members of the Digital Computing Staff.

Flop converts the 701 into an entirely different machine, one which performs all its operations in a "floating octal" system, but also permits all the normal 701 operations to be executed in fixed binary. The floating octal operations performed by the system are add, subtract, multiply, divide (all with real or complex numbers), log8 x, 8x, sin x, sin-lx, and square root. The system also provides certain logical operations and control of the input-output devices in three number systems: binary, octal and floating decimal.

This system was developed in order to obtain a minimum of elapsed time from when a new problem first enters the department to when answers are obtainable."

Places Hardware:
  • Bemer, R. W. "The Status of Automatic Programming for Scientific Problems" view details Abstract: A catalogue of automatic coding systems that are either operational or in the process of development together with brief descriptions of some of the more important ones Extract: Summary
    Let me elaborate these points with examples. UNICODE is expected to require about fifteen man-years. Most modern assembly systems must take from six to ten man-years. SCAT expects to absorb twelve people for most of a year. The initial writing of the 704 FORTRAN required about twenty-five man-years. Split among many different machines, IBM's Applied Programming Department has over a hundred and twenty programmers. Sperry Rand probably has more than this, and for utility and automatic coding systems only! Add to these the number of customer programmers also engaged in writing similar systems, and you will see that the total is overwhelming.
    Perhaps five to six man-years are being expended to write the Alodel 2 FORTRAN for the 704, trimming bugs and getting better documentation for incorporation into the even larger supervisory systems of various installations. If available, more could undoubtedly be expended to bring the original system up to the limit of what we can now conceive. Maintenance is a very sizable portion of the entire effort going into a system.
    Certainly, all of us have a few skeletons in the closet when it comes to adapting old systems to new machines. Hardly anything more than the flow charts is reusable in writing 709 FORTRAN; changes in the characteristics of instructions, and tricky coding, have done for the rest. This is true of every effort I am familiar with, not just IBM's.
    What am I leading up to? Simply that the day of diverse development of automatic coding systems is either out or, if not, should be. The list of systems collected here illustrates a vast amount of duplication and incomplete conception. A computer manufacturer should produce both the product and the means to use the product, but this should be done with the full co-operation of responsible users. There is a gratifying trend toward such unification in such organizations as SHARE, USE, GUIDE, DUO, etc. The PACT group was a shining example in its day. Many other coding systems, such as FLAIR, PRINT, FORTRAN, and USE, have been done as the result of partial co-operation. FORTRAN for the 705 seems to me to be an ideally balanced project, the burden being carried equally by IBM and its customers.
    Finally, let me make a recommendation to all computer installations. There seems to be a reasonably sharp distinction between people who program and use computers as a tool and those who are programmers and live to make things easy for the other people. If you have the latter at your installation, do not waste them on production and do not waste them on a private effort in automatic coding in a day when that type of project is so complex. Offer them in a cooperative venture with your manufacturer (they still remain your employees) and give him the benefit of the practical experience in your problems. You will get your investment back many times over in ease of programming and the guarantee that your problems have been considered.
    The IT language is also showing up in future plans for many different computers. Case Institute, having just completed an intermediate symbolic assembly to accept IT output, is starting to write an IT processor for UNIVAC. This is expected to be working by late summer of 1958. One of the original programmers at Carnegie Tech spent the last summer at Ramo-Wooldridge to write IT for the 1103A. This project is complete except for input-output and may be expected to be operational by December, 1957. IT is also being done for the IBM 705-1, 2 by Standard Oil of Ohio, with no expected completion date known yet. It is interesting to note that Sohio is also participating in the 705 FORTRAN effort and will undoubtedly serve as the basic source of FORTRAN-to- IT-to-FORTRAN translational information. A graduate student at the University of Michigan is producing SAP output for IT (rather than SOAP) so that IT will run on the 704; this, however, is only for experience; it would be much more profitable to write a pre-processor from IT to FORTRAN (the reverse of FOR TRANSIT) and utilize the power of FORTRAN for free.
          in "Proceedings of the Fourth Annual Computer Applications Symposium" , Armour Research Foundation, Illinois Institute of Technology, Chicago, Illinois 1957 view details
  • [Bemer, RW] [State of ACM automatic coding library August 1958] view details
          in "Proceedings of the Fourth Annual Computer Applications Symposium" , Armour Research Foundation, Illinois Institute of Technology, Chicago, Illinois 1957 view details
  • [Bemer, RW] [State of ACM automatic coding library May 1959] view details Extract: Obiter Dicta
    Bob Bemer states that this table (which appeared sporadically in CACM) was partly used as a space filler. The last version was enshrined in Sammet (1969) and the attribution there is normally misquoted.
          in [ACM] CACM 2(05) May 1959 view details
  • Carr, John W III; "Computer Programming" volume 2, chapter 2, pp115-121 view details
          in E. M. Crabbe, S. Ramo, and D. E. Wooldridge (eds.) "Handbook of Automation, Computation, and Control," John Wiley & Sons, Inc., New York, 1959. view details
  • Bemer, R "ISO TC97/SC5/WGA(1) Survey of Programming Languages and Processors" December 1962 view details
          in [ACM] CACM 6(03) (Mar 1963) view details
  • Amaya, Leland H. "The 701 Installation at Lockheed Aircraft" pp184-185 view details Extract: About FLOP
    As the digital computing group took shape, I had the responsibility for dynamic (flutter) calculations, Bemer for structures, and Bozak for the remainder of engineering requirements. Bozak also took the initiative on the operating system for the 701.
    We really didn't consult with anyone else about the use of the 701, but based on the general computing requirements of aircraft design, Bozak designed a Floating Octal Point interpretive routine (FLOP). (Bozak and I went to Poughkeepsie in August 1952 to try and check out the portion of FLOP that was written and the matrix operations I was planning.) The system was not a flop, but a tremendous success. As the project was implemented, Harvey Bratman assisted Bozak and eventually headed our software systems group, when Bozak transferred to the Georgia Division of Lockheed with Jack Reynolds. FLOP had both scalar and complex number operations because of our extensive work in aerodynamics and dynamics.
    Scalar addition took 4.8 ms and complex 8.7 ms rather slow in today's world, but extremely convenient and fast in 1953 compared to the tools available. The speed for multiplication was tremendous. We didn't break any speed records for executions, but the overall productivity in the ultimate solution of eigenvalues was increased at least two orders of magnitude and increased as the problems exceeded 6 degrees of freedom. Bozak and I attempted to carry a significant digit indication with large numbers, but the computer time was prohibitive, and if we believed the results (we almost always lost all the significance), we decided that this effort was impractical.
    When the group was first established, we attached a sign-up sheet to the console, and anyone could reserve checkout or production time. It wasn't long before we assigned a monitor to sign up by priority the night before, and eventually the monitor stayed at the console and became our first operator. Because we were a special group that worked closely with the customer engineers, we sometimes were helpfully lucky at finding a trouble-free area on a Williams tube for the bit raster (the number-one frustration on the computer, but the tapes were a close second).
    It was at this time also that I introduced the computer to our Accounting Department. The biggest hurdle was octal and binary numbers versus decimal, and particularly the round-off, which wasn't always the same as the decimal. It finally caught on, and as soon as a 701 was available, it was ordered.
          in Annals of the History of Computing, 05(2) April-June 1983 IEEE (IBM 701 Issue) view details