Az Emerald programozási nyelv

Bevezetés

Az Emerald programozási nyelvet azért tervezték és fejlesztették ki, hogy demonstrálja, hogy az objektumalapú programozási stílus milyen elegánsan és hatékonyan használható elosztott programozási környezetben is. Ugyanakkor az Emerald egy modern programozási nyelv, mely kiváló lehetőségeket biztosít az olyan mai nyelvekben már elvárt lehetőségekhez, mint az absztrakció vagy a polimorfizmus. Mivel a nyelvet alapvetően elosztott környezetekhez fejlesztették, az Emerald eszközöket biztosít objektumok lokációjának kezeléséhez, és a kivételkezelő mechanizmusát kiterjeszti az elosztott rendszerek részleges hibáiból történő helyreállításához is.

Annak ellenére, hogy az Emeraldot a modul-alapú, illetve az objektum-alapú nyelvek közé sorolják, számos vonásában mégis különbözik a hagyományos ilyen típusú nyelvektől. Az Adától és a Modula-2től eltérően a program alapvető egysége az objektum, mely úgy viselkedik, mint a Modula-2 modul vagy az Ada csomag dinamikus példánya. A C++-tól vagy a Smalltalktól eltérően az Emerald nem ad lehetőséget az osztály jelölésére, hanem objektumkonstruktorokat biztosít az objektumok futás-idejű létrehozásához, illetve absztrakt típusosságot az objektumok osztályozásához és összehasonlításához. Az Emerald objektumok természete leginkább a Smalltalk objektumaihoz hasonló, az objektumokhoz való hozzáférés operációkon keresztül történik, melyet más objektumok hívhatnak.

Korábbi tapasztalatok azt mutatták, hogy a programozási nyelvek tervezőinek választaniuk kell a statikus típusosság biztonságossága és hatékonysága, illetve a dinamikus típusosság rugalmassága között. Az Emerald statikus típusossága mégis a rugalmasságot is biztosítja köszönhetően az egyszerűen és hatékonyan implementált típus fogalmának, mely lehetővé teszi a futás-idejű ellenőrzést, a polimorfizmust, a beágyazott típusokat és az altípusosságot is. Az Emeraldban a típus nem más, mint az operációk és az ő szignatúrájuk gyűjteménye. Lényegében a típus is egy objektum.

Az Emerald az osztott alkalmazások programozásának támogatásához lehetővé teszi, hogy az objektumok hívása független legyen az ő helyüktől. Az ilyen helyfüggetlen objektumhívás lehetőséget nyújt a programozónak, hogy az elosztott rendszert úgy kezelje, mint egyetlen gépet.

Az Emerald nyelv fejlesztésében nagy szerepet játszottak a Smalltalk, az Argus nyelv és rendszer, illetve az Eden nyelv és rendszer használata során szerzett tapasztalatok.

Akik foglalkoznak vele:
Norman C. Hutchinson, Rajendra K. Raj, Andrew P. Black, Henry M. Levy és Eric Jul
Deparment of Computer Sience
University of Washington
Seattle, WA 98195