MODULE reverse; IMPORT Out, Strings; VAR s: ARRAY 12 + 1 OF CHAR; PROCEDURE Swap(VAR c, d: CHAR); VAR oldC: CHAR; BEGIN oldC := c; c := d; d := oldC END Swap; PROCEDURE Reverse(VAR s: ARRAY OF CHAR); VAR len, i: INTEGER; BEGIN len := Strings.Length(s); FOR i := 0 TO len DIV 2 DO Swap(s[i], s[len - 1 - i]) END END Reverse; BEGIN s := "hello, world"; Reverse(s); Out.String(s); Out.Ln END reverse.