Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Programski jezik Brainfuck

[es] :: Art of Programming :: Programski jezik Brainfuck

Strane: < .. 1 2 3

[ Pregleda: 12380 | Odgovora: 57 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Programski jezik Brainfuck06.08.2004. u 21:50 - pre 239 meseci
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+ :).
CHUPCKO
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.cmu.carnet.hr



Profil

icon Re: Programski jezik Brainfuck07.08.2004. u 20:45 - pre 239 meseci
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 :-)
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Programski jezik Brainfuck07.08.2004. u 21:18 - pre 239 meseci
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 ?
CHUPCKO
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.cmu.carnet.hr



Profil

icon Re: Programski jezik Brainfuck09.08.2004. u 22:05 - pre 239 meseci
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-)
Prikačeni fajlovi
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Programski jezik Brainfuck10.08.2004. u 09:02 - pre 239 meseci
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++ :).

CHUPCKO
 
Odgovor na temu

Bojan Basic
Novi Sad

SuperModerator
Član broj: 6578
Poruke: 3996
*.smin.sezampro.yu.

Jabber: bojan_basic@elitesecurity.org
ICQ: 305820253


+605 Profil

icon Re: Programski jezik Brainfuck10.08.2004. u 10:24 - pre 239 meseci
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?
Ljubičice crvena, što si plava kô zelena trava.
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.dialup.xtra.co.nz



+3 Profil

icon Re: Programski jezik Brainfuck10.08.2004. u 10:39 - pre 239 meseci
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.
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Programski jezik Brainfuck10.08.2004. u 10:42 - pre 239 meseci
Da srki, to je resenje :)
Doduse produzava se malo ime datoteke, ali nema veze, bitno je da radi :).

(ipak je to ioccc)

CHUPCKO
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
*.vdial.verat.net



+3 Profil

icon Re: Programski jezik Brainfuck10.08.2004. u 14:58 - pre 239 meseci
Postoji jos jedno resenje.
Procitajte ovaj tekst: The $5000 Compression Challenge
O_o
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.cmu.carnet.hr



Profil

icon Re: Programski jezik Brainfuck10.08.2004. u 22:19 - pre 239 meseci
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 :-)
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Programski jezik Brainfuck11.08.2004. u 08:02 - pre 239 meseci
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 :).

CHUPCKO
 
Odgovor na temu

hyle
Perica Milošević
Belgrade

Član broj: 30030
Poruke: 150
*.yubc.net

Sajt: www.linkedin.com/in/peric..


+4 Profil

icon Re: Programski jezik Brainfuck18.08.2004. u 14:38 - pre 239 meseci
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
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651
Via: [es] mailing liste



+165 Profil

icon Re: Programski jezik Brainfuck18.08.2004. u 16:55 - pre 239 meseci
Jao kako mocno. A najjaci je whitespace interpreter napisan u
whitespaceu. To ne mogu da razumem :)))
 
Odgovor na temu

Goq

Član broj: 12091
Poruke: 79
*.ppp-bg.sezampro.yu



Profil

icon Re: Programski jezik Brainfuck19.08.2004. u 02:20 - pre 239 meseci




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

 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
80.93.230.*

ICQ: 60630914


+1 Profil

icon Re: Programski jezik Brainfuck19.08.2004. u 08:22 - pre 239 meseci
Preporucujem da pogledate datum release-a whitespace interpreter-a...
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
..chandran.sbs.auckland.ac.nz.



+3 Profil

icon Re: Programski jezik Brainfuck21.10.2004. u 12:43 - pre 237 meseci
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
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Programski jezik Brainfuck21.10.2004. u 20:55 - pre 237 meseci
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/


CHUPCKO
 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
*.vdial.verat.net.

ICQ: 60630914


+1 Profil

icon Re: Programski jezik Brainfuck21.10.2004. u 22:01 - pre 237 meseci
meni se ponajbolje dopada java2000...
 
Odgovor na temu

[es] :: Art of Programming :: Programski jezik Brainfuck

Strane: < .. 1 2 3

[ Pregleda: 12380 | Odgovora: 57 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.