A Pizza nyelv

Bevezetés

A Pizza fejlesztése abbamaradt, az utolsó kiadás 2002 január 3-ai dátummal szerepel (hivatalos weboldal).

2004 óta a J2SE 5.0 -val kezdődően a Sun Java implementációja már támogatja a paraméteres polimorfizmust. A szintaktika nagyjából ugyanaz, viszont a hivatalos verzió többet tud a Pizza által megvalósítotthoz képest (pl: super kulcsszó osztály paraméternél, megszorított polimorfizmus egynél több interfészre, stb...).

A Pizza a Java bővítése ami sok más kisebb projekttel együtt az EspressoGrinder projektből nőtte ki magát még a '90-es évek közepén. Az EspressoGrinder célja egy Java compiler írása volt. Ezt később felváltotta a Pizza compiler, ami kompatibilis a Java 1.0-val. A projekt tagjai együttműködtek Philip Wadlerrel is. A cél az volt, hogy a főleg modern programozási eszközökre vonatkozó akadémiai kutatásokat, modern programozási nyelvek tervezési technológiáit átültessék a gyakorlatba. A Pizza célja a Java előremozdítása olyan eszközökkel, mint:

Aki járatos a funkcionális programozásban, az tudja, hogy ezek mind-mind erről a területről jönnek. Wadler és barátai hajlamosak ráerőltetni a formalizmust és a matematikát más eszközökre is, és imádják a funkcionális programozást (Lásd MSL és a W3C XML Schema formalizációja, XML Query; talán Wadler skóciai háttere és a többi tag érdeklődése magyarázza a dolgot). Érdekes, hogy ezek az eszközök teljesen más gondolkodást igényelnek, mint amit az imperatív programozás során megszoktunk, és mégis egy imperatív objektum-orientált nyelvbe lettek beillesztve.

A Pizza jelenlegi állapotában kiforrott, stabilnak tekinthető. A nyelv nevének kiválasztásánál elsődleges volt, hogy az tetsszen a hackereknek. Eleinte nem tudták, hogy Java-n fog alapulni, ez későbbi döntés eredménye. Az eredeti cél az volt, hogy a Pizza kód JVM-en fusson. Mivel a Java és a JVM szoros kapcsolatban van, a Java lett az a közbülső nyelv, amire fordul a Pizza kód; a Java elég szép, tiszta, és ennél sokkal hatékonyabb megoldást ilyen feltételek mellett jelenleg nem lehet találni. Ezért a Pizza programok platformfüggetlenek (ahol van JVM, web browserek, speciális chipek) és a Java és Pizza kódok együtt tudnak működni. Ebből következik az is, hogy a Java részhalmaza lett a Pizza-nak.

A Pizza compiler Java nyelven íródott, 1.3.1 -es verziójú, vagy újabb JDK-val működik. Fordítani az alábbi paranccsal lehet (értelemszerűen módosítva a Pizza fordító és fordítandó .pizza állományok helyét ha szükséges):

java -jar pizza-1.1.jar *.pizza

Ez a paraméterként kapott .pizza fájlokat Java bájtkódra fordítja. A Pizza fordító a fordítást első lépésben Java nyelvre végzi, a -s paraméterrel megkérhetjük hogy a .class fájlok helyett .java fájlokat készítsen nekünk.

A futtatás során szükség van a Pizza programkönyvtárakra, tehát futtatáskor a classpath-ben elérhetőnek kell lenniük. Ezeket ugyanaz a .jar fájl tartalmazza, amelyben a fordító is szerepel.