PACT IA(ID:2515/pac006)

Translator compiler for 704 


for Project for the Advancement of Coding Technique IA

language for IBM 704

As Steel puts it, the second effort of the Project for the Advancement of Coding Technique. Made necessary by the obsolescence of the 701, but also called attention to some shortcomings in PACT I.




Places Hardware:
Related languages
PACT I => PACT IA   Evolution of

References:
  • 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.
    Extract: IT, FORTRANSIT, SAP, SOAP, SOHIO
    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
  • Mock, Owen; Ross, Franz E.; Wagner, Francis. SHARE Distribution No. 136: three sections of the PACT IA compiler system. IBM Corp., 590 Madison Ave., New York, N. Y., 26 Aug. 1957 view details
          in "Proceedings of the Fourth Annual Computer Applications Symposium" , Armour Research Foundation, Illinois Institute of Technology, Chicago, Illinois 1957 view details
  • Mock, Owen; Selfridge, Ralph; Wagner, Francis. SHARE program writeup for RS P -- the PACT IA compiler (enclosure to SHARE Distribution No. 136). IBM Corp., 590 Madison Ave., New York, N.Y. 24 July 1957 view details
          in "Proceedings of the Fourth Annual Computer Applications Symposium" , Armour Research Foundation, Illinois Institute of Technology, Chicago, Illinois 1957 view details
  • Selfridge, Ralph. "Share program writeup of RSP -- the PACT IA compiler" (Issuer unknown.) July 1957 view details
          in "Proceedings of the Fourth Annual Computer Applications Symposium" , Armour Research Foundation, Illinois Institute of Technology, Chicago, Illinois 1957 view details
  • Steel, T. B. "Pact IA" view details Extract: Second effort
    The second effort of the Project for the Advancement of Coding Technique has been the construction of a compiler for the IBM 704. This effort, entitled PACT IA, grew directly out of the experience engendered by the development of the PACT I compiler for the IBM 701.
    The most compelling reason behind the commencement of this new programming task was clearly the obsolescence of the 701 or, contrariwise, the advent of the 704. Additionally, however, several inadequacies in PACT I were evident.
    Among the principal concerns were the complexity of the rule book, insufficiency of error detection devices, difficulty of partial recompilation, rigidity of subscript manipulation, and total lack of automatic secondary storage assignment. The decision was made to code a compiler for the 704, using essentially the same language as PACT I, the identical approach to compilation from a machine viewpoint and to concentrate on simplification of the rules and error detection. Simplification of the rules carries with it, necessarily, a relaxation of subscript constraints and permits flexibility in the matter of recompilation. Indeed, the less complicated the rules, the easier it is to locate violations of the rules. Thus, improvement of the PACT I manual became of prime importance in the new effort. A significant guide to the limits of reasonable rule changes was present in the desire to maintain compatibility with PACT I wherever possible.
    After a review of the relevant discussion preliminary to PACT I, the problem of automatic secondary storage assignment was relegated to limbo. The immense difficulty of this problem is evidenced by the fact that logically it has a good deal of similarity to the celebrated "four color" problem. There is some hope that the availability of multiply buffered input-output systems will bring this problem in the range of the soluble, but for the moment it was disregarded. The availability of built in floating point instructions on the 704 required a new decision on the question of what type of arithmetic to use. The fixed point arithmetic of PACT I has a variety of desirable features but leads to complexities in description and restrictions in practice. I t was concluded that all arithmetic would be floating point but care was taken to permit later addition of fixed point operations if the need became pressing. Within this framework, then, PACT IA was coded.
    Viewed as a mathematical language, the PACT IA language is akin to the descriptive language used for preparation of sheets for hand computing, having numbered steps, single operations and single factors, subscripts for notational compactness and direct naming of factors. From the machine code point of view, the PACT IA language speaks as a single operation, single address, single arithmetic register sequential machine, having two tags or subscripts for address modification and conventional conditional transfers of control.
    In addition to the fundamental algebraic operations, the PACT IA language recognizes certain elementary functions, and provision is made for the introduction of other functions by use of library programs. The language can also call for reading of cards and printing lists.
    The basic data element in the language is the variable. A variable may refer to a scalar, a vector component, or a matrix element. Particular elements are referred to in the conventional manner through the use of subscripts. The language has provision for the initial establishment of subscript values and the facility for changing and testing these values.
          in [ACM] JACM 4(1) January 1957 view details
  • [Bemer, RW] [State of ACM automatic coding library August 1958] view details
          in [ACM] JACM 4(1) January 1957 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
  • Rosen, Saul "Programming Systems and Languages: a historical Survey" (reprinted in Rosen, Saul (ed) Programming Systems & Languages. McGraw Hill, New York, 1967) view details Extract: PACT systems
    The PACT system on the 701 set a precedent as the first programming system designed by a committee of computer users. It also set a precedent for a situation which unfortunately has been quite common in the computer field. The computer for which the programming system was developed was already obsolete before the programming system itself was completed. PACT ideas had a great deal of influence on the later developments that took place under the auspices of the SHARE organization.
          in [AFIPS JCC 25] Proceedings of the 1964 Spring Joint Computer Conference SJCC 1964 view details