Encyklopedia w Markpol

Reklama:

Brainfuck to język programowania stworzony przez Urbana MĂźllera około roku 1993. Nazywany też czasem Brainf
  • ck, Brainf***, lub po prostu BF.

    Budowa języka

    Celem MĂźllera było stworzenie języka z jak najmniejszą ilością instrukcji, oraz jak najmniejszego kompilatora. Oryginalny kompilator, napisany na Amigę ma rozmiar 240 bajtów. Jak sugeruje nazwa, programowanie w tym języku jest dosyć trudne. Bez względu na to, w Brainfucku można zaimplementowac dowolny algorytm, ponieważ jest on zupełny w sensie Turinga. Język opiera się o prosty model maszyny, składający się, oprócz programu, z tablicy bajtów (zazwyczaj 30000) zainicjalizowanych zerami, oraz wskaźnika do tej tablicy, zainicjalizowanego tak, aby wskazywał na jej pierwszy element.

    Instrukcje

    Brainfuck zawiera 8 nastepujących jednoznakowych instrukcji :
    ZnakZnaczenieOdpowiednik w C
    > zwiększa wskaźnik o 1p++
    < zmniejsza wskaźnik o 1p--
    + zwiększa o 1 bajt w bieżącej pozycjit[p]++
    - zmniejsza o 1 bajt w bieżącej pozycjit[p]--
    . wyświetla znak w bieżącej pozycji(ASCII)putchar(t[p])
    , pobiera znak i wstawia go w bieżącej pozycji(ASCII)t[p]=getchar()
    [ skacze do odpowiadającego mu ] jeśli w bieżącej pozycji znajduje się 0while(t[p]){
    ] skacze do odpowiadającego mu [}
    Przy czym "bieżąca pozycja" oznacza element w tablicy wskazywany przez wskaźnik. Wszystkie inne znaki są ignorowane, co jest przydatne przy pisaniu komentarzy.

    Przykłady

    Hello World!

    Następujący program wyświetla napis "Hello World!" na naszym ekranie: ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++. >+. +++++++. . +++. >++. <<+++++++++++++++. >. +++. ------. --------. >+. >.

    Prosta pętla

    Ten program pobiera znaki, i wyświetla je na ekranie dopóki nie zostanie wprowadzony znak o kodzie 0: ,[.,]

    Zobacz też

    Lista podobnych języków:
  • Doublefuck, odmiana Brainfucka z dwoma buforami pamięci.
  • Brainfork
  • PATH, połączenie Brainfucka i Befunge.
  • SNUSP, podobnie, lecz ze stosem wywołań.
  • L33t
  • L00P
  • Ook!
  • QUOTE
  • Aura
  • Moo
  • ETA
  • Befunge
  • Whitespace
  • Malbolge
  • Perl

    Zobacz w sieci

  • [http://justice.loyola.edu/~mcoffey/pr/5k/i.html Interpreter Brainfucka online]
  • [http://home.arcor.de/partusch/html_en/bfd.html Brainfucked - Brainfuck Compiler]
  • [http://www.microlyrix.com/software/bfdev/ Brainfuck interpreter with integrated debugger (IDE) for Windows]
  • [http://www.catseye.mb.ca/esoteric/bf/ http://www.catseye.mb.ca/esoteric/bf/] - zawiera między innymi kompilatory i przykładowe programy

    Chcesz wypromować swoją stronę w internecie?? - nie zwlekaj pozycjonowanie w Luman.biz to rozsądny wybór
    2005 Encyklopedia
    These materials are based onWikipedia and licensed under the GNU FDL
    Vegas Hotel|Remortgages|New York Hotel|TurboTax Software|Loans