[comp.lang.pascal] Is there any ISO PASCAL other than level 0 ?

PROLO%SBU.UFRGS.ANRS.BR@uicvm.uic.edu (10/29/90)

        I am trying to get in hands the standard ISO IS 7185 for PASCAL. For
the moment I have read many times about the so called "level 0" and got a
question on whether is there another level. IS there such ?? And if so, what
are the differences between level 0 and the others ??
        Thanks for your attention, Carlos Augusto Prolo

reagan@hiyall.enet.dec.com (John R. Reagan) (10/30/90)

In article <24878@adm.BRL.MIL>, PROLO%SBU.UFRGS.ANRS.BR@uicvm.uic.edu writes...
> 
>        I am trying to get in hands the standard ISO IS 7185 for PASCAL. For
>the moment I have read many times about the so called "level 0" and got a
>question on whether is there another level. IS there such ?? And if so, what
>are the differences between level 0 and the others ??

You can order ISO 7185 from ISO or BSI, etc.  ISO 7185 defines two
levels: Level 0 and Level 1.  The only difference is conformant
arrays.  They are included in Level 1, but not in Level 0.

---
John Reagan
Digital Equipment Corporation
reagan@hiyall.enet.dec.com
Disclaimer:  The opinions and statements expressed by me are not
             necessarily those of Digital Equipment Corporation.
---

dat0@rimfaxe.diku.dk (Dat-0 undervisningsassistent) (10/30/90)

PROLO%SBU.UFRGS.ANRS.BR@uicvm.uic.edu writes:

>        I am trying to get in hands the standard ISO IS 7185 for PASCAL. For
>the moment I have read many times about the so called "level 0" and got a
>question on whether is there another level. IS there such ?? And if so, what
>are the differences between level 0 and the others ??

Yes. There are two levels of standard-Pascal - level 0 and level 1.
They differ in one thing only: level 1 implements conformant array
parameters, ie. the possibility for a procedure to take arrays of
different sizes as parameters. A procedure-heading using conformant arrays might look like this:

procedure multiply (var A : array[LoARo..HiARo : Positive;
			          LoACo..HiACo : Positive] : of integer;
		    var B : array[LoBRo..HiBRo : Positive;
			          LoBCo..HiBCo : Positive] : of integer;
		    var C : array[LoCRo..HiCRo : Positive;
			          LoCCo..HiCCo : Positive] : of integer);

As you see, this makes it possible to make a general procedure for
matrix-multiplication.

Kristian Damm Jensen (dat0@diku.dk)
Institute of datalogi, University of Copenhagen (DIKU)
Universitetsparken 1, DK-2100 Copenhagen \, Denmark