Minden konstansnak,
változónak, kifejezésnek egyértelműen meghatározható típusa van. Egy operandus
típusa azon lehetséges értékek halmaza, amely az operandushoz rendelhető.
TypeDefinitionPart = "type" TypeDefinition { TypeDefinition }.
TypeDefinition = TypeName "=" NewType ";".
TypeName = Name.
NewType = EnumeratedType | StructuredType.
A következő Típusdefiníció:
T = NT;
bevezeti a T jelölést az NT új típusra, amely az összes többi típustól különbözni fog.
Példák:
Egy egyszerű típus egy véges, rendezett értékkészlet (elemei: egyszerű értékek). Az egyszerű típusok: egész, logikai, karakter és felsorolási típusok. Egy egyszerű típus értékei leképezhetőek bijektív módon az egész számok egymást követő számokból álló részhalmazára. Ezen részhalmaz elemeit ordinális számoknak nevezzük. Egy egyszerű értékhez tartozó ordinális számot így jelöljük:
integer(x)
Egész típus:
Az integer típusnév az egész számoknak egy rendszerfüggő intervallumát jelöli. Az x egészhez tartozó ordinális szám önmaga, azaz
integer(x) = x
Logikai típus:
A boolean típusnév az igaz (true) és hamis (false) igazságértékeket jelöli.Az ezekhez tartozó ordinális számok:
integer(false) = 0 integer(true) = 1
Karakter típus:
A char típusnév az ASCII karakterkészletet jelöli.
Felsorolási típusok
EnumeratedType = "(" ConstantName { "," ConstantName } ")".
ConstantName = Name.
A következõ típusdefiníció:
T = (c0, c1, ..., cn);
egy T-nek nevezett felsorolási típust definiál. A típus bevezeti a c0, c1,..., cn konstans neveket a T értekeinek jelölésére.
Ezen értékekhez tartozó ordinális számok:
integer(c0) = 0 integer(c1) = 1 ... integer(cn) = n
Példa:
StructuredType = ArrayType | RecordType | PortType.
Egy T összetett típust más típusok felhasználásával definiálunk.
Vektor típus
ArrayType = "array" "[" IndexRange "]" "of" ElementType.
IndexRange = LowerBound ".." UpperBound.
LowerBound = SimpleConstant.
UpperBound = SimpleConstant.
ElementType = TypeName.
A következõ típus definíció:
T = array [min..max] of E;
egy T-nek nevezett vektor típust definiál. Ennek a típusnak minden értéke E értékeinek egy max - min + 1 hosszú sorozata. Ezen sorozat hossza a vektor |T| hossza. A sorozat elemeit vektor elemeknek nevezzük. Minden vektor elemnek van egy indexe, amely a vektor értékben meghatározott pozícióját adja meg. Ezen indexek rendre
min, min+1, ... , max
Tehát egy T típusú változó egy E típusú |T| hosszú sorozatot reprezentál. Az index intervallumot két konstanssal kell definiálni (min, max), melyeknek a típusa meg kell, hogy egyezzen, továbbá hogy fennálljon: min <= max. E egy ismert típusnak a neve kell, hogy legyen.
Azt a vektor típust, amelyben az elemek típusa karakter, sztring típusnak nevezzük. Egy sztring típus konkrét értékeit sztringeknek nevezzük, mely értékek egy rendezett halmazt alkotnak. Minden más vektor típus értékei rendezetlen halmazt alkotnak.
Példák