Upload failed. Maybe wrong permissions?

User Tools

Site Tools




Furcsa programnyelvek

Kis blogom előző írása olyan programnyelvekről szólt, amiket abból a célból hoztak létre, hogy megkönnyítsék az ember és a számítógép kapcsolattartását. Éppen ezért nem említettem a világtörténelem legősibb programnyelvét, a gépi kódot, amely nagyjából így néz ki: 11100010010101100010010010010010100101001010100101010100101010100101110110000011110101001011101010101011010010101101010101
    Ez itt nem értelmes program, csak nyomogattam a két billentyűt, de az értelmes programok is így néznek ki. A világ minden programja így néz ki „belül”, hiszen a számítógépek mindmáig csak egyeseket és nullákat ismernek, úgyhogy végső soron minden programot ezekre kell lefordítani, hogy a gép végrehajthassa. Mindazonáltal emberi szemszögből a gépi kód elég furcsa programnyelv.
  De vannak olyan programnyelvek is, amiket direkt tettek furcsává. A programozók is emberek, szeretnek játszani. És a játékaikból néha érdekes dolgok sülnek ki.

1898-2.jpgAmit itt lát az olvasó, az egy festmény és egy program. A festmény Piet Mondrian Kompozíció sárgával, kékkel és pirossal című festménye, készült 1921-ben, olaj és vászon – a program pedig Thomas Schoch Piet című programja, amely Piet nyelven íródott, és arra szolgál, hogy kiírja a Piet nevet. (Ejtsd pít, a Pieter rövidítése.) Találós kérdés: melyik melyik?
  Gondolom, a megfejtés akkor is könnyű, ha az olvasó nem ismeri ezt a festményt, hiszen nyilvánvaló, hogy ha Mondrian lilát is használt volna, az benne lenne a kép címében. A Piet programnyelvet a De Stijl híres művészéről nevezte el kidolgozója, David Morgan-Mar, akinek honlapján már nyolc ilyen ezoterikus programnyelv szerepel, mind saját alkotása. De a Piet a legszebb. A programok itt absztrakt festményeknek néznek ki, mert mindegyik egy-egy kép, amin színek jelzik a különböző műveleteket. Húsz színt használ (hatot három-három árnyalatban, plusz a fehéret és a feketét), ennyivel a világon mindent meg lehet írni.

Hiszen például a Brainfuck nyelvnek nyolc jel is elég, ami egyúttal azt is jelenti, hogy ha a nyolc jel jelentését megtanultuk, akkor elméletileg tudunk programozni Brainfuckban. A Brainfuck program egy képzeletbeli szalaggal operál, amin számok lehetnek, a program indulásakor csupa nulla. Van egy „hol tartunk a szalagon” mutató. Ennyit kell tudni ahhoz, hogy megértsük a nyolc jelet:
  > eggyel jobbra lépteti a mutatót;
  < eggyel balra lépteti a mutatót;
  + a mutató által jelzett számot eggyel növeli;
  - a számot eggyel csökkenti;
  . kiírja a mutató által jelzett számhoz mint ASCII-kódhoz tartozó karaktert;
  , beolvas egy karaktert és a kódját tárolja a szalagon a mutatónál;
  [ ha a mutatónál levő szám nulla, akkor a megfelelő ]-hez ugrik;
  ] visszaugrik a megfelelő [-hez.
  Ezennel gratulálok az olvasónak: éppen elvégezte a LAttilaD.org első teljes nyelvtanfolyamát.
  A nyelv azért kapta az agybaszó nevet, mert ez a nyolc jel ismétlődik a végtelenségig. A szabály szerint minden egyéb jelet át kell ugrani, azok tehát megjegyzésnek számítanak. A világ minden programnyelvén meg szoktak írni legalább egy programot, a Hello, worldöt. Feladat: kiírni egy üdvözletet a világnak. Brainfuck nyelven ez így néz ki: ++++++++ [>+++++++> ++++++++++ >+++>+<<<<-] >++.>+.++++ +++..+++. >++.<<+++ +++++ +++++++.>. +++.------. --------.>+.>.'' Szóközöket csak azért tettem bele, hogy a böngészőnek legyen esélye tördelni valahogy.
  Ami lenyűgöző a dologban, hogy ez a zagyvaság nemcsak //működik,// de //érthető,// felfogható, ha az ember veszi hozzá a fáradságot. Az első tíz pluszjel a szalag első cellájának értékét megnöveli 10-re (hiszen minden nulláról indul). Ezután csinálunk egy ciklust (a két szögletes zárójel között), ami a következő cellákban a 70, 100, 30 és 10 számokat helyezi el, és visszamegy az első cellához. Ha most egyet jobbra lépünk és kettőt növelünk, abból 72 lesz, vagyis a H betű kódja. Egyet jobbra, egyet növelünk, 101, a kis e betű kódja. És így tovább, ide-oda lépkedve, állítgatva a számértékeket, a megfelelő pillanatban kiírva a karaktert – kijön a szöveg.
  A Brainfuck természetesen egy //Turing-gép.// Ezeket Alan Turing brit matematikus találta fel, és azóta számtalan matematikai problémát segítettek megoldani, de néha a valóságban is megépítenek egyet-egyet (például Denis Cousineau legóból csinált, be is mutatja [[http://www.mapageweb.umontreal.ca/cousined/lego/5-machines/turing/Turing.html
»»»»»»

Befunge Brainfuck Cousineau‚ Denis De Stijl gépi kód legó Lego Mindstorms matematika Mondrian‚ Piet Morgan-Mar‚ David NXT-G Piet programnyelv programozás Schoch‚ Thomas számtech Turing-gép Turing‚ Alan

   furcsa_programnyelvek
  
  
  fbc
  
  
Csak ülök és programozokDíjtartozás


  ++