This directory contains a set of Algol 60 validation tests, which were kindly provided by Mr Brian Wichmann , one of the authors of the Modified Report on Algol 60. The following files are included in this directory: README The file you are reading. test.tar.gz Original validation tests. The hardware representation corresponds to the Whetstone and Kidsgrove Algol translators implemented on the KDF9 computer. For more details see: Randell, B. and Russell, L. J. "Algol 60 Implementation" Academic Press, London, 1964. report.pdf The report "Some validation tests for Algol 60 compiler" by Brian Wichmann. test001.alg, ..., test130.alg The validation tests modified to be used with GNU Marst. The modification was merely to change all main symbols to the Marst hardware representation. test055.dat Input data for test 55. listing.txt Listing containing all the validation test running with Marst 2.6 and GCC 3.4.4. All the tests were passed successfully with the following exceptions. Test 16 is not relevant, because Marst expects string literals to be coded as in C. (Note that this is the only difference from the syntax of the reference language.) Test 42 was not passed, because Marst does not allow array dimension to be greater than 9. Test 75 was not passed, because no input data was provided. Test 87 was not passed, because Marst implements the for operator as defined in the Modified Report: 4.6.4.2. Step-until element If A, B and C are arithmetic expressions then for V := A step B until C do S is equivalent to begin Theta; V := A; Gamma:Theta := B; if (V - C) * sign(Theta) <= 0 then begin S; V := V + Theta; go to Gamma; end end that assumes that the step value B is evaluated once before enter to the loop. However, Mr David Hill, one of the authors of the Modified Report, informed me that the Computer Journal version is not the final word. In particular, he said: "There was a further development concerning a change in the interpretation of the step-until element (para 4.6.4.2). It was annoying that we got this right originally but, when the draft went out for comment, we got one that caused us to alter it. After publication more comments came in that caused us to revert to the earlier version. This is explained in Computer Journal, 1978, 21, 282." "The first of these was included in the 1981 Netherlands Standard and the 1984 International Standard (ISO 1538-1984, now withdrawn). The first, and a slightly different version of the second, in the 1982 Russian Standard (in Russian)." In other word, paragraph 4.6.4.2 of the Modified Report was replaced by the following: 4.6.4.2. Step-until element If A, B and C are arithmetic expressions then for V := A step B until C do S is equivalent to begin Theta; V := A; Theta := B; Gamma:if (V - C) * sign(Theta) <= 0 then begin S; Theta := B; V := V + Theta; go to Gamma; end end that assumes that the step value B should be re-evaluated every time on execution of the loop. Andrew Makhorin, the author and maintainer of GNU Marst