Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ PrefaceContents1 Introduction2 The basic language3 Storage and block structure of programs4 Routines5 Data I/O6 Monitor printing and fault diagnosis7 Presentation of complete programs8 Complex arithmetic9 Store Mapping10 The use of machine instructions11 Permanent routines □ Appendices and indices □ A1 Phrase structure notationA2 Standard functions and permanent routinesA3 DelimitersA4 Monitored faultsA5 Numerical equivalents of symbols
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureAtlas manualsAtlas Autocode :: ATLAS AUTOCODE REFERENCE MANUAL
ACLLiteratureAtlas manualsAtlas Autocode :: ATLAS AUTOCODE REFERENCE MANUAL
ACL ACD C&A INF CCD CISD Archives
Further reading

Preface
Contents
1 Introduction
2 The basic language
3 Storage and block structure of programs
4 Routines
5 Data I/O
6 Monitor printing and fault diagnosis
7 Presentation of complete programs
8 Complex arithmetic
9 Store Mapping
10 The use of machine instructions
11 Permanent routines
Appendices and indices
A1 Phrase structure notation
A2 Standard functions and permanent routines
A3 Delimiters
A4 Monitored faults
A5 Numerical equivalents of symbols

Appendix 4 List of Monitored Faults

Fault monitoring is very dependent on the form of the compiler used. We describe below the monitoring now given (1/3/65). It will probably change with time but all changes will be designed to give the maximum information

COMPILING TIME FAULTS

1. Faults due to [NAME]'s not having been declared.

NAME[NAME]NOT SET
SWITCH[NAME]NOT SET

2. Faults, found in arithmetical instructions, which give special indications but which are most often caused by [NAME]'s not being declared at the current level. These special indications arise when the [NAME]'s appear in the level above.

NAME[NAME]CANNOT APPEAR ON L.H.S.
SWITCH[NAME] IN EXPR
ROUTINE[NAME] IN EXPR
CALL FOR ADDR OF NON-VARIABLE
CALL FOR CONTROL NO OF NON-ROUTINE[NAME]

3. Arithmetic faults.

COMPLEX[NAME] IN EXPR
i IN EXPR
REAL[NAME] IN EXPR
REAL CONST IN INTEGER EXPR
CALL FOR DIM OF NON-ARRAY NAME
CALL FOR BOUNDS OF NON-ARRAY NAME
NAME[NAME]HAS WRONG NUMBER OF PARAMETERS

(This may be due either to the wrong number of parameters appearing or to the omission of a multiplication sign before a left bracket)

4. Faults found at the end of each block or routine.

LABEL [N] NOT SET           There is a reference to label[N] or
CASE [N] NOT SET            a case [N] which has not been set
NO LABELS SET
TOO FEW REPEATS            cycle's do not match repeat's

5. Other faults.

AP FAULT                    An actual parameter fault:the call
                            sequence is not consistent with the
                            routine spec
FP FAULT                    A formal parameter fault: the routine
                            heading is not consistent with the
                            routine spec.
LABEL[N]SET TWICE           Two or more instructions
CASE[N] SET TWICE           have been given the same
SWITCH[NAME]SET TWICE       label
NAME[NAME]SET TWICE         The name has been used for more than
                            one purpose at a given textual level

SWITCH[NAME]OUT OF RANGE    A label[NAME]([N]) appears where [N]
                            lies outside the declared range of
                            the switch[NAME]

SWITCH[NAME]OUT OF RANGE    A label[NAME]([N]) appears where [N]
                            lies outside the declared range of
                            the switch[NAME]

TOO MANY REPEATS            Too many repeat's in a block or routine

[NAME] =ST NOT VALID        The [NAME] is non-local

RESULT OUT OF CONTEXT       A result = [EXPR] statement appears in a
                            routine other than a function or map
                            routine

NON-INTEGER CYCLE VARIABLE The controlled variable is not an integer

RUN TIME FAULTS

1. The following faults are monitored at run time. Normally they cause the program to be terminated but it may be restarted by a fault instruction. The relevant fault numbers appear in the tables below. For those numbers not appearing, reference should be made to the ABL Manual

DIV OVERFLOW                      Division by 0 or a non-standard number  fault 1
EXP OVERFLOW                      Exponent overflow                       fault 2
SQRT -VE                          Sqrt of a negative argument             fault 5
LOG -VE                           Log of a negative argument              fault 6
INV TRIG FN OUT OF RANGE          In inverse trig function e.g.,          fault 8
                                  arcsin when the argument is not
                                  within range (-1,+1)
INPUT ENDED                       Insufficient data so that a read        fault 9
                                  instruction effectively reads over
                                  the end of the data tape
SPURIOUS CHARACTER IN DATA        Spurious character (i.e. NOT            fault 14
                                  a decimal digit, point, sign,
                                  or α) appears in data.
MORE THAN 3 SYMBOLS IN POSITION                                           fault 15
                                  A compound character formed from
                                  more than 3 superimposed characters
                                  has been encounted in textual data.
REAL QUANTITY INSTEAD OF INTEGER IN DATA                                  fault 16
FAULT IN COMPLEX DATA             the complex data is not punched         fault 17
                                  according to the conventions of Section 8
         

2. Faults which indicate programming errors but which always cause the program to terminate

INPUT NOT DEFINED               An input or output channel has been selected
OUTPUT NOT DEFINED              which is not mentioned in the Job Description
ALL TESTS FAIL                  All conditions in a test instruction fail
SWITCH VARIABLE NOT SET         Refers to a multiway switch instruction
                                ->[NAME]([EXPR])
                                where the value of [EXPR] is out of range
                                or corresponds to a missing label.
ARRAY DIMENSIONS NOT +VE        Refers to a bound pair (L;U) where U-L+1≤0.
NON-INTEGRAL CYCLE              Refers to the check carried out immediately
                                prior to the execution of a cycle
CALLS FOR NON-EXISTENT ROUTINE  Occurs when the routine and a specification
                                are not at the same level, or the former
                                is missing.
DIMENSION FAULT                 Occurs when a matrix routine is called
                                using parameters which are not matrices or
                                are incompatible.
ARRAY SUBSCRIPT OUT OF BOUNDS   Occurs when compile array bound check is
                                used and the subscripts are not within
                                the right bounds.

3. Faults which can arise because of accessing array elements outside the bounds given in the declaration e.g. A(10,3) when A had been declared A(1:3,1:10). It the immediate cause is not obvious the compile array bound check should be used. There are a number of indications such as

SV OPERAND
ILLEGAL BLOCK
⇑ 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