A BLISS programozási nyelv

Típusok, típuskonstrukciók



Elemi típusok

Diszkrét típusok

Típuskonstrukciók

Tömb típusok

Változó-deklarációk

Azonosítók

Betűkből, számjegyekből valamint aláhúzás és dollár jelekből álló karaktersorozatok, amelyek nem számjeggyel kezdődnek.

Permanens deklarációk

Permanens deklaráció esetén az adatterület a program indításakor lefoglalásra kerül, és az adatok az egész program futása során megmaradnak benne.

OWN név : típus INITIAL ( kezdőérték ) - egy blokkra lokális változót deklarál adott típussal (alapértelmezett LONG) és opcionálisan kezdőértékkel, amit a változó a blokk első futásakor vesz fel.

Példa:

ROUTINE KILO = BEGIN OWN X : INITIAL ( 0 ); X = .X + 1; IF .X LEQ 1000 THEN 1 ELSE 0 END;

GLOBAL név : típus INITIAL ( kezdőérték ) - hasonló az előzőhöz, de az itt deklarált változó más blokkokban is látható (explicit deklaráció mellett).

FORWARD név : típus INITIAL ( kezdőérték ) - előre deklarál egy változót, ami később OWN-ként vagy GLOBAL-ként deklarálásra kerül.

Példa:

FORWARD Y; OWN X : INITIAL ( Y ), Y : INITIAL ( X );

EXTERNAL név : típus INITIAL ( kezdőérték ) - egy másik blokkban GLOBAL-ként deklarált változót az aktuális blokkban láthatóvá tesz

Ideiglenes deklarációk

Ideiglenes deklaráció esetén az adatterület csakis a blokk futása alatt van lefoglalva, blokkból való kilépéskor a benne lévő adatok is elveszhetnek

LOCAL név : típus INITIAL ( kezdőérték ) - egy blokkra lokális változót deklarál adott típussal (alapértelmezett LONG) és opcionálisan kezdőértékkel, amit a változó a blokk minden futásakor felvesz.

REGISTERnév = regiszterszám : típus INITIAL ( kezdőérték ) - a LOCAL-hoz hasonló, de a változó egy előre meghatározott gépi regiszterben fog helyet foglalni. Ha a regiszter száma nincs megadva, a fordító választ egy regisztert.

Példa:

REGISTER STATUS = 5 : BITVECTOR [ 10 ], BETA;
GLOBAL REGISTERnév = regiszterszám : típus INITIAL ( kezdőérték ) - az előzőhöz hasonló, de egy, a blokkból hívott rutin is hozzáférhet a változóhoz, ha abban szerepel ugyanez a deklaráció EXTERNAL-ként. EXTERNAL REGISTER név = regiszterszám : típus INITIAL ( kezdőérték ) - az előző párja a hívott rutinban. MAP név : típus - egy már deklarált változónak változtatja meg az attribútumait (pl. a típusát).

Kifejezések

Elsődleges kifejezések

Numerikus literálok
Példák:

Karakterfüzér-literálok
Példák:

Aritmetikai kifejezések

Operátor kifejezések

Beépített függvények:

Struktúra hivatkozások:

X=.A [ .I ] TABLE [ Q ( .X + 2 ) + 3 ] = 5 F ( ALPHA [ FIELDNAME, .J - 1 ] )