[ chupcko @ 15.04.2004. 20:38 ] @
Cisto da zapocnem jedan post u kojem se necu praviti pametan, nego cisto da pitam ljude.

Koje metodologije programiranja su moguce u brainfucku, nikako da shvatim na koji nacin se mogu pisati lepi programi u brainfucku, pa mozda se neko bavio time.

I naravno, da li iko misli da je dobro edukacije proucavati brainfuck uporedo sa turingovom masinom.
[ MAD-MAX @ 15.04.2004. 23:34 ] @
Verovatno ti necu mnogo pomoci ali kako je ovo prvi put da cujem za brainfuck odkako sam prvi put za njega cuo moram nesto da kazem :)

Neznam kada tacno ali prvi put sam cuo za njega u PcPress-u i tamo je pisalo kako je Brainfuck cisto zajebancije radi. Odnosno da nije jezik kojim bi zaista nesto pametno mogao da uradis osim da kvalitetno gubish vreme s njim.
[ chupcko @ 16.04.2004. 06:38 ] @
Pa za divno cudo to su rekli svojedobno i za programski jezik c :).

Brainfuck nije zajebancja nego jos jedan od jezika niskog nivoa, slicno kao turingova masina, slicno kao URM, slicno kao jos gomila nekih bas lakih za objasnjenje, a teskih za koriscenje jezika.

Naravno ja sam radio nesto na dokazivanju URM potpunosti brainfucka (sto ce reci da je klasa problema za koje postoji URM i za koje postoji brainfuck program su iste), a samim tim (ako prihvatimo tezu churca) i jednake klasi intuitnvo izracunljivih funkcija.

Doduse, zato sam i pitao da li neko zna za neki edukativni pristup u vezi brainfucka.

Cinjenica je da dosta koristi tjuringova masina za uvod u programiranje, pa mene zanima koliko bi to moglo da se zamieni brainfuckom koji je ako nista bar malo savremeniji a i zanimljiviji po meni.

Naravno, iz iskustva znam da posle sat vremena pisanja za brainfuck delujem bas cudno, nisam probao droge, ali mislim da je slican osecaj :).
[ noviKorisnik @ 16.04.2004. 07:16 ] @
Ja nisam probao rad u BF, evo kako recimo izgleda "Hello World"
Code:
>+++++++++[<++++++++>-]
<.>+++++++[<++++>-]<+.+
++++++..+++.[-]>+++++++
+[<++++>-]<.#>+++++++++
++[<+++++>-]<.>++++++++
[<+++>-]<.+++.------.--
------.[-]>++++++++[<++
++>-]<+.[-]++++++++++.

Verujem da boli glava da li je opaljen + više ili manje...
Jezik u potpunosti ima smisla, jedino što je pogodniji za mašine no za ljude.
[ chupcko @ 16.04.2004. 13:44 ] @
Pa da, jeste opiceno, ali probaj da napises turingovu masinu koja mnozi, pa ces videti da nije ni malo trivijlano :)

A probaj turingovu masinu koja ce na traci da ostavi ascii vrednosti. Sada, naravno pitanje je da li je pisanje ovakvih programa logican pocetak programera, i da li treba izucavati masinske jezike (asemblere).

Ajde za pocetak, neka neko uradi recimo sabiranje, neka u prva dva elementa budu sabirci, napisati bf kod koji na kraju u prvom ostavi zbir, a drugi ... i pokazivac stavi na njega.

Recimo da takav program je u nekih do 20 simbola.

Naravno i dalje me zanima da li mislite da je pametno decu muciti sa turingovom masinom, i koliko bi deci bilo zanimljivije da rade u brainfucku :).

Ja se vec neko duze vreme kanim da drzim na matematickom neko predavanje o brainfucku, ali me zanima kako ce proci citava prica :).
[ MAD-MAX @ 16.04.2004. 13:45 ] @
"Naravno, iz iskustva znam da posle sat vremena pisanja za brainfuck delujem bas cudno, nisam probao droge, ali mislim da je slican osecaj :).:"

Hehe, nije da se skidam sa neceg ali definitrivno cu da "probam" ovaj brainfuck! :)

[ -zombie- @ 16.04.2004. 20:55 ] @
ja bih se za uvod u izračunive probleme (kako se prevodi computable?) ipak zadržao na turingu.

brainfuck je vrlo sličan po koncepciji. umesto glave imamo pointer, glavu-pointer možemo da šetamo levo-desno, da čitamo-pišemo po jedan karakter ispod glave-pointera, i da menjamo pravac zavisno od stanja (nekih uslova, tj pročitanih karaktera).

samo turing ima jednu veoma očiglednu prednost. onome ko ne zna šta je to memorija, a kamo li šta su pointeri, mnogo je teže objasniti teoriski kako radi brainfuck. nasuprot tome, turingovu mašinu je vrlo lako moguće objasniti i kompjuterski nepismenim osobama (veoma slikovito i prizemno).

a da ne pominjem koliko je lakše čitati "program" (tabelu pravila) za turingovu mašinu nego brainfuck program (hint: zašto li se zove tako kako se zove? ;). ovo važi čak i za nekoga sa dugogodišnjim iskustvom, a kamo li za početnike..

dakle, tebi kao starom vuku sa pointerima, pokazivačima, asemblerima i "višim jezicima" (kao što je C ;), sve ovo može delovati zanimljivo, ali sam spreman da tvrdim da je prilično neupotrebljivo u edukativne svrhe..

// inače gde se seti da pomeneš množenje na turingu ;). baš sam se bio pomučio sa jednim "programom" za množenje na jednoj "mašini" vrlo sličnoj turingovoj (naravno, sve izmišljeno). skup "pravila" u programu je prešao 300 ako se dobro sećam ;)
[ chupcko @ 16.04.2004. 22:02 ] @
Pa jedno od tumacenje brainfucka je sa pokazivacima, ja bi tumacio drugacije:

+ uvecava celiju ispod glave za 1
- umanjuje celiju ispod glave za 1
< pomera glavu levo
> pomera glavu desno
[ sve dok je sadrzaj celije ispod glave razlicit od nule radi do ]
...

Sada bas lici na turingovu masinu, doduse mnozenje u brainfucku je defininto krace ...

A sto se tice citljivosti, sto se duze bavim, polako pocinjem da prepoznajem. Vec sada intutivno pronalazim [-] u kodu :).

A i nekako mi niz karaktera vise lici na program od tabele pravila kod turinga.

Bitno je da brainfuck turing kompletan. Samim tim je sve jedno sta se uci prvo. Ali sta je bolje za razumevanje, ja mislim da bi se vise igrao sa brainfuckom, nego sto sam se igrao sa turingovom masinom, da sam prvo morao da se bavim njom.
[ -zombie- @ 16.04.2004. 23:24 ] @
Citat:
chupcko:
A i nekako mi niz karaktera vise lici na program od tabele pravila kod turinga.


nisi ukapirao moju poentu. naravno da tebi više liči na program, a na šta treba da liči nekome ko nikad nije ni čuo šta je to program?

Citat:
Bitno je da brainfuck turing kompletan. Samim tim je sve jedno sta se uci prvo. Ali sta je bolje za razumevanje, ja mislim da bi se vise igrao sa brainfuckom, nego sto sam se igrao sa turingovom masinom, da sam prvo morao da se bavim njom.


i opet, naravno da bi se više igrao, jer je brainfuck praktičniji za rad. ali turing se ni ne izučava sa namerom da bude praktičan, već isključivo za teorisko razmatranje..
[ Dusan Marjanovic @ 17.04.2004. 01:24 ] @
Citat:
chupcko:
Ajde za pocetak, neka neko uradi recimo sabiranje, neka u prva dva elementa budu sabirci, napisati bf kod koji na kraju u prvom ostavi zbir, a drugi ... i pokazivac stavi na njega.

ajde malo preciznije definisi sta si hteo da kazes, sabirci su predefinisani u okviru programa, unose se sa tastature ili sta? posto je u prvom zbir drugi se verovatno otera na 0 ili sta mu vec dodju ove "..." i pokazivac stavim na koga njega? na prvi? ajde zeljan sam da pokazem my ++++++[>++++++++<-]>+.++..++++.<+++[>-------<-]>--.<+++[>+++++++<-]>.<+++++++++[
>++++++<-]>.<+++++++[>>+++++++<<-]>>.<+..<++[>+++++++<-]>. (kompajlirati brainfuck kod za zavrshetak rechenice ;))
[ chupcko @ 17.04.2004. 16:43 ] @
Pa za pocetak je dovoljno pretpostaviti da se u dve celije nalaze dva broja, koje treba sabrati

nesto kao *p=x *(p+1)=y pa posle rada bude *p=x+y.

A sto se tice toga sta je nekome ko tek uci programiranje blize kodu ...

Pa ovako, sam kazes da brainfuck kod vise lici na program od turingovih pravila zamena (imamo streem instrukcija), pa samim tim logicnije je da kada uvodis nekog u programiranje mu das primer necega sto je u startu slicno buducim programima.

Znacaj turingove masine je veliki, ali odavno se u teoriji razmatraju samo rekurzivne funkcije i URMasina. Naravno negde na pocetku se dokaze da izracunavaju istu klasu (za svaki turingov "program" postoji rekurzivna funkcija, kao i za svaku rekurzivnu funkciju postoji turingov "program", pa slicno i sa URM i rekurzivnim funkcijama).

Naravno mene u ovom trenutku zanima nesto malo vise oko brainfuck-a, a to je da li postoji jos neka klasa problema koja nije resiva njime... Znam da zvuci jereticki, ali sto bi se zadrali samo na klasi halting problema.
[ chupcko @ 23.04.2004. 23:52 ] @
Ovog vikenda cu se odvaziti da napisem brainfuck program koji radi isto kao i ovaj mali slatki (moj najnoviji) c program:

Code:

int _[33]={1};main(c,h,p){for(c=32;h=c--;puts("")){for(;h--;)printf(" ")
;for(p=h=1;h<33-c;p^=h++[_])printf(p?"/\\":"  ",h[_]^=p);}}/* CHUPCKO */


ili za one nestrpljive:

Code:

                                /\
                               /\/\
                              /\  /\
                             /\/\/\/\
                            /\      /\
                           /\/\    /\/\
                          /\  /\  /\  /\
                         /\/\/\/\/\/\/\/\
                        /\              /\
                       /\/\            /\/\
                      /\  /\          /\  /\
                     /\/\/\/\        /\/\/\/\
                    /\      /\      /\      /\
                   /\/\    /\/\    /\/\    /\/\
                  /\  /\  /\  /\  /\  /\  /\  /\
                 /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\                              /\
               /\/\                            /\/\
              /\  /\                          /\  /\
             /\/\/\/\                        /\/\/\/\
            /\      /\                      /\      /\
           /\/\    /\/\                    /\/\    /\/\
          /\  /\  /\  /\                  /\  /\  /\  /\
         /\/\/\/\/\/\/\/\                /\/\/\/\/\/\/\/\
        /\              /\              /\              /\
       /\/\            /\/\            /\/\            /\/\
      /\  /\          /\  /\          /\  /\          /\  /\
     /\/\/\/\        /\/\/\/\        /\/\/\/\        /\/\/\/\
    /\      /\      /\      /\      /\      /\      /\      /\
   /\/\    /\/\    /\/\    /\/\    /\/\    /\/\    /\/\    /\/\
  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\
 /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

[ chupcko @ 24.04.2004. 21:58 ] @
Eto, posle dana razmisljanja i 2 sata jebavanja mozga, eto sta sam napisao :)

Code:

[desktop] 0 /home/chupcko/wrk/bf => cat s.bf 
>>++++++++[-<++++<++++>>]+>>>>+<<<<<[-[-<.>>>+<<]>>[-<<+>>]<[->+>+>+<<<]>
[-<+>]>[>>[->+>+<<]>[+++++++[-<++++++>]<-.-[->++<]>.[-]]>[-<+<+>>]+<[->-<
]>[+++++++[-<++++>]<..[-]>]<<<<-[->>>+<<<]>[->>>+<<<]>>]>[<<[-<+<+>>]<[->
>>>>+<[->-<]>[-<+>]<<<<<]<[->>+<<]>>>>-[-<<<+>>>]<<<]<++++++++++.[-]<<+<]
[desktop] 0 /home/chupcko/wrk/bf => ./bfc < s.bf > s.c
[desktop] 0 /home/chupcko/wrk/bf => gcc -o s s.c
[desktop] 0 /home/chupcko/wrk/bf => ./s
                               /\
                              /\/\
                             /\  /\
                            /\/\/\/\
                           /\      /\
                          /\/\    /\/\
                         /\  /\  /\  /\
                        /\/\/\/\/\/\/\/\
                       /\              /\
                      /\/\            /\/\
                     /\  /\          /\  /\
                    /\/\/\/\        /\/\/\/\
                   /\      /\      /\      /\
                  /\/\    /\/\    /\/\    /\/\
                 /\  /\  /\  /\  /\  /\  /\  /\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
               /\                              /\
              /\/\                            /\/\
             /\  /\                          /\  /\
            /\/\/\/\                        /\/\/\/\
           /\      /\                      /\      /\
          /\/\    /\/\                    /\/\    /\/\
         /\  /\  /\  /\                  /\  /\  /\  /\
        /\/\/\/\/\/\/\/\                /\/\/\/\/\/\/\/\
       /\              /\              /\              /\
      /\/\            /\/\            /\/\            /\/\
     /\  /\          /\  /\          /\  /\          /\  /\
    /\/\/\/\        /\/\/\/\        /\/\/\/\        /\/\/\/\
   /\      /\      /\      /\      /\      /\      /\      /\
  /\/\    /\/\    /\/\    /\/\    /\/\    /\/\    /\/\    /\/\
 /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
[ -zombie- @ 25.04.2004. 05:20 ] @
u jeee... pa ovo ispade jedva dva puta duže u BF nego u Cu.. i to program u Cu nije "normalan" nego je i on "spakovan" (jel može kraće?)..

damn što sam toliko zauzet, baš bi se igrao ovim, bar dan-dva.. možda se oslobodim malo za nekih mesec dana.. ;(
[ chupcko @ 25.04.2004. 18:32 ] @
Ovo moze i krace, ali bojim se da jos nisam u stadijumu da pisem optimalne bf programe. Doduse, mogu reci da je ovo kao vezba snage za kosarkase. Moze i bez ovoga, ali otvara nove dimenzije uma :).

Fora je u tome sto jos nema alata za pisanje ovakvih programa, idelano bi bilo da postoji neka animacija koja od pocetnog algoritma kreira ovako kratke algoritme. Sve u svemu, poradicu na metodologiji programiranja u bf-u (koja je identicna sa metodologijom programiranja u c-u).
[ chupcko @ 27.04.2004. 20:21 ] @
Uf, posle jos malo razmisljanja, shvatio sam da mogu da skratim onaj brainfuck na barem 3/4 postojeceg, idem malo da se igram.

Code:

>++++++++[-<++++>>++++>+<<]>>++>++<<<<[-[->+<]>[->.<<+>]>>>[-[->+<]+
>[<+>+++++++[->++++++<]>-.-[-<++>]<.[-]]++<[->-<]++>[<->+++++++[->++
++<]>..[-]<]>>]+<<<[-[->+<]+>[-<+>>>-[->+<]++>[-<->]<<<]<<<<]>>.<<<]


Za sada ne znam kako cu ovo krace, ali sada je samo za 50% duze od istog c koda :).
[ srki @ 04.05.2004. 15:49 ] @
Mene zanima odakle ti onaj algoritam za crtanje trougla sierpinskog red po red.
[ chupcko @ 06.05.2004. 08:20 ] @
Logican je, nekada davno kada sam se igrao sa celijskim automatima video sam da neki celijski automati crtaju trougao serpinskog, malo deformisanog, ali to je to.

naime napuni jedan red slucajnim vrendostima bitova, onda svaki sledeci red racunaj na osnovu prethodnog reda tako sto radis neku funkciju nad gornja dva bita (onaj iznad i recimo onaj levo od tog iznad). Kada je funkcija xor (ili kako je ja volim zvati ksorovanje) onda dobijas trougao serpinskog.

Slicno mozes i sa onim paskalovim trouglom (i proverom da li je broj paran ili neparan, to lici na xor :).
Kada onda u prvom redu imas samo jedan "pixel" dobijes trougao serpinskog. Naravno kada sve to malo sredis dobijes program u c-u koji to radi: niz _ cuva "pixele".

Generalno celijski automak koji crta trougao serpinskog nije toliko nov, moja je samo pretumbacija u asciiart :) (to jest ideja da pixel predstavljam sa /\ ).
[ chupcko @ 06.05.2004. 20:19 ] @
Srki, da me nisi pitao ne bi dobio inspiraciju, da malo ulepsam onaj ascii art.

Nove c verzija je ovde, uskoro i brainfuck verzija :).

Code:

[desktop] 1 /home/chupcko => cat sierpinski.c 
int _[33]={1};main(c,h,p){for(c=p=1;h=33-c; puts("")){for(;--h;printf(" "
));for(;h<c;printf(h++[_]?c%2?"/\\":(p=!p)?"_\\":"/_":"  "));for(c++[_]=1
;--h;h[_]^=_[h-1]);}}
[desktop] 0 /home/chupcko => gcc -o sierpinski sierpinski.c 
[desktop] 0 /home/chupcko => ./sierpinski 
                               /\
                              /__\
                             /\  /\
                            /__\/__\
                           /\      /\
                          /__\    /__\
                         /\  /\  /\  /\
                        /__\/__\/__\/__\
                       /\              /\
                      /__\            /__\
                     /\  /\          /\  /\
                    /__\/__\        /__\/__\
                   /\      /\      /\      /\
                  /__\    /__\    /__\    /__\
                 /\  /\  /\  /\  /\  /\  /\  /\
                /__\/__\/__\/__\/__\/__\/__\/__\
               /\                              /\
              /__\                            /__\
             /\  /\                          /\  /\
            /__\/__\                        /__\/__\
           /\      /\                      /\      /\
          /__\    /__\                    /__\    /__\
         /\  /\  /\  /\                  /\  /\  /\  /\
        /__\/__\/__\/__\                /__\/__\/__\/__\
       /\              /\              /\              /\
      /__\            /__\            /__\            /__\
     /\  /\          /\  /\          /\  /\          /\  /\
    /__\/__\        /__\/__\        /__\/__\        /__\/__\
   /\      /\      /\      /\      /\      /\      /\      /\
  /__\    /__\    /__\    /__\    /__\    /__\    /__\    /__\
 /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\
/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\/__\
[desktop] 0 /home/chupcko => 


P.S. Deco, nemojte ovo sami da radite, ja sam uvezbani profesionalac :PPPP

Code:

int _[33]={1};main(e,c,h,o){for(e=32;c=e--;puts("")){for(;--c;printf(" "));for(
o=h=++c;c<33-e;printf(h?e%2?"/\\":(o=!o)?"_\\":"/_":"  ",c[_]^=h,h^=c++[_]));}}


Uvek moze krace :).
[ srki @ 07.05.2004. 00:32 ] @
Zanimljivo, ovako lepse izgleda uz jednostavnu izmenu koda. Mada mozda je bolje da si ostavio verziju koda koji nije obfuscated za neke koji nisu toliki poznavaoci c-a a hoce nesto da nauce.
[ chupcko @ 07.05.2004. 08:01 ] @
Pa za one koji hoce da nauce ... uf, imam kuci velike datoteke u kojima je napisan kod od pocetka do kraja, sa objasnjenim svim koracima "optimizacije". Trenutno imam ideju da napisem jedan veliki dokument ("knjigu") u kojem ce biti objasnjeno sve. Ako te bas toliko zanima poslacu ti cist program koji racuna trougao serpinskog kao celijski automat.

Ali najbolje da napises sam:

Code:

*  
**
*.*
****
*...* 
**..**
*.*.*.*
********
*.......*
**......**
*.*.....*.*
****....****
*...*...*...*
**..**..**..**
*.*.*.*.*.*.*.*
****************


Pronadji sam neke zakonitosti, na pocetku i na kraju je uvek *.

Ako u jednom redu imamo ** u sledecem ispod desne zvezdice je uvek .
takodje vaze sledeca pravila: *. -> * ; .* -> * ; .. -> .

To jest ako * pisemo kao 1, a . kao 0, onda imamo da za xy u jednom redu "pixel" ispod y generisemo kao x^y (ili x xor y).

Mislim da sada mozes i sam da napises program za ovo.

[ chupcko @ 07.05.2004. 10:08 ] @
Uspeo sam da skratim jos za nekoliko karaktera :)
Naravno dobio sam male margine, ali vredelo je :).

Code:

int _[33]={1};main(e,c,h,o){for(e=33;printf("%*s",e--,"");puts(""))for(c=o
=h=1;c<33-e;h^=c++[_])printf(h?e%2?"/\\":(o=!o)?"_\\":"/_":"  ",c[_]^=h);}


Mislim da i ja polako uvidjam da sam bolestan :).
[ srki @ 07.05.2004. 14:49 ] @
Citat:
chupcko:
Ako te bas toliko zanima poslacu ti cist program koji racuna trougao serpinskog kao celijski automat.

Pa ne zanima me, znam ja to tako da mi ne treba cist kod. Mene uglavnom samo algoritmi zanimaju mada ih sada znam.

Citat:
Pronadji sam neke zakonitosti, na pocetku i na kraju je uvek *.


Ma shvatio sam ja kod jos prvi put kada si ostavio samo me zanimalo da li si sam dosao do toga ili si negde video. Zato sam te to i pitao odakle ti algoritam.
[ chupcko @ 07.05.2004. 15:40 ] @
Citat:
srki:
Ma shvatio sam ja kod jos prvi put kada si ostavio samo me zanimalo da li si sam dosao do toga ili si negde video. Zato sam te to i pitao odakle ti algoritam.


Pa sam, kada smo moj drug Bleki i ja pisali neki program za istrazivanje celijskih automata, 91 godine.
On je pisao deo u assembleru, a ja deo u c-u za taj mali program. Pisano je za Atari ST.

I naravno kada smo napisali, istrazivali smo razne celijske automate, radili smo verziju koja na osnovu 3 celija racuna celiju ispod, i shvatili da postoji 8 ulaznih kombinacija od kojih svaka je ukljuceno ili iskljuceno, pa samim tim ima 256 "programa" za celijske automate. Neki programi su iscrtavali trougao serpinskog, pa smo to malo vise istrazivali. Kasnije sam u nekoj knjizi pronasao slicnu foru ali sa paskalovim trouglom i parno neparnim brojevima.

Tako da ideja samog celijskog automata je stara, moja je samo realizacija i "optimizacija".

Pa eto, mozda cu preko vikenda da napisem ponovo slican program za X-e. Treba uciti kako se to raid :).
[ -zombie- @ 07.05.2004. 15:58 ] @
to me podseti, jel se neko seća "programerske" igrice "life" (valjda tako beše).

bila je popularna isto negde početkom devedesetih.. ;)

još se sećam pištolja sa metkom, koga sam sanjao par noći.. ;)
[ chupcko @ 07.05.2004. 20:43 ] @
http://www.ibiblio.org/lifepatterns/

Imas tamo slaak applet, a i bogami dosta toga.

Da to je isto celijski automat, doduse ima i nekih slozenijih, pokusavam da se setim elektronskog ribnjaka, ali i ne znam da li sam to ikada video na netu :).
[ chupcko @ 05.08.2004. 20:38 ] @
Posto sam pozuteo (doduse ne znam sta jos znaci da imam zuti karton :) ) resio sam da se ovde javno izvinim svima onima koji su uvredjeni postojanjem programskog jezika brainfuck :).

Uzgred, trenutno radim na ideji da se izucavanje turingove masine na pocetnim godinama studija racunarstva zameni izucavanjem brainfuck-a koji je (o slucajnosti) rekurzivno kompletan, ili ako cemo da cepidlacimo turing izracunljiv, pa samim tim (po tezi Churcha) i intutivno izracunljiv.

E sada, zasto smatram da je brainfuck bolji od turingove masine, to cemo vec videti jednom :).

Uzgred, da li je iko napisao vise ista u brainfucku :).
[ Mikky @ 05.08.2004. 21:18 ] @
Vidim ja da ti bas imas slobodnog vremena sa kojim neznas sta ces.
[ chupcko @ 05.08.2004. 21:58 ] @
Pa nije da imam visak slobodnog vremena. Radim oko 9 sati svaki dan, ostatak provodim na spavanje i ucenje, brainfuck spada pod ucenje. Kako godina ima 365 dana, mislim da posvetiti 10 dana brainfucku nije bas puno, naravno slobodnog vremena. E sada, kada bolje razmislim, veca je glupost sto ista postujem na es-u nego sto ucim brainfuck.

A mozda svi rade neke ozbiljne stvari (sve IT strucnjak do IT strucnjaka), pa niko nece da se zamajava sa decijim brainfuckom. Iskreno mene je zanimalo da li pored nekoliko ljudi za koje znam da su pametnice ima jos neko ko hoce da se suoci sa problemom.

Ko zna kako su tek ispljuvali turinga kada je on pravio svoju masinu, koja nicemu ne sluzi :).
[ Gojko Vujovic @ 06.08.2004. 01:46 ] @
Brainfuck uopšte nije dečija stvar, samo izgleda da su ljudi suviše zauzeti svakodnevnim obavezama da bi odvojili vreme i za njega.

A i sumnjam da mnogo njih razume smisao tvoje ironije u porukama Čupko. Ne kažem da nema smisla to što pišeš, daleko od toga, samo mi je žao kad vidim da ostaneš neshvaćen. No fino je što se trudiš da malo aktiviraš omladinu ovde. ;) pohvalno
[ noviKorisnik @ 06.08.2004. 02:03 ] @
Ko tu koga fuka s brainfuckom? I zašto postoji nedostatak literature na temu? Onaj ko mu dade ime u grob ga i otera - zamisli lika koji piše disertaciju na temu jebanja mozga - šta - traže se dobrovoljci da stave to u svoj CV

Kako bi kolege na računarstvu reagovale na zvaničan predlog o zameni Turinga nečim što se zove kako se zove? Ozbiljno?
[ chupcko @ 06.08.2004. 08:11 ] @
Citat:
noviKorisnik: Ko tu koga fuka s brainfuckom? I zašto postoji nedostatak literature na temu? Onaj ko mu dade ime u grob ga i otera - zamisli lika koji piše disertaciju na temu jebanja mozga - šta - traže se dobrovoljci da stave to u svoj CV

Kako bi kolege na računarstvu reagovale na zvaničan predlog o zameni Turinga nečim što se zove kako se zove? Ozbiljno?


Pa akademsko ime brainfucka je brainfuncm a sada, mislim da je vecina akademika nastalo istim tim fuckovanjem, pa mislim da to i nije nista tako lose :).

Uzgred mislim da su neke firme vec pocele da traze poznavanje brainfucka za posao, jer ko zna brainfuck sigurno ce lako pisati u c-u :). (Obrnuto nije bas sigurno)

Inace google za prosti "brainfuck" upit daje 12000 linkova, ajde neka je 1% u redu, to znaci da imas 120 linkova.

Dodue Gojko, ja mislim da ironiju razumeju, ali posto misle da su suvise vejiki i vazni ne shvataju zasto to kazem. Prosecan covek nije produktivan 100 % vremena, ajde da kazem da je produktivnost 10% (sto je super), ako neko posveti samo 1% necemu novom i teskom, mozda ce kasnije (uz pomoc transfera znanja (psiholoski termin)) lakse neke stvari nauciti.

Doduse znate li one angdote o Turingu :) ?
[ -zombie- @ 06.08.2004. 14:41 ] @
Citat:
chupcko:
Uzgred, trenutno radim na ideji da se izucavanje turingove masine na pocetnim godinama studija racunarstva zameni izucavanjem brainfuck-a


ovo nema šanse da prođe, bar ne dok ne preimenuješ jezik i/ili smisliš malo opisnije nazive za BF naredbe, kao npr add, sub, left, right, i slično.. ne pale se svi na obskurnost, a naročito ne početnici. i nije pojenta programiranja da kod bude što nečitljiviji, već baš naprotiv, što elegantniji.

Citat:
Ko zna kako su tek ispljuvali turinga kada je on pravio svoju masinu, koja nicemu ne sluzi :).


ničemu ne služi? znaš i sam čemu je (po)služila. ali danas, sve što se njome može dokazati je već dokazano, tako de više ničemu ne služi.. slično važi i za BF.. u stvari, za njega važi još više, uzevši u obzir vreme kada je nastao..

Citat:
A mozda svi rade neke ozbiljne stvari (sve IT strucnjak do IT strucnjaka), pa niko nece da se zamajava sa decijim brainfuckom.


normalno je da se neko (ko je bar malo nastran na tu stranu ;) zainteresuje kada čuje za BF. normalno je i da se sa istim poigra, kao i da ga posle dužeg ili kraćeg perioda (proporcionalno nastranosti) batali..

a koliko je normalno da neko BF shvati ozbiljnije od njegovih tvoraca (za koje je to bila čista zajebancija)?

Citat:
chupcko:
I dodje neko ko aktivno radi u brainfucku, mislis da ga nece zaposliti ???


ali aktivno!! brate slatki..

(osećam da na svetu postoji jedna jedinka koja se aktivno (ali stvarno aktivno, a ne ko neke sekaperse "it stručnjaci") bavi BFom.. i na našu žalost, evo je ovde..)

Citat:
chupcko:
E sada, kada bolje razmislim, veca je glupost sto ista postujem na es-u nego sto ucim brainfuck.


da li bi bio rad da sebi i svima ovde učiniš uslugu i prestaneš da činiš tu glupost?

Citat:
Gojko Vujovic:
A i sumnjam da mnogo njih razume smisao tvoje ironije u porukama Čupko.


jao, mora da nisam dovoljno intelegentan da sVatim taj smisao.. kuku meni.. ;(


Citat:
chupcko:
Uzgred mislim da su neke firme vec pocele da traze poznavanje brainfucka za posao, jer ko zna brainfuck sigurno ce lako pisati u c-u :). (Obrnuto nije bas sigurno)


hm.. baš čudno.. iznenađujuće je da se te firme nisu setile da za radno mesto C programera potraže nekog ko, gle čuda, poznaje C, umesto da idu obilazno preko BFa?

brate slatki, koja naučna fantastika..

očigledno se ti tome nadaš, jer bi konačno mogao i da dobiješ neki posao sa zvanjem programer, pa više ne bi morao da se dokazuješ ovakvim glupostima..

a ja lično nikada ne bih zaposlio (bar ne kao programera.. možda kao obezbeđenje?) nekog ko u svom CVu čak i pomene BF, jer je to vrlo dobar znak da taj neko nema mnogo veze sa realnim problemima koji mogu da utiču na ostvarivost projekta..

kod velikih projekata, algoritmi su najmanji problem. mnogo veći problem su rukovođenje (ljudskim) resursima, rad u timu, dobro projektovanje sistema, software engineering, i slično.. a to je ono ključno u celoj ovoj diskusiji..
[ chupcko @ 06.08.2004. 15:18 ] @
Pa eto, pogresno razumemo pojam programer. Doduse, ja stvarno nigde nisam radio kao programer :), zato ja i pisem u brainfucku, da lakse nadjem posao :).

A i cisto da se razumemo C je obiniji od BF-a, ali nije tezi :).

[ hyle @ 06.08.2004. 16:20 ] @
Mi, pravi programeri, genijalci, na tastaturi imamo samo dva tastera "1" i "0" i to je sve sto nam je potrebno. Bajt je isuvise veliki tako da programiramo u bitovima.

Sve ostalo je isuvise prosto.
[ jablan @ 06.08.2004. 18:59 ] @
Citat:
hyle: Mi, pravi programeri, genijalci, na tastaturi imamo samo dva tastera "1" i "0" i to je sve sto nam je potrebno.

Hm, pre bih upotrebio pojam "mačo programeri".

Meni je samo žao što tako inteligentni (a očigledno je da se neko kome je IQ ispod 150 teško snalazi u brainfucku) mladi ljudi ne fokusiraju svoju energiju na neki recimo open-source projekat.

Eh da, a povodom uvođenja brainfuck-a na fakultete: time bi se na beogradskom univerzitetu najzad ozvaničilo ono što profesori rade studentima: je*u ih u zdrav mozak sa nastavnim programima koji blage veze nemaju sa potrebama tržišta.

Nadam se da nisam zaradio žuti.
[ Gojko Vujovic @ 06.08.2004. 19:41 ] @
Zasto bi programirali za dzabe kad mogu za pare?
[ degojs @ 06.08.2004. 20:36 ] @
Citat:
Eh da, a povodom uvođenja brainfuck-a na fakultete: time bi se na beogradskom univerzitetu najzad ozvaničilo ono što profesori rade studentima: je*u ih u zdrav mozak sa nastavnim programima koji blage veze nemaju sa potrebama tržišta.


Doduše, češće su asistenti još gori.. Daj malo Brainfuck pa da mi vidimo koliko vrede ti studenti, da vidimo ko je pravi programer, hehe.
[ chupcko @ 06.08.2004. 20:50 ] @
Ovaj, za open source, paaaaaaaaaaaa bilo je ponesto i u opensource, uradi pretragu po chupcko recimo na sf.net-u :) Ima puno nepismenih projekata kojima sam se igrao :).

E sada, u skolovanju programera (a ja imam neke diplomice di pise da sam "programer") postoje dva principa, jedan je praktican, a drugi tortirajuci. Sve zavisi od fakulteta gde se nadjes, ali cinjenica je da oni koji su uspeli da prezive troturu, da se lakse snalaze. Ali za prosek je bolji praktican nacin obuke.

Brainfuck i nije za mase, mada ko zna, i jeste.

Doduse kada smo vec kod 0 i 1, secam se mog prvog masinca koji sam znao perfektno iako nikada u zivotu nisam video tu masinu, osim na slikama, i iskreno zao mi je sto nisam nikada tako programirao.

Recimo ja sam ucio za ovaj model:
http://www.psych.usyd.edu.au/pdp-11/11_10.html

Obrati paznju na sliku, tu su prekidaci (grupisani za oktalne brojeve koji su se forsirali) sa sve sijalicama, ne znam da li su imali led-iode.

Naravno, unosenje jednog manjeg programa bi trajalo danima :).

E sada, naravno, koga boli dupe za tako nesto, postoji puno olaksica :), ko jos koristi edlin :).

Ozbiljno, brainfuck je nastao kao zezanje, ali ima recimo teorijsku primenu. Sada, sto ja smatram da svi dobri programeri moraju da znaju da objasne u 10 recenica quick sort. Isto tako smatram da bi trebalo da budu u stanju da napisu kraci brainfuck program posle nedelju dana razmisljanja. E posto ovde ima previse ljudi koji misle da je njihovo vreme previse vredno, a ja nekako mislim da imam dosta slobodnog vremena, ja cu i dalje da se zezam sa tim, i nadajuci se da cu jednom dobiti posao programera :).

[ Bojan Basic @ 06.08.2004. 21:01 ] @
Citat:
chupcko:
Pa nije da imam visak slobodnog vremena.

Citat:
chupcko:
a ja nekako mislim da imam dosta slobodnog vremena

[ chupcko @ 06.08.2004. 21:50 ] @
Pa da, nemam ga, ali ja mislim da imam, zar to nije samo potvrda dijagnoze :).

Znas vec, uostalom zar si ocekivao da neko zdrav se pali ozbiljno na BF :).

Uostalom, za sve progarmerske pekmeze je programski jezik HQ9+ :).
[ Sundance @ 07.08.2004. 20:45 ] @
e meni je ovaj bf bas zakon, samo sto od 4 kompajlera/interpretera sto sam koristio, nijedan ne podrzava ugnijezdjene (nested) [], sto onemogucava bilo kakvo ozbiljnije programiranje. chupcko, di si nasao svoj?

enivej, uspijeh napisati ove nebuloze:

hello world: ++++++++[>++++<-]>[>++>+<<-]>++++++++.>[<+>>+<-]<---.+++++++..+++.>>.<<++++++++.--------.+++.------.--------.>++++++++++.

string2lower(da, znam za "bug" i ne, necu ga ispraviti :) : +[>,----------]----------------------<[++++++++++<]>>[++++++++++++++++++++++++++++++++.>]

kako jezik ima jako sugavu redundanciju, predlazem sljedece kodiranje:
Code:

[    -    0
]    -    1
.    -    2
3    -    3
4    -    4
5    -    5
6    -    6
7    -    7
8    -    8
9    -    9
10    -    A
,    -    B
+    -    C
-    -    D
>    -    E
<    -    F

4+ bi bilo recimo ++++, 3> bi bilo >>> etc. 0, 1 i 2 ionako nemaju smisla. na kraju po dva znaka grupiramo u jedan hex bajt, pa se pocetni hello world smanji jedno 4 puta. a i lakse je citati, bar se ne mora brojati koliko se uzastopno elementi ponavljaju, a smisao jezika se ne gubi. slobodno me popljujte ako govorim gluposti, ali ja vec pisem interpreter u bashu, sljaka sve osim onih fakin [ i ]....mrmlj :-)
[ chupcko @ 07.08.2004. 21:18 ] @
Pa ja napisao svoj "kompajler"

Code:

#include <stdio.h>
#include <stdlib.h>

void error(void)
{
  fprintf(stderr,"Erorr []\n");
  exit(1);
}

void indent(int n)
{
  int i;
  for(i=0;i<=n;i++)
    printf("  ");
}

int main(void)
{
  int c;
  int l=0;
  puts
  (
    "#include <stdio.h>\n"
    "\n"
    "#define MAX 32767\n"
    "\n"
    "char a[MAX];\n"
    "int p=0;\n"
    "\n"
    "void debug(void)\n"
    "{\n"
    "  int i;\n"
    "  fprintf(stderr,\"# %d\",p);\n"
    "  for(i=(p-10<0?0:p-10);i<(p+10>MAX?MAX:p+10);i++)\n"
    "    fprintf(stderr,\" %d:%d\",i,a[i]);\n"
    "  fprintf(stderr,\"\\n\");\n"
    "}\n"
    "\n"
    "void put(char c)\n"
    "{\n"
    "  putchar(c);\n"
    "  fflush(NULL);\n"
    "}\n"
    "\n"
    "char get(void)\n"
    "{\n"
    "  int c;\n"
    "  if((c=getchar())==EOF)\n"
    "    c=0;\n"
    "  return (char)c;\n"
    "}\n"
    "\n"
    "int main(void)\n"
    "{"
  );
  while((c=getchar())!=EOF)
    switch((char)c)
    {
      case '<':
        indent(l);
        puts("p--;");
        break;
      case '>':
        indent(l);
        puts("p++;");
        break;
      case '-':
        indent(l);
        puts("a[p]--;");
        break;
      case '+':
        indent(l);
        puts("a[p]++;");
        break;
      case ',':
        indent(l);
        puts("a[p]=get();");
        break;
      case '.':
        indent(l);
        puts("put(a[p]);");
        break;
      case '[':
        indent(l);
        puts("while(a[p])");
        indent(l);
        puts("{");
        l++;
        break;
      case ']':
        l--;
        if(l<0)
          error();
        indent(l);
        puts("}");
        break;
      case '#':
        indent(l);
        puts("debug();");
        break;
      case '!':
      case ':':
      case ';':
        while((c=getchar())!=EOF && (char)c!='\n');
        break;
    }
  if(l!=0)
    error();
  puts
  (
    "  return 0;\n"
    "}"
  );
  return 0;
}


Sto se tice ekstenzija, mozes puno toga prosirit, ja sam dodao samo # koji radi ispis svih promenljivih.

E sada da li je pametno prosirivati ili ne ?
[ Sundance @ 09.08.2004. 22:05 ] @
Urban Mueller je napravio brainfuck iz iskljucivog razloga da napravi kompajler za Amiga
OS 2.0 ispod 240 bajtova, a sto se se tice isljucivo te cinjenice, s obzirom da jezik ima
samo 8 instrukcija, pravi je luksuz koristiti ASCII kodiranje kad se ono moze napraviti u
svega 3 bita. to, naravno, u slucaju da je jezik napravljen u bf samom, ali svejedno me
nista ne sprecava da radim ovakve perverzije (nazvano brainfuck++ :) :
Code:


[22:15:18] pupoljak: ~ # cat sierp
EE8C0DF4CF4CEE1C4EC5F0D0DFA3ECFF1EE0DFFCEE1F0DECECEC3F1E0DFCE1E0EE0DECECFF1E07C0DF6CE1FDAD0DECCF1EA0D11E0DFCFCEE1CF0DEDF1E07C0DF4CE1FAA0D1E14FD0D3EC3F1E0D3EC3F1EE1E0FF0DFCFCEE1F0DE4ECF0DEDF1E0DFCE15F1F0DEECFF14ED0D3FC3E13F1F9CCA0D1FFCF1
[22:15:20] pupoljak: ~ # bfpp -t bfpp -f sierp
                               /\
                              /\/\
                             /\  /\
                            /\/\/\/\
                           /\      /\
                          /\/\    /\/\
                         /\  /\  /\  /\
                        /\/\/\/\/\/\/\/\
                       /\              /\
                      /\/\            /\/\
                     /\  /\          /\  /\
                    /\/\/\/\        /\/\/\/\
                   /\      /\      /\      /\
                  /\/\    /\/\    /\/\    /\/\
                 /\  /\  /\  /\  /\  /\  /\  /\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
               /\                              /\
              /\/\                            /\/\
             /\  /\                          /\  /\
            /\/\/\/\                        /\/\/\/\
           /\      /\                      /\      /\
          /\/\    /\/\                    /\/\    /\/\
         /\  /\  /\  /\                  /\  /\  /\  /\
        /\/\/\/\/\/\/\/\                /\/\/\/\/\/\/\/\
       /\              /\              /\              /\
      /\/\            /\/\            /\/\            /\/\
     /\  /\          /\  /\          /\  /\          /\  /\
    /\/\/\/\        /\/\/\/\        /\/\/\/\        /\/\/\/\
   /\      /\      /\      /\      /\      /\      /\      /\
  /\/\    /\/\    /\/\    /\/\    /\/\    /\/\    /\/\    /\/\
 /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
[22:19:10] pupoljak: ~ # bfpp -f sierp -o sierp.bfpp -x -t bfpp
[22:19:17] pupoljak: ~ # ll sierp
-rw-r--r--  1 root root 237 2004-08-09 01:52 sierp
[22:19:20] pupoljak: ~ # ll sierp.bfpp
-rw-r--r--  1 root root 118 2004-08-09 22:20 sierp.bfpp
[22:19:23] pupoljak: ~ # ll damn.b
-rw-r--r--  1 root root 296 2004-08-08 21:40 damn.b

Ovaj zadnji od 296 bajtova jest prva verzija bf trokuta sierpinskog koja se sa 296
bajtova smanjila u bfpp kodiranju na 118, sto tuce onu C verziju koja ima "samo" 133
bajta :) ona optimizirana bf verzija bi bila jos i manja (vjerojatno i ispod 100 bajtova),
ali nju mi se nije dalo transliterirat u bfpp kad ova vec radi. poanta: small is beautiful :)

skripta interpreter u bash-u je dodana kao privitak. ja sam gotov sa bf* do kraja svog mizernog zivota X-)
[ chupcko @ 10.08.2004. 09:02 ] @
Slatko :) moram priznati :). Doduse podseca me na moj prvi ioccc projekat, to je nasavrseniji kompresor na svetu. On naime sve datoteke bilo koje duzine (vece od 0) smanju za tacno 1 bajt :).
Sto je najbolje i dekompresor je radio.

Naravno u medjuvremenu imao sam i radnu verziju koja bilo koju datoteku skrati na jedan bit.
Doduse dekompresor nije bas zaziveo :(.

Uzgred kada bi koristili cisti 7bitni (ascii i jeste 7-bitni, zar ne) kod koji pakujemo u bajtove, dobili bi ustedu od otrpilike 1/8.

Dakle program od 133 karaktera je 133*7 bitova , sto kada popakujemo u bajtove dolazi:
133*7/8 = 116.375, dakle 117 sto je za jedan bajt krace od kompresovane verzije u brainfucku++ :).
[ Bojan Basic @ 10.08.2004. 10:24 ] @
Citat:
chupcko:
Doduse podseca me na moj prvi ioccc projekat, to je nasavrseniji kompresor na svetu. On naime sve datoteke bilo koje duzine (vece od 0) smanju za tacno 1 bajt :).
Sto je najbolje i dekompresor je radio.

Off-topic: zanimljivo deluje, možeš li mi poslati to?

P. S. Šta se dogodi ako skratiš za jedan bajt, pa onda skraćenu verziju još jednom, i tako više puta?
[ srki @ 10.08.2004. 10:39 ] @
Posto je nemoguce smanjiti sve datoteke za jedan bajt onda mi pada na pamet jedan trik kako to moze da se odradi. Mozemo da skinemo prvi ili poslednji bajt iz fajla i to ubacimo u ime fajla.
[ chupcko @ 10.08.2004. 10:42 ] @
Da srki, to je resenje :)
Doduse produzava se malo ime datoteke, ali nema veze, bitno je da radi :).

(ipak je to ioccc)
[ blaza @ 10.08.2004. 14:58 ] @
Postoji jos jedno resenje.
Procitajte ovaj tekst: The $5000 Compression Challenge
[ Sundance @ 10.08.2004. 22:19 ] @
Kao prvo, kod je napisan iskljucivo konceptualno i kao vjezba, a ne da sad tu pametujem sto je manje a sto vece :) a, skracena bfpp verzija bi bila manja od skracene C verzije (uz pretpostavku da si ovu smanjio za 1/4 odnosno 25%, a ovu drugu za 5-6 karaktera... ergo, C sux :)

a ja jednom kad sam bio u krizi, tj. kad nisam imao pristup kompjuteru vise od 3 dana, sam razbijao glavu o kompresijskom engineu koji bi koristio neka svojstva kongruencija, stvaranja booleovih fja iz proizvoljnog niza bitova (dakle diskretnih stanja 0 i 1) i njihov minimalni zapis u nekoj od baza, dakle STVORI neku fju koja ce za (i=0; i<2^g(duljine ulaznog buffera)-1; i++) { f(binarni zapis od i) }. ideja nikad nije zazivjela jer bi mi za minimalizaciju fje za stream od 1K trebalo bar par eona...

ali uvijek me zanimalo, postoje algoritmi od par linija koda koji ispljuju pseudoslucajne brojeve vrlo velikog perioda, kako to da je nemoguce iz jednog velikog broja koji se moze prikazati kao niz "pseudoslucajnih" vrijednosti stvoriti algoritam od par linija koda koji ih generira? jesu li ti brojevi "slucajniji" od onih koji se mogu? kad umrem, mislim da cu pitati gaussa :-)
[ chupcko @ 11.08.2004. 08:02 ] @
Sala sala, ono oko duzine je sala a i lepo se podesilo da bude krace za jedan bajt :)))).

Pa da, generalno kompresor i jeste generisanje funckije koja racuna neki streem, e sada ako ne vraca original nego malkice modifikovaneo, eto mp3-a :).

Ali eto da ne skrenemo malo sa teme, mozda nije lose napisati brainfuck kompresor u brainfucku :).
[ hyle @ 18.08.2004. 14:38 ] @
Brainfuck nije los ali mislim da je programski jezik Whitespace jos bolji
Program napisan u Whitespace-u se sastoji samo od nevidljivih znakova (space, tab, newline).

Autori kazu da ovaj programski jezik ima neke prednosti u odnosu na druge jezike, kao npr. to sto je dobar za spijune. Kazu da je dovoljno za neki top secret program da ga odstampate i obrisete fajl, a nakon toga niko nece znati da je prazan list papira u stvari jako bitan program

http://compsoc.dur.ac.uk/whitespace/index.php
[ Gojko Vujovic @ 18.08.2004. 16:55 ] @
Jao kako mocno. A najjaci je whitespace interpreter napisan u
whitespaceu. To ne mogu da razumem :)))
[ Goq @ 19.08.2004. 02:20 ] @




Ovaj primer "Conway's Life"-a mi se jako svideo.
Prva slika predstavlja "šaru" koja se pretvara u Sierpinskijev trougao.

[ caboom @ 19.08.2004. 08:22 ] @
Preporucujem da pogledate datum release-a whitespace interpreter-a...
[ srki @ 21.10.2004. 12:43 ] @
chupcko, posto se zanimas sa brainfuckom mozda bi te zanimala sledeca lista programskih jezika (sa primerima):
http://en.wikipedia.org/wiki/H..._program_in_esoteric_languages
[ chupcko @ 21.10.2004. 20:55 ] @
Pa ima puno egzoticnih programskih jezika, google je cudo,
evo recimo jedan mali link koji nudi puno raznih primera:

http://www.ulm.ccc.de/~schabi/weirdprog/

[ caboom @ 21.10.2004. 22:01 ] @
meni se ponajbolje dopada java2000...