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

3. IDENTIFIERS, ACCUMULATORS AND CELLS

3.1 Syntax

xacc       ::= X0|X1|X2|X3|X4|X5|X6|X7
racc       ::= A1
xxacc      ::= X01|X12|X23|X34|X45|X56|X67|X70
rracc      ::= A12
modifer    ::= X1|X2|X3
identifier ::= letter|%|identifier letter|identifier digit|identifier %

3.2 Introduction

A PLASYD program consists of a series of declarations and statements. A statement corresponds to one or more computer instructions to be obeyed at object program run time. A declaration gives information to the computer mainly about storage layout and intercommunication.

Statements are basically of two kinds, control statements and assignment statements. Control statements can cause the normal sequence in which statements are to be obeyed to be altered. This can be used for example, to omit conditionally the execution of statements or to repeat a number of statements. Assignment statements are the means by which calculations are carried out. Their effect is to cause a value to be calculated and assigned to a variable. Variables are of two kinds called accumulators and cells. Accumulators correspond to the hardware accumulators in the 1900 series. Each cell corresponds to one or more words in the computer's main store.

Variables are divided into classes in PLASYD according to the type of data that they are used to hold and the mode of arithmetic that can be carried out on them. The various data types are dealt with later. Each variable has an identifier or name by which it is referenced in the program.

3.3 Accumulators

Accumulators have fixed identifiers assigned to them automatically by the system. These identifiers may not be used for any other purpose and are therefore similar to reserved words. They are:

  1. Integer Accumulators (xacc). The syntactic class xacc above defines the eight integer accumulators. They correspond to the 1900 series 24-bit fixed point accumulators. They can hold numbers, 24-bit patterns and addresses. Numbers can either be considered as signed numbers in the range -8388608 to 8388607 or unsigned numbers in the range 0 to 77777777 (octal). The bit pattern can be considered as four six-bit characters.
  2. Modifiers. The three fixed point accumulators X1, X2, X3 can be used as modifiers on the 1900 series and can therefore be used for equivalent special purposes within PLASYD.
  3. Real Accumulator (racc). The syntactic class racc above defines the 1900 floating point accumulator, A1, which is capable of holding a 48-bit floating point quantity.
  4. Long Integer Accumulator (xxacc). Each long integer accumulator is formed from two integer accumulators in an obvious way. For example, X23 is formed from X2 and X3. The long integer accumulator contains a 48-bit fixed point quantity. In general any alteration to the value of a long integer accumulator will destroy the values of its component integer accumulators, and vice versa. Consequently, altering the contents of X01 will alter X0 and X1 and will, therefore, destroy the values of X70 and X12 as well. It is, of course, possible to arrange computation on a long integer accumulator so that only the top or bottom half gets changed. For example, in X23, the least significant half is stored in X3.
  5. Long Real Accumulator (rracc). There is just one long real accumulator, A12, which is made up of the real accumulator, A1, and a mantissa extension for increasing the accuracy. Although available on the 1906A, the hardware is not available on many 1900's. Care should therefore be taken in using the long real accumulator if the program is to be transported. The long real accumulator can contain a 96-bit double length floating point number.

All the accumulators may be given additional names by using the synonym declaration to be defined later. For example:

ACC I SYN X2; 

would allow fixed point accumulator X2 to also be called I.

3.4 Cells

Cells have no fixed names like accumulators. They may be assigned identifiers in the program by the relevant declarations. The form of identifiers is given by the syntactic class identifier given above. Each identifier must be less than 32 characters in length and must not contain any layout characters such as space and newline as these will terminate the identifier. The identifiers defined for accumulators may not be used for other purposes. An identifier cannot coincide with a reserved word but a reserved word can be part of an identifier. Thus AND is not a legal identifier but ANDY is. Examples of possible cell identifiers are:

A  X  X8  %  A%B  AB%   %AB
AVERYLONGIDENTIFIER ANDY BEGI CHAR1 
A1234567890B PLASYD  ROOT1  ROOT2

If communication is desired between PLASYD and some other language then the global identifiers in PLASYD must conform to the limitations on identifiers in the other language.

The same identifier cannot be used for two different purposes in the same segment (a program consisting of a number of separated compiled segments could have local identifiers in different segments with the same name but different meaning).

⇑ 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