-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 GNU Marst 2.6 -- Release information ************************************
Release date: Nov 16, 2007 GNU Marst is an Algol-to-C translator. It automatically translates programs written in the algorithmic language Algol 60 (Level 0) into the ANSI C programming language. In this release: Two bugs were fixed. The first bug was detected due to a test program provided by Leif Harcke <[EMAIL PROTECTED]>. It appeared in a context like follows: a[i] := i where identifier i was considered as the left part of the assignment statement (i.e. as if there were a[i] := i := ...) while it is a final expression in the right part. The second bug appeared if a switch designator was used before corresponding switch declaration. A set of 130 Algol 60 validation tests were added. These tests along with the report "Some validation tests for Algol 60 compiler" were kindly provided by Mr Brian Wichmann, one of the authors of the Modified Report on Algol 60. 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 <type of B> 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 <type of B> 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. For more details about the test set see file tests/README. See GNU Marst web page <http://www.gnu.org/software/marst/marst.html>. GNU Marst distribution can be ftp'ed from <ftp://ftp.gnu.org/gnu/marst/> or from some mirror ftp sites; see <http://www.gnu.org/order/ftp.html>. MD5 check-sum is the following: 2e69b7334b47b73315be5485e12307d1 *marst-2.6.tar.gz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (MingW32) iD8DBQFHPZ2O0XvyMFmB6BgRAr7yAJ9OXd3cWPsGfznRM0b8DdkFnokN/QCeODQo wMGcQb17e7SjeM9huod3dkY= =HA3d -----END PGP SIGNATURE----- _______________________________________________ GNU Announcement mailing list <info-gnu@gnu.org> http://lists.gnu.org/mailman/listinfo/info-gnu