Initial revision
This commit is contained in:
752
doc/val.doc
Normal file
752
doc/val.doc
Normal file
@@ -0,0 +1,752 @@
|
||||
.ll 72
|
||||
.wh 0 hd
|
||||
.wh 60 fo
|
||||
.de hd
|
||||
'sp 5
|
||||
..
|
||||
.de fo
|
||||
'bp
|
||||
..
|
||||
.tr ~
|
||||
. PARAGRAPH
|
||||
.de PP
|
||||
.sp
|
||||
..
|
||||
. CHAPTER
|
||||
.de CH
|
||||
.br
|
||||
.ne 15
|
||||
.sp 3
|
||||
.in 0
|
||||
\\fB\\$1\\fR
|
||||
.in 5
|
||||
.PP
|
||||
..
|
||||
. SUBCHAPTER
|
||||
.de SH
|
||||
.br
|
||||
.ne 10
|
||||
.sp
|
||||
.in 5
|
||||
\\fB\\$1\\fR
|
||||
.in 10
|
||||
.PP
|
||||
..
|
||||
. INDENT START
|
||||
.de IS
|
||||
.sp
|
||||
.in +5
|
||||
..
|
||||
. INDENT END
|
||||
.de IE
|
||||
.in -5
|
||||
.sp
|
||||
..
|
||||
. DOUBLE INDENT START
|
||||
.de DS
|
||||
.sp
|
||||
.in +5
|
||||
.ll -5
|
||||
..
|
||||
. DOUBLE INDENT END
|
||||
.de DE
|
||||
.ll +5
|
||||
.in -5
|
||||
.sp
|
||||
..
|
||||
. EQUATION START
|
||||
.de EQ
|
||||
.sp
|
||||
.nf
|
||||
..
|
||||
. EQUATION END
|
||||
.de EN
|
||||
.fi
|
||||
.sp
|
||||
..
|
||||
. TEST
|
||||
.de TT
|
||||
.ti -5
|
||||
Test~\\$1:~
|
||||
.br
|
||||
..
|
||||
. IMPLEMENTATION 1
|
||||
.de I1
|
||||
.br
|
||||
Implementation~1:
|
||||
..
|
||||
. IMPLEMENTATION 2
|
||||
.de I2
|
||||
.br
|
||||
Implementation~2:
|
||||
..
|
||||
.de CS
|
||||
.br
|
||||
~-~\\
|
||||
..
|
||||
.br
|
||||
.fi
|
||||
.sp 5
|
||||
.ce
|
||||
\fBPascal Validation Suite Report\fR
|
||||
.CH "Pascal processor identification"
|
||||
The ACK-Pascal compiler produces code for an EM machine
|
||||
as defined in [1].
|
||||
It is up to the implementor of the EM machine whether errors like
|
||||
integer overflow, undefined operand and range bound error are recognized or not.
|
||||
Therefore it depends on the EM machine implementation whether these errors
|
||||
are recognized in Pascal programs or not.
|
||||
The validation suite results of all known implementations are given.
|
||||
.PP
|
||||
There does not (yet) exist a hardware EM machine.
|
||||
Therefore, EM programs must be interpreted, or translated into
|
||||
instructions for a target machine.
|
||||
The following implementations currently exist:
|
||||
.IS
|
||||
.I1
|
||||
an interpreter running on a PDP-11 (using UNIX).
|
||||
The normal mode of operation for this interpreter is to check
|
||||
for undefined integers, overflow, range errors etc.
|
||||
.sp
|
||||
.I2
|
||||
a translator into PDP-11 instructions (using UNIX).
|
||||
Less checks are performed than in the interpreter, because the translator
|
||||
is intended to speed up the execution of well-debugged programs.
|
||||
.IE
|
||||
.CH "Test Conditions"
|
||||
Tester: E.G. Keizer
|
||||
.br
|
||||
Date: October 1983
|
||||
.br
|
||||
Validation Suite version: 3.0
|
||||
.PP
|
||||
The final test run is made with a slightly
|
||||
modified validation suite.
|
||||
.SH "Erroneous programs"
|
||||
Some test did not conform to the standard proposal of February 1979.
|
||||
It is this version of the standard proposal that is used
|
||||
by the authors of the validation suite.
|
||||
.IS
|
||||
.TT 6.6.3.7-4
|
||||
The semicolon between high and integer on line 17 is replaced
|
||||
by a colon.
|
||||
.sp
|
||||
.TT 6.7.2.2-13
|
||||
The div operator on line 14 replaced by mod.
|
||||
.CH "Conformance tests"
|
||||
Number of tests passed = 150
|
||||
.br
|
||||
Number of tests failed = 6
|
||||
.SH "Details of failed tests"
|
||||
.IS
|
||||
.TT 6.1.2-1
|
||||
Character sequences starting with the 8 characters 'procedur'
|
||||
or 'function' are
|
||||
erroneously classified as the word-symbols 'procedure' and 'function'.
|
||||
.sp
|
||||
.TT 6.1.3-2
|
||||
Identifiers identical in the first eight characters, but
|
||||
differing in ninth or higher numbered characters are treated as
|
||||
identical.
|
||||
.sp
|
||||
.TT 6.5.1-1
|
||||
ACK-Pascal requires all formal program parameters to be
|
||||
declared with type \fIfile\fP.
|
||||
.sp
|
||||
.TT 6.6.6.5-1
|
||||
Gives run-time error eof seen at call to eoln.
|
||||
A have a hunch that this is a error in the suit.
|
||||
.sp
|
||||
.TT 6.6.4.1-1
|
||||
Redefining the names of some standard procedures leads to incorrect
|
||||
behaviour of the runtime system.
|
||||
In this case it crashes without a sensible error message.
|
||||
.sp
|
||||
.TT 6.9.3.5.1-1
|
||||
This test can not be translated by our compiler because two
|
||||
non-identical variables are used in the same block with the same first eight
|
||||
characters.
|
||||
The test passed after replacement of one of those names.
|
||||
.IE
|
||||
.CH "Deviance tests"
|
||||
Number of deviations correctly detected = 120
|
||||
.br
|
||||
Number of tests not detecting deviations = 20
|
||||
.SH "Details of deviations"
|
||||
The following tests are compiled without a proper error
|
||||
indication although they do
|
||||
not conform to the standard.
|
||||
.IS
|
||||
.TT 6.1.6-5
|
||||
ACK-Pascal allows labels in the range 0..32767.
|
||||
A warning is produced when testing for deviations from the
|
||||
standard.
|
||||
.sp
|
||||
.TT 6.1.8-5
|
||||
A missing space between a number and a word symbol is not
|
||||
detected.
|
||||
.sp
|
||||
.TT 6.2.2-8
|
||||
.TT 6.3-6
|
||||
.TT 6.4.1-3
|
||||
.TT 6.6.1-3
|
||||
.TT 6.6.1-4
|
||||
Undetected scope error. The scope of an identifier should start at the
|
||||
beginning of the block in which it is declared.
|
||||
In the ACK-Pascal compiler the scope starts just after the declaration,
|
||||
however.
|
||||
.sp
|
||||
.TT 6.4.3.3-7
|
||||
The values of fields from one variant are accessible from
|
||||
another variant.
|
||||
The correlation is exact.
|
||||
.sp
|
||||
.TT 6.6.3.3-4
|
||||
The passing as a variable parameter of the selector of a
|
||||
variant part is not detected.
|
||||
A runtime error is produced because the variant selector is not
|
||||
initialized.
|
||||
.sp
|
||||
.TT 6.8.2.4-2
|
||||
.TT 6.8.2.4-3
|
||||
.TT 6.8.2.4-4
|
||||
.TT 6.8.2.4-5
|
||||
.TT 6.8.2.4-6
|
||||
The ACK-Pascal compiler does not restrict the places from where
|
||||
you may jump to a label by means of a goto-statement.
|
||||
.sp
|
||||
.TT 6.8.3.9-5
|
||||
.TT 6.8.3.9-6
|
||||
.TT 6.8.3.9-7
|
||||
.TT 6.8.3.9-16
|
||||
There are no errors produced for assignments to a variable
|
||||
in use as control-variable of a for-statement.
|
||||
.TT 6.8.3.9-8
|
||||
.TT 6.8.3.9-9
|
||||
Use of a controlled variable after leaving the loop without
|
||||
intervening initialization is not detected.
|
||||
.IE
|
||||
.CH "Error handling"
|
||||
The results depend on the EM implementation.
|
||||
.sp
|
||||
Number of errors correctly detected =
|
||||
.in +5
|
||||
.I1
|
||||
32
|
||||
.I2
|
||||
17
|
||||
.in -5
|
||||
Number of errors not detected =
|
||||
.in +5
|
||||
.I1
|
||||
21
|
||||
.I2
|
||||
36
|
||||
.in -5
|
||||
Number of errors incorrectly detected =
|
||||
.in +5
|
||||
.I1
|
||||
2
|
||||
.I2
|
||||
2
|
||||
.in -5
|
||||
.SH "Details of errors not detected"
|
||||
The following test fails because the ACK-Pascal compiler only
|
||||
generates a warning that does not prevent to run the tests.
|
||||
.IS
|
||||
.TT 6.6.2-8
|
||||
A warning is produced if there is no assignment to a function-identifier.
|
||||
.IE
|
||||
With this test the ACK-Pascal compiler issues an error message for a legal
|
||||
construct not directly related to the error to be detected.
|
||||
.IS
|
||||
.TT 6.5.5-2
|
||||
Program does not compile.
|
||||
Buffer variable of text file is not allowed as variable
|
||||
parameter.
|
||||
.IE
|
||||
The following errors are not detected at all.
|
||||
.IS
|
||||
.TT 6.2.1-11
|
||||
.I2
|
||||
The use of an undefined integer is not caught as an error.
|
||||
.sp
|
||||
.TT 6.4.3.3-10
|
||||
.TT 6.4.3.3-11
|
||||
.TT 6.4.3.3-12
|
||||
.TT 6.4.3.3-13
|
||||
The notion of 'current variant' is not implemented, not even if a tagfield
|
||||
is present.
|
||||
.sp
|
||||
.TT 6.4.5-15
|
||||
.TT 6.4.6-9
|
||||
.TT 6.4.6-10
|
||||
.TT 6.4.6-11
|
||||
.TT 6.5.3.2-2
|
||||
.I2
|
||||
Subrange bounds are not checked.
|
||||
.sp
|
||||
.TT 6.4.6-12
|
||||
.TT 6.4.6-13
|
||||
.TT 6.7.2.4-4
|
||||
If the base-type of a set is a subrange, then the set elements are not checked
|
||||
against the bounds of the subrange.
|
||||
Only the host-type of this subrange-type is relevant for ACK-Pascal.
|
||||
.sp
|
||||
.TT 6.5.4-1
|
||||
.I2
|
||||
Nil pointers are not detected.
|
||||
.sp
|
||||
.TT 6.5.4-2
|
||||
.I2
|
||||
Undefined pointers are not detected.
|
||||
.sp
|
||||
.TT 6.5.5-3
|
||||
Changing the file position while the window is in use as actual variable
|
||||
parameter or as an element of the record variable list of a with-statement
|
||||
is not detected.
|
||||
.sp
|
||||
.TT 6.6.2-9
|
||||
An undefined function result is not detected,
|
||||
because it is never used in an expression.
|
||||
.sp
|
||||
.TT 6.6.5.3-6
|
||||
.TT 6.6.5.3-7
|
||||
Disposing a variable while it is in use as actual variable parameter or
|
||||
as an element of the record variable list of a with-statement is not detected.
|
||||
.sp
|
||||
.TT 6.6.5.3-8
|
||||
.TT 6.6.5.3-9
|
||||
.TT 6.6.5.3-10
|
||||
It is not detected that a record variable, created with the variant form
|
||||
of new, is used as an operand in an expression or as the variable in an
|
||||
assignment or as an actual value parameter.
|
||||
.sp
|
||||
.TT 6.6.5.3-11
|
||||
Use of a variable that is not reinitialized after a dispose is
|
||||
not detected.
|
||||
.sp
|
||||
.TT 6.6.6.4-4
|
||||
.TT 6.6.6.4-5
|
||||
.TT 6.6.6.4-7
|
||||
.I2
|
||||
There are no range checks for pred, succ and chr.
|
||||
.sp
|
||||
.TT 6.6.6.5-6
|
||||
ACK-Pascal considers a rewrite of a file as a defining
|
||||
occurence.
|
||||
.sp
|
||||
.TT 6.7.2.2-8
|
||||
.TT 6.7.2.2-9
|
||||
.TT 6.7.2.2-10
|
||||
.TT 6.7.2.2-12
|
||||
.I2
|
||||
Division by 0 or integer overflow is not detected.
|
||||
.sp
|
||||
.TT 6.8.3.9-18
|
||||
The use of the some control variable in two nested for
|
||||
statements in not detected.
|
||||
.sp
|
||||
.TT 6.8.3.9-19
|
||||
Access of a control variable after leaving the loop results in
|
||||
the final-value, although an error should be produced.
|
||||
.sp
|
||||
.TT 6.9.3.2-3
|
||||
The program stops with a file not open error.
|
||||
The rewrite before the write is missing in the program.
|
||||
.sp
|
||||
.TT 6.9.3.2-4
|
||||
.TT 6.9.3.2-5
|
||||
Illegal FracDigits values are not detected.
|
||||
.CH "Implementation dependence"
|
||||
Number of tests run = 14
|
||||
.br
|
||||
Number of tests incorrectly handled = 0
|
||||
.SH "Details of implementation dependence"
|
||||
.IS
|
||||
.TT 6.1.9-5
|
||||
Alternate comment delimiters are implemented
|
||||
.sp
|
||||
.TT 6.1.9-6
|
||||
The equivalent symbols @ for ^, (. for [ and .) for ] are not
|
||||
implemented.
|
||||
.sp
|
||||
.TT 6.4.2.2-10
|
||||
Maxint = 32767
|
||||
.sp
|
||||
.TT 6.4.3.4-5
|
||||
Only elements with non-negative ordinal value are allowed in sets.
|
||||
.sp
|
||||
.TT 6.6.6.1-1
|
||||
Standard procedures and functions are not allowed as parameters.
|
||||
.sp
|
||||
.TT 6.6.6.2-11
|
||||
Details of the machine characteristics regarding real numbers:
|
||||
.IS
|
||||
.nf
|
||||
beta = 2
|
||||
t = 56
|
||||
rnd = 1
|
||||
ngrd = 0
|
||||
machep = -56
|
||||
negep = -56
|
||||
iexp = 8
|
||||
minexp = -128
|
||||
maxexp = 127
|
||||
eps = 1.387779e-17
|
||||
epsneg = 1.387779e-17
|
||||
xmin = 2.938736e-39
|
||||
xmax = 1.701412e+38
|
||||
.fi
|
||||
.IE
|
||||
.sp
|
||||
.TT 6.7.2.3-3
|
||||
.TT 6.7.2.3-4
|
||||
All operands of boolean expressions are evaluated.
|
||||
.sp
|
||||
.TT 6.8.2.2-1
|
||||
.TT 6.8.2.2-2
|
||||
The expression in an assignment statement is evaluated
|
||||
before the variable selection if this involves pointer
|
||||
dereferencing or array indexing.
|
||||
.sp
|
||||
.TT 6.8.2.3-2
|
||||
Actual parameters are evaluated in reverse order.
|
||||
.sp
|
||||
.TT 6.9.3.2-6
|
||||
The default width for integer, Boolean and real are 6, 5 and 13.
|
||||
.sp
|
||||
.TT 6.9.3.5.1-2
|
||||
The number of digits written in an exponent is 2.
|
||||
.sp
|
||||
.TT 6.9.3.6-1
|
||||
The representations of true and false are (~true) and (false).
|
||||
The parenthesis serve to indicate width.
|
||||
.IE
|
||||
.CH "Quality measurement"
|
||||
Number of tests run = 60
|
||||
.br
|
||||
Number of tests handled incorrectly = 1
|
||||
.SH "Results of tests"
|
||||
Several test perform operations on reals on indicate the error
|
||||
introduced by these operations.
|
||||
For each of these tests the following two quality measures are extracted:
|
||||
.sp
|
||||
.in +5
|
||||
maxRE:~~maximum relative error
|
||||
.br
|
||||
rmsRE:~~root-mean-square relative error
|
||||
.in -5
|
||||
.sp 2
|
||||
.IS
|
||||
.TT 1.2-1
|
||||
.I1
|
||||
25 thousand Whetstone instructions per second.
|
||||
.I2
|
||||
169 thousand Whetstone instructions per second.
|
||||
.sp
|
||||
.TT 1.2-2
|
||||
The value of (TRUEACC-ACC)*2^56/100000 is 1.4 .
|
||||
This is well within the bounds specified in [3].
|
||||
.br
|
||||
The GAMM measure is:
|
||||
.I1
|
||||
238 microseconds
|
||||
.I2
|
||||
26.3 microseconds.
|
||||
.sp
|
||||
.TT 1.2-3
|
||||
The number of procedure calls calculated in this test exceeds
|
||||
the maximum integer value.
|
||||
The program stops indicating overflow.
|
||||
.sp
|
||||
.TT 6.1.3-3
|
||||
The number of significant characters for identifiers is 8.
|
||||
.sp
|
||||
.TT 6.1.5-8
|
||||
There is no maximum to the line length.
|
||||
.sp
|
||||
.TT 6.1.5-9
|
||||
The error message "too many digits" is given for numbers larger
|
||||
than maxint.
|
||||
.sp
|
||||
.TT 6.1.5-10
|
||||
.TT 6.1.5-11
|
||||
.TT 6.1.5-12
|
||||
Normal values are allowed for real constants and variables.
|
||||
.sp
|
||||
.TT 6.1.7-14
|
||||
A reasonably large number of strings is allowed.
|
||||
.sp
|
||||
.TT 6.1.8-6
|
||||
No warning is given for possibly unclosed comments.
|
||||
.sp
|
||||
.TT 6.2.1-12
|
||||
.TT 6.2.1-13
|
||||
.TT 6.2.1-14
|
||||
.TT 6.2.1-15
|
||||
.TT 6.5.1-2
|
||||
Large lists of declarations are possible in each block.
|
||||
.sp
|
||||
.TT 6.4.3.2-6
|
||||
An 'array[integer] of' is not allowed.
|
||||
.sp
|
||||
.TT 6.4.3.2-7
|
||||
.TT 6.4.3.2-8
|
||||
Large values are allowed for arrays and indices.
|
||||
.sp
|
||||
.TT 6.4.3.3-14
|
||||
Large amounts of case-constant values are allowed in variants.
|
||||
.sp
|
||||
.TT 6.4.3.3-15
|
||||
Large amounts of record sections can appear in the fixed part of
|
||||
a record.
|
||||
.sp
|
||||
.TT 6.4.3.3-16
|
||||
Large amounts of variants are allowed in a record.
|
||||
.TT 6.4.3.4-4
|
||||
Size and speed of Warshall's algorithm depend on the
|
||||
implementation of EM:
|
||||
.IS
|
||||
.I1
|
||||
.br
|
||||
size: 122 bytes
|
||||
.br
|
||||
speed: 5.2 seconds
|
||||
.sp
|
||||
.I2
|
||||
.br
|
||||
size: 196 bytes
|
||||
.br
|
||||
speed: 0.7 seconds
|
||||
.IE
|
||||
.TT 6.5.3.2-3
|
||||
Deep nesting of array indices is allowed.
|
||||
.sp
|
||||
.TT 6.5.3.2-4
|
||||
.TT 6.5.3.2-5
|
||||
Arrays can have at least 8 dimensions.
|
||||
.sp
|
||||
.TT 6.6.1-8
|
||||
Deep static nesting of procedure is allowed.
|
||||
.sp
|
||||
.TT 6.6.3.1-6
|
||||
Large amounts of formal parameters are allowed.
|
||||
.sp
|
||||
.TT 6.6.5.3-12
|
||||
Dispose is fully implemented.
|
||||
.sp
|
||||
.TT 6.6.6.2-6
|
||||
Test sqrt(x): no errors.
|
||||
The error is within acceptable bounds.
|
||||
.in +5
|
||||
maxRE:~~2~**~-55.50
|
||||
.br
|
||||
rmsRE:~~2~**~-57.53
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.6.6.2-7
|
||||
Test arctan(x): may cause underflow or overflow errors.
|
||||
The error is within acceptable bounds.
|
||||
.in +5
|
||||
.br
|
||||
maxRE:~~2~**~-55.00
|
||||
.br
|
||||
rmsRE:~~2~**~-56.36
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.6.6.2-8
|
||||
Test exp(x): may cause underflow or overflow errors.
|
||||
The error is not within acceptable bounds.
|
||||
.in +5
|
||||
maxRE:~~2~**~-50.03
|
||||
.br
|
||||
rmsRE:~~2~**~-51.03
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.6.6.2-9
|
||||
Test sin(x): may cause underflow errors.
|
||||
The error is not within acceptable bounds.
|
||||
.in +5
|
||||
maxRE:~~2~**~-38.20
|
||||
.br
|
||||
rmsRE:~~2~**~-43.68
|
||||
.in -5
|
||||
.sp
|
||||
Test cos(x): may cause underflow errors.
|
||||
The error is not within acceptable bounds.
|
||||
.in +5
|
||||
maxRE:~~2~**~-41.33
|
||||
.br
|
||||
rmsRE:~~2~**~-46.62
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.6.6.2-10
|
||||
Test ln(x):
|
||||
The error is not within acceptable bounds.
|
||||
.in +5
|
||||
maxRE:~~2~**~-54.05
|
||||
.br
|
||||
rmsRE:~~2~**~-55.77
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.7.1-3
|
||||
.TT 6.7.1-4
|
||||
.TT 6.7.1-5
|
||||
Complex nested expressions are allowed.
|
||||
.sp
|
||||
.TT 6.7.2.2-14
|
||||
Test real division:
|
||||
The error is within acceptable bounds.
|
||||
.in +5
|
||||
maxRE:~~0
|
||||
.br
|
||||
rmsRE:~~0
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.7.2.2-15
|
||||
Operations of reals in the integer range are exact.
|
||||
.sp
|
||||
.TT 6.7.3-1
|
||||
.TT 6.8.3.2-1
|
||||
.TT 6.8.3.4-2
|
||||
.TT 6.8.3.5-15
|
||||
.TT 6.8.3.7-4
|
||||
.TT 6.8.3.8-3
|
||||
.TT 6.8.3.9-20
|
||||
.TT 6.8.3.10-7
|
||||
Static deep nesting of function calls,
|
||||
compound statements, if statements, case statements, repeat
|
||||
loops, while loops, for loops and with statements is possible.
|
||||
.sp
|
||||
.TT 6.8.3.2-2
|
||||
Large amounts of statements are allowed in a compound
|
||||
statement.
|
||||
.sp
|
||||
.TT 6.8.3.5-12
|
||||
The compiler requires case constants to be compatible with
|
||||
the case selector.
|
||||
.sp
|
||||
.TT 6.8.3.5-13
|
||||
.TT 6.8.3.5-14
|
||||
Large case statements are possible.
|
||||
.sp
|
||||
.TT 6.9-2
|
||||
Recursive IO on the same file is well-behaved.
|
||||
.sp
|
||||
.TT 6.9.1-6
|
||||
The reading of real values from a text file is done with
|
||||
sufficient accuracy.
|
||||
.in +5
|
||||
maxRE:~~2~**~-54.61
|
||||
.br
|
||||
rmsRE:~~2~**~-56.32
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.9.1-7
|
||||
.TT 6.9.2-2
|
||||
.TT 6.9.3-3
|
||||
.TT 6.9.4-2
|
||||
Read, readln, write and writeln may have large amounts of
|
||||
parameters.
|
||||
.sp
|
||||
.TT 6.9.1-8
|
||||
The loss of precision for reals written on a text file and read
|
||||
back is:
|
||||
.in +5
|
||||
maxRE:~~2~**~-53.95
|
||||
.br
|
||||
rmsRE:~~2~**~-55.90
|
||||
.in -5
|
||||
.sp
|
||||
.TT 6.9.3-2
|
||||
File IO buffers without trailing marker are correctly flushed.
|
||||
.sp
|
||||
.TT 6.9.3.5.2-2
|
||||
Reals are written with sufficient accuracy.
|
||||
.in +5
|
||||
maxRE:~~0
|
||||
.br
|
||||
rmsRE:~~0
|
||||
.in -5
|
||||
.IE
|
||||
.CH "Level 1 conformance tests"
|
||||
Number of test passed = 4
|
||||
.br
|
||||
Number of tests failed = 1
|
||||
.SH "Details of failed tests"
|
||||
.IS
|
||||
.TT 6.6.3.7-4
|
||||
An expression indicated by parenthesis whose
|
||||
value is a conformant array is not allowed.
|
||||
.IE
|
||||
.CH "Level 1 deviance tests"
|
||||
Number of deviations correctly detected = 4
|
||||
.br
|
||||
Number of tests not detecting deviations = 0
|
||||
.IE
|
||||
.CH "Level 1 error handling"
|
||||
The results depend on the EM implementation.
|
||||
.sp
|
||||
Number of errors correctly detected =
|
||||
.in +5
|
||||
.I1
|
||||
1
|
||||
.I2
|
||||
0
|
||||
.in -5
|
||||
Number of errors not detected =
|
||||
.in +5
|
||||
.I1
|
||||
0
|
||||
.I2
|
||||
1
|
||||
.in -5
|
||||
.SH "Details of errors not detected"
|
||||
.IS
|
||||
.TT 6.6.3.7-9
|
||||
.I2
|
||||
Subrange bounds are not checked.
|
||||
.IE
|
||||
.CH "Level 1 quality measurement"
|
||||
Number of tests run = 1
|
||||
.SH "Results of test"
|
||||
.IS
|
||||
.TT 6.6.3.7-10
|
||||
Large conformant arrays are allowed.
|
||||
.IE
|
||||
.CH "Extensions"
|
||||
Number of tests run = 3
|
||||
.SH Details of test failed
|
||||
.IS
|
||||
.TT 6.1.9-7
|
||||
The alternative relational operators are not allowed.
|
||||
.sp
|
||||
.TT 6.1.9-8
|
||||
The alternative symbols for colon, semicolon and assignment are
|
||||
not allowed.
|
||||
.sp
|
||||
.TT 6.8.3.5-16
|
||||
The otherwise selector in case statements is not allowed.
|
||||
.IE
|
||||
.CH "References"
|
||||
.ti -5
|
||||
[1]~~\
|
||||
A.S.Tanenbaum, E.G.Keizer, J.W.Stevenson, Hans van Staveren,
|
||||
"Description of a machine architecture for use with block structured
|
||||
languages",
|
||||
Informatica rapport IR-81.
|
||||
.ti -5
|
||||
[2]~~\
|
||||
ISO standard proposal ISO/TC97/SC5-N462, dated February 1979.
|
||||
The same proposal, in slightly modified form, can be found in:
|
||||
A.M.Addyman e.a., "A draft description of Pascal",
|
||||
Software, practice and experience, May 1979.
|
||||
An improved version, received March 1980,
|
||||
is followed as much as possible for the
|
||||
current ACK-Pascal.
|
||||
.ti -5
|
||||
[3]~~\
|
||||
B. A. Wichman and J du Croz,
|
||||
A program to calculate the GAMM measure, Computer Journal,
|
||||
November 1979.
|
||||
Reference in New Issue
Block a user