Az Opal programozási nyelv

Bevezetés

A múltban a programozásban a tradicionális stílus az imperatív programozás dominált. A programozási nyelvek, mint a Fortran, Cobol, Algol, Pascal, C, és némely Assembler tipikus példái az imperatív programozás paradigmájának.

Ezek a nyelvek a jól ismert Neumann-elvű számítógép igényeihez igazodnak. E szerint a programozásnak a feladata, a probléma megoldásának struktúráját illesztése a számítógép belső felépítéséhez.

1978 elején J. Backus egy cikkében föltette a kérdést, hogy "Lehet -e programozni elszakadva a Neumann stílustól?" A meginduló kutatások számos alternatívát fejlesztettek ki. Néhány ezen eredmények közül alapszavakká váltak, mint a 'logikai programozás' (pl. Prolog), 'objektum orientált programozás' (pl. Smalltalk, C++), 'funkcionális programozás' (pl: LISP, ML, HOPE, Haskel).

Az OPAL programozási nyelv a modern funkcionális nyelvek közé tartozik, mint az ML, HOPE és a Miranda. Az OPAL egy tisztán funkcionális nyelv imperatív maradványok nélkül. Ezen kívül tartalmazza az ú.n. 'higher-order' funkciókat, támogatja a lambda absztrakciót és a minta illesztést. Az OPAL kényelmes lehetőséget ad a modularizációra és erős, ortogonális típus rendszert ad, amely magában foglalja a 'generic' funkciókat (a paraméterezhető struktúrák realizációjaként). Ezenkívül támogatja a nevek túlterhelését, az objektum deklarációt, a nemdeterminisztikus elágazásokat, valamint egy új kezelésmódot az infix- és postfix- operátoroknak.

Az OPAL terv részeként fontos szerepet játszott a generált kód sebessége. Bizonyos speciális feladatok eseten a kód sebessége lényegesen jobb volt, mint egy kézzel írt C kód. Viszont minden esetben a generált kód nagyságrenddel gyorsabb lett mint az a tradicionális funkcionális nyelvek kódja. Sebesség tekintetében az ML és a HOPE közé sorolható.