Piet (programozási nyelv)
A Piet egy vizuális, ezoterikus programozási nyelv, ahol a programok absztrakt festménynek tűnnek. A nyelv 17, nagyjából Assembly szintű utasítást ismer, az adatokat stackben tárolja. A programnyelv nevét Piet Mondrianról, a geometrikus absztrakció képviselőjéről kapta. Tervezője, David Morgan-Mar (becenevén DangerMouse),[1] eredetileg Mondrian-nak szerette volna nevezni, de a név már foglalt volt. A színekA színkörA színkör 6 színre van felosztva: vörös (red), sárga (yellow), zöld (green), cián (cyan), kék (blue), magenta (magenta). A fekete és fehér nem része a színkörnek. Az egyéb színek használata implementációfüggő, az általános esetben a nem definiált színeket a fordító fehérként veszi figyelembe, tehát bárhol használhatóak, ahol a fehér is. A fényességA nyelv 3 féle fényerőt különböztet meg: fényes (light), normál (normal), sötét (dark). SzíntáblázatA színkörből és a fényerőből az alábbi 18+2 kombináció jöhet létre:
A program![]() A piet program a definiált színekből álló kompozíció. Maga a nyelv nem a blokkokból, hanem az egymást követő blokkok közötti változásból áll elő. A színkör és a fényerő változását is ciklikusan értelmezzük (azaz a lista utolsó eleme után újra jön az első). Ennek az eredménye, hogy a piet program meglehetősen látványos megjelenésű. A program végrehajtása tulajdonképpen egy sétának is tekinthető. A végrehajtást két mutató, a Direction Pointer (azaz irányjelző, DP) és a Codel Chooser (blokkválasztó, CC) teszi lehetővé. Az irányjelzőnek négy értéke lehet a négy lehetséges irány szerint (jobbra, le, balra, fel; az óramutató járása szerint), a blokkválasztó pedig a két kezet szimbolizálja, így két értéke van (bal kéz, jobb kéz). A színek és a fényesség ciklikus, így összesen 18 utasítás lehetséges. Ebből egy kiesik a változás hiánya miatt, tehát egy Piet program 17 féle parancsból állítható össze. A program alapegysége a codel, ami valójában egy pixelnyi területet jelképez. A program ugyanis pixelenként lép, azonban az egypixelnyi méretek általában nehezen észlelhetőek vizuálisan. A másik egység a színblokk, ami az azonos színű codelekből álló összefüggő tartomány. A codelek tehát négyzetes alakúak, a blokkok pedig egymással érintkező (tehát nem átlósan elhelyezkedő) codelekből álló, de tetszőleges alakú tartományok. A színblokkok maguk egy-egy egész számot jelképeznek, történetesen a blokkot alkotó codelek számát. Így egy Piet program ábrája egyszerre tartalmaz konstansokat és utasításokat egy egységbe zárva. Ezeket a blokkokat járja be az interpreter, meghatározott szabályok szerint:
Ha az interpreter eléri a kép szélét, határát, akkor a CC értékét felcseréljük. Ha így is határba ütközünk, akkor a DP értékét egy negyed fordulattal negatív irányba változtatjuk (azaz az óramutató járásával azonos irányban), és természetesen a CC értéke megint cserélődik. Összesen nyolc lépési lehetőség van, ha ennyiből a program nem tud továbblépni, a futásnak vége. A végrehajtás szempontjából a fekete és fehér blokkok speciális jelentéssel bírnak:
A Piet utasításaiA nyelvben a következő 17 utasítás szerepel:[2]
A veremA Piet minden értéket egész számként veremben (stack) tárol. Az adatok megfelelő utasításokkal karakteres formában, Unicode karakterekkel is kiírathatóak. A verem mérete és a túlcsordulás kezelése implementációfüggő. Ennek eredményeképpen a nyelvben nincs szükség változókra, azokat a verem adatai, a velük végzett műveleteket pedig a veremeljárások helyettesítik. Jegyzetek
ForrásokTovábbi információkKapcsolódó szócikkek |
Portal di Ensiklopedia Dunia