Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Contents1. Introduction2. Basic symbols and comments3. Identifiers, accumulators and cells4. Types and values5. Addresses and storage allocation6. Simple cell designation7. Assignment statements8. Integer accumulator assignments9. Real accumulator assignments10. Long accumulator assignments11. Cell assignments12. Block structure13. Procedures and labels14. Conditional and control statements15. Functions16. Cell declarations17. Synonym declarations18. Storage allocation19. Subcompilation and global storage20. Define statements, conditional compilation and include statements21. Compiler directives22. FORTRAN/PLASYD mixed programming23. ALGOL/PLASYD mixed programming24. Useful library routines25. Use of TASK macro to compile PLASYD programs26. SMO cell designation27. Compiler output28. PLAN instructions not provided for in PLASYD □ Appendices □ 1: Errors and comments2: 1900 character set3: Syntax definitions in alphabetical order4: Use of program XMED5: 1900 order code6: Code genereated for typical PLASYD statements7: A sample PLASYD program8: Less commonly used directivesReferences
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsPLASYD
ACLLiteratureICL 1906A manualsPLASYD
ACL ACD C&A INF CCD CISD Archives
Further reading

Contents1. Introduction2. Basic symbols and comments3. Identifiers, accumulators and cells4. Types and values5. Addresses and storage allocation6. Simple cell designation7. Assignment statements8. Integer accumulator assignments9. Real accumulator assignments10. Long accumulator assignments11. Cell assignments12. Block structure13. Procedures and labels14. Conditional and control statements15. Functions16. Cell declarations17. Synonym declarations18. Storage allocation19. Subcompilation and global storage20. Define statements, conditional compilation and include statements21. Compiler directives22. FORTRAN/PLASYD mixed programming23. ALGOL/PLASYD mixed programming24. Useful library routines25. Use of TASK macro to compile PLASYD programs26. SMO cell designation27. Compiler output28. PLAN instructions not provided for in PLASYD
Appendices
1: Errors and comments2: 1900 character set3: Syntax definitions in alphabetical order4: Use of program XMED5: 1900 order code6: Code genereated for typical PLASYD statements7: A sample PLASYD program8: Less commonly used directivesReferences

27. COMPILER OUTPUT

27.1 Source Listing

The PLASYD compiler produces a full listing of the program's source text during the compilation unless the user inhibits it by inserting the NOLIST or SHORTLIST directive at the head of the program or segment being compiled. Each source line appears on the left hand side cf the output listing. To the right of the source line can appear:

  1. the instructions generated
  2. any errors found

Only the first 72 characters of each PLASYD source line will be recognised and printed by the compiler. Care should be taken to ensure that no source text appears in higher character positions as it will be ignored and will appear not to exist from the listing.

If the directive:

SWITCH(0)

has been added at the head of the segment being compiled, then each line of text will be followed by the machine code instructions generated. The possible fields printed are:

 P     T     F     X   M   N    S     O 
66    PR    117    0   3   1   LP   04770001

where:

P = position in decimal of this instruction relative to start of segment
T = type of instruction generated.  PR indicates an instruction in the 
    program while LT defines a literal to be stored
F = function code of instruction
X = integer accumulator
M = modifier
N = address field
S = type of address in the instruction. The type PR indicates a program 
    address relative to start of segment, LT indicates a literal and 
    LP a lower preset address
O = octal form of instruction generated.

Normally the instructions will be printed in ascending numerical order of PR. However, in the more complex statements, such as IF and FOR, it is possible for the skeleton instruction to be generated without the address and later reprinted when the address came available.

27.2 Error Diagnostics

At the right hand side of each program line will be indicated any errors that have occurred in the line. If more than one error has occurred, these will be printed one after the other on separate lines. For example:

INTEGER P(4000), Q(4000);                                                COMMENT 11

The types of diagnostics printed are:

  1. ERROR, the error will cause compilation to fail. It will be patched up so that compilation can continue to the end of the program in order that other errors may also be recognised. The complete set of errors are listed in Appendix 1 together with any assumptions made in order to patch up the program.
  2. COMMENT, although not an error this message will point out an unusual situation of which the user should be aware.

In the SHORTLIST form of listing, only those lines having errors will be printed together with the error messages.

At the end of the listing, the message:

ERRORS IN COMPILATION

will be printed if any errors have occurred.

27.3 Symbol Table Listing

If the full listing of the source has been generated, then a storage map will also be generated while the other two modes do not generate the map. By setting SWITCH(21), the reverse of the standard option associated with the listing can be defined.

The storage map consists of the following sections:

  1. SEGMENT If the segment is a procedure, details are given in the form:
    segmentname       link       n WORDS
    
    If the segment is a master segment, details are:
    MASTER SEGMENT OF programname  n WORDS
    
  2. GLABEL PROCEDURES Details are given in the form:
    procedurename     link       entry W
    
    where W indicates the word of the segment at which the procedure starts
  3. INTERNAL PROCEDURES Details are similar to (b)
  4. EXTERNAL Details are given in form:
    nameofitem     link
    
  5. NONPLASYD Details are similar to (d)
  6. DEFINEES Details are given in the form:
    nameofitem     valueofitem
    
    The value is written as 8 octal digits preceded by #
  7. LITERALS n WORDS The first line is followed by n lines of form:
    numberofliteral     value     r     charvalue
    
    The literals are listed in order of definition. The value of the literal is first specified as 8 octal digits and then as four characters. The field r defines the appropriate two character relativiser if it is needed.
  8. GLABELS Details are given in the form:
    m glabelname
    
    where m is the word of the segment at which the GLABEL occurs. The GLABELS are listed in ascending order.
  9. LABELS Details as for (h)
  10. LOWER PRESET n WORDS Details are given in the form:
    m  (t)  symbolicname
    
    where m is the position of the item, t is the type of the item (I = integer LI = long integer, R = real, LR = long real)
  11. PURE LOWER PRESET n WORDS Details as for (j)
  12. UPPER PRESET n WORDS Details as for (j)
  13. PURE UPPER PRESET n WORDS Details as for (j)
  14. LOWER GLOBAL blockname n WORDS Details as for (j). This format is repeated for each lower global block
  15. not used
  16. PURE LOWER GLOBAL blockname n WORDS Details as for (n)
  17. UPPER GLOBAL blockname n WORDS Details as for (n)
  18. PURE UPPER GLOBAL blockname n WORDS Details as for (n)
  19. SYNONYMS OF ABSOLUTE ADDRESSES Details are given in the form:
    m  (t)  synonymname
    
    where m is the absolute location and t is the type as in (j)
  20. ACCUMULATOR SYNONYMS Details are given in the form:
    accumulatorname  synonymname
    

The absence of any items from (b) onwards is indicated by NONE following the name of the item.

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site