A BETA programozási nyelv

A minta



A minta fogalma

Más nyelvektől eltérően a BETA-ban az alapegység nem a kódblokk vagy az adatrekord, hanem a minta (pattern). A minta felépítése:

minta_neve : szuperminta_neve
(# <deklarációk listája> enter <paraméterek listája> do <akciók> exit <eredmények listája> #)

A név a minta azonosítására szolgál. Mintaöröklődés esetén megajuk a minta ősmintáját (szupermintáját). A (# és #) zárójel-pár által határolt részt objektum-deszkriptornak nevezzük. Ezen belül a deklarációs részben adhatjuk meg a minta belső változóit, vagy belső mintáit; az egyes deklarációkat pontosvesszővel választjuk el egymástól, az azonos típusú változókat összevonva is deklarálhatjuk (vesszőkkel tagolva). Az enter rész tartalmazza a bejövő paramétereket zárójelben, vesszőkkel felsorolva; ha csak egy bejövő paraméterünk van, a zárójel elhagyható. A do részben írhatjuk le a minta által elvégzett műveleteket. Az exit részben sorolhatjuk fel a visszatérési értékeket az enter részhez hasonlóan. A minta szinte bármely része elhagyható; legális - bár nem túl hasznos - minta a következő: my_pattern : (# #);

Az imént már említettük, de hangsúlyozandó: a minták egymásba ágyazhatóak.

Az alapján osztályozhatjuk a mintákat, hogy a fentiek közül mely részeket tartjuk meg, illetve hagyjuk el:

pi: @ (# exit 3.14 #);
c: @integer; add: (# a, b, result: @integer; enter (a,b) do a+b->result; exit result #); do (7,9)->add->c;

Lehetőség van egyedi minta létrehozására, ha nincs szükség egy osztályra, a következő módon:

my_object: @super_pattern (# ... #);

Ilyenkor csak egy ilyen mintájú változó fog létrejönni, méghozzá a @ jel miatt, így a "my_object" nem mintanév, hanem változónév.

A nyelv alapmintái

A nyelv alapmintái: Integer, Boolean, Char és Real. Ezek predefinit minták.

A Mjølner BETA Systemben van néhány megszorítás az alapminták használatára: A BETA egy nagyon általános nyelv, ez megnehezítheti a hatékony implementáció létrehozását. A fenti megszorításokat hatékonysági okok miatt vezették be, nincs logikai motivációjuk.

További predefinit minta (de nem alapminta) a shortInt és a text.

Alaposztály

Object: Ez olyan osztály, amelyből minden más osztály származtatható. Általában nem kell kiírni, automatikusan öröklődik.

Kontroll-struktúrák

Ezek olyan eljárásminták, amelyeket hagyományos értelemben utasításokként definiálnak. Ilyen például az if, for stb. (Vezérlési szerkezetek )