Systems Manual for 704 and 709 Fortran

Systems Manual for 704 and 709 Fortran

April, 1960 SYSTEMS MANUAL FOR 704 FORTRAN AND 709 FORTRAN Applied Programming Department International Business Machines Cor poratior 590 Madison Avenue New York 22, New York TABLE OF CONTENTS PREFATORY NOTE CHAPTER I m INTRODUCTION I1 .I SECTION ONE III - SECTION ONE-PRIME IV - $ECTION ONE - DOUBLE -PRIME v ., SECTION TWO .I SECTION THREE - SECT,ION FOUR .I SECTION FIVE . SECTIONS FIVE-PRIME AND PRE-SIX . SECTION SIX a LIBRARIAN AND LIBRARY L MONITOR T GENERAL DIAGNOSTIC - EDITORS (FORTRAN AND DIAGNOSTIC) . APPENDIX I rn FORTRAN TAPE STATUS AT END OF SECTION PREFATORY NOTE This manual is an attempt to fulfill a long standing, much-pressed request. That is, a request for an over-all, comprehensive explan- ation of the workings of the entire Fortran System. This includes, in addition to the compiler proper, the monitor, the editor programs, and other corollary routines. It should be noted at the outset, however, that there are a number of difficulties involved in such a presentation. We want to take note of them immediately $0 that you can better apprec- iate the form and organization of the manual that follows. First and foremost, Fortran is a vaat, comprehensive system. This, alone, provides its own 4ifficulties. It means that any description of its workings can not be subsumed under the directional efforts of a single individual who understands it all. One individual could not know all the details and subtleties comprising the insides of all the sections marked off by the fourteen Roman numerals of this manual. We have chosen to make the attempt to bring you many of the fine points of the system; this is done by having the "expert" on each of the sections do the writing for that section. The price that must be paid for this approach is obvious : a single style of presentation and a aingly oriented organization cannot easily be obtained. A certain lack of uniformity of the level of generalization used in the various descriptions results. We trust this will be understood. In some cases this lack of uniformity results from the nature of the subject matter; in others, it results from the difficultv described. we attemot to minimize this difficulty by having an introduction which discusses the main points of each of the sections on approximately the same level, and, in the case of section two of the compiler, having a general level discussion then a de- tailed description. Certain redundancies, of course, must result. We do not apologize for these redundancies; rather, we suspect you will find them of value. As a matter of fact, in a manual of this kind, repetition will prove useful, especially since each added treatment of a subject matter will present it from a unique viewpoint. What we do apologize for here is not having more full cross-referencing. The descriptions are kept on a general level. We deliberately have avoided making references to machine and tape locations. This is in line with our regarding this treatment as an explanation of the system from a logical standpoint. In otherwords, we are presenting what is permanent -- or relatively permanent -- ignoring those things which are subject to moment- ary change, such as absolute core locations. Futhermore, reference can be made to the listings, of course, for supplementation along this line. A further advantage of this is that it means we can, in general, give simultaneous treatment to the 704 and 709 Fortran systems. With re- spect to this, however, it should be noted that we orientate our discussion primarily to the 709 system, making reference to the manner in which the 704 crystem differs. We wish to remind you, at this point, that the Fortran reference and operations manuals, particularly the latter, comprise useful supplements to the present discussion. In addition, an excellent paper on the compiler is included in the Proceedings of the Western Joint Computer Conference in Los Angeles, California, of February 1957. CTION 1. The primitive elements of the Fortran system are the master tape and appropriate editor deck. With these two a system tape is made. This is then used in the operation of the system. 2. In both 704 Fortran and 709 Fortran the system tape consists of four files. In 704 Fortran, the first two files are compiler files. In 709 Fortran, the first file is the monitor file and the second is the compiler file. In both the systems the third file is the library subroutine file and the fourth is the diagnostic file. When 709 Fortran is not being used in the monitor mode (i. e., a single compile only is occurring) the first re- cord only of the first file is used. This is the Card-Tape Simulator. 3. The system tape, itself, is manipulated by the tape record caller routine, 1-CS. This sits in lower core all during compilation and calls in the succeeding record from the system tape. The compiler records are always called in in sequence. Once a system record has been called and execute d, it is not called again. ' It should be noted that in 704 Fortran some of the records of the first file, comprising the compiler, are not executed until after the records of the second file, These are the records comprising the second pass of the section 6 assembly program. Records of the compiler may be called in singly or in a string, consisting of two or three records. Each record has a control word telling whether control, after the record is read in, is to go back to 1-CS or to the executive program record itself. If control goes to 1-CS, it means that another record in the string is to be read from the system tape and execution recommences. This control word, incidentally, is contained in the information of the Master Record Card, corresponding to it, in the Editor Deck (see XN). 4. What follows is a brief over all survey of the Fortran compiler proper. It will attempt to serve as the coordinating unit for the separate detailed write-ups, covering each of the sections of Fortran, which follow. As mentioned in the prefatory note, the material will necessarily cross-cut some of the material of the specific write-ups; it will, however, in most cases, be at a different level of generality. a. The six sections. As is now fairly well known, Fortran falls naturally into six main divisions, which we call sections. These sections are always executed sequentially. There is never a return to one section once it has been relinquiehed to go on to its successor. In addition to the six primary sections, there are four secondary sections. These should, however, be considered as nothing more than appendages to the primary sections. These are sections l', l", 5', and pre-6. Fortran may conceptually be considered as falling into two divisions: the first, comprised by sections 1, 2, and 3; and the second, by sections 4, 5, and 6. This is because at the end of section 3, the entire object program is essentially compiled. It is, in fact, compiled except for the fact that it exists in the C. L T. format and that it has symbolic tags (reference to index registers) instead of absolute tags. It is then the job of the remaining three sections to remedy these two features. Sections 4 and 5 handle the task of inserting the absolute tag references for the symbolic tag references. This, of course, includes the obligation to insert the necessary loading and saving index register instructions. Section 6, then, places the instructions in the C. L T. format into the proper r elocatable binary format. As for the first three sections, it may be considered that the first two of these do the entire task of source program analysis. This task includes performing most of the instruction (C. I. T. ) compil- ation. With reference to some of the instructions, however, sec- tions 1 and 2 simply compile information, in tabular form, to pass on to section 3, which uses these as the key to insert the proper in- structions. Because the analyses of sections 1 and 2 are independent, the C. I. Tts compiled are kept in separate files, which must sub- sequently be merged. Section 3, therefore, has the task of perform- ing this merge as well as the second merge implied by the instruct- ion file which it, itself, creates. Both section 3 and the last part of section 5, because of their position at the end of necessary primary analyses, perform certain optimizing tasks consisting mostly of re- moving or inserting certain instructions. It is well to note that the Fortran compiler makes extensive use of tables. These may be considered as of two types: those which are made up directly from the source program statements, and those which result from further analysis. It is the former class of tables which are mostly included in the reference manual list of tables and their size limitations. The latter class do, in some cases, impose further size limitations. Most tables are passed on from one section to another; some, however, are created purely for use within a section. The source program statements, once scanned, are placed in tabular form and the source program rrtatementa are not referred to again, With one exception, Fortran may be considered as a one pass system. That is, it looks at the source program only once, and it makes a scan of each statement once only. From then on, references are to tables only. The exception noted is in section 1 of the 709 systems.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    264 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us