A Theta programozási nyelv

Bevezetés

Chapter 1
A Theta egy szekvenciális, erősen típusos, objektum orientált nyelv. Biztosítja a mechanizmusok elkülönítését a típus hierarchiától, valamint a specifikációktól, amelyek az új absztrakciók felületét specifikálják, és a kódtól, mely az implementációt tartalmazza, és támogatja a típusok és rutinok többszörös implementációját. Támogatja a modul-szerkezetet, így megoldható a implementáció részleteinek elrejtése, miközben az összefüggő részek mégis megoszthatják egymás között az implementáció-függő információkat. A Theta a CLU-ból származtatott nyelv, de tervezésére a Trellis/Owl, Modula-3, C++ és Emerald nyelvek is hatással voltak.

A Theta egy objektum-orientált nyelv, amit a Thor objektum-orientált adatbázis-kezelő rendszeren belüli használatra fejlesztettek ki. Az a követelmény, hogy a kód biztonságos környezetben, a Thor-on belül fut, lehetővé tette több jellegzetes elem befoglalását a nyelvbe, ilyenek az erős statikus típusellenőrzés, vagy az automatikus szemétgyűjtés (garbage collection).

A Theta egy könnyen kiterjeszthető nyelv, melyben a felhasználóknak lehetősége van definiálni és megvalósítani új, absztrakt típusokat és eljárásokat. Ezeket specifikációs részekben (_specifications_) kell definiálni, mely leírja az új absztrakció interfészét, de nem tartalmaz megkötést az implementáció részleteire; a típus-specifikáció definiálja a nevét és szignatúráját az új típus metódusainak. A típusok implementációját az osztályok (_classes_) tartalmazzák, és egy típusnak több implementációja is lehet. Az osztályok és rutinok implementációit modulokba (_modules_) szervezhetjük. A modulok biztosítják, hogy az objektumok és rutinok csak a publikus interfészükön keresztül érhetők el, de megengedi, hogy egymással kapcsolatban lévő kódrészletek között megosszunk implementáció-függő információkat.

 A Theta biztosítja a típus hierarchia, a paraméteres polimorfizmus és az öröklődés elkülönítését. A típus hierarchia lehetővé teszi hasonló tulajdonságokkal rendelkező típusokból álló típus családok definiálását, a típusoknak több szupertípusa is lehet. Az öröklődés elkülönül ettől a hierarchiától, így kapcsolódó típusoknak is lehet független implementációja, illetve nem rokon típusoknak is lehet összefüggő implementációja; csak az egyszeres öröklődés támogatott. A paraméteres polimorfizmus támogatja általános kódok írását függetlenül a típus hierarchiától, és nem szükséges az újrafordítás más-más paraméterezésnél.