Brainfuck
Ten artykuł jest częścią cyklu naukowego języki komputerowe. |
Języki programowania: |
Inne języki komputerowe: |
|
edytuj ten szablon |
Najważniejsze jest niewidoczne dla oczu.
- Antoine de Saint-Exupéry zapytany, czemu nie napisał „Małego Księcia” w Javie
Brainfuck (Brainf**k, BF) – ezoteryczny język programowania[1]. Eksperci (nie wiadomo dlaczego, ale z nimi się nie dyskutuje) uważają, że prezentuje bardzo niski poziom, niższy nawet od asemblera, można by nawet rzec, że żenujący. Jednak nie przeszkadza to milionom programistów tutaj przed milionami użytkowników używać tego języka do pisania programów.
Historia Brainfucka
Brainfuck został całkowicie wymyślony przed wojną przez Braina Fucka – kambodżańskiego surrealistę, widzącego w programowaniu nową dziedzinę sztuki. Do tworzenia tego języka zainspirowało go zjawisko zbierania się chipsów pod klawiaturą. Jako, że sam język jest zupełnie bez sensu i do niczego się nie przydaje, szybko stał się jednym z najważniejszych narzędzi współczesnego programisty.
Składnia Brainfucka
Programy napisane w Brainfucku składają się z ciągu niżej podanych znaków, pozostałe są ignorowane i traktowane przez kompilator za dostateczny do powód wyświetlenia masy błędów i zawieszenia komputera.
W skrócie: operatory '>' i '<' służą do przeszukiwania pamięci, '+' i '-' do oczyszczania lub dodawania wspomnień, '.' do przypominania, ',' do zapamiętywania, '[' i ']' do uzykania efektu deżawi, a 'Y' do rozmnażania. Wystarczy.
Przykładowe programy
Hello, world
Program wypisujący tekst „Nienawidzę świata, a jeszcze bardziej siebie”
.. .. .+++++. .+++++. ++++++++.++++++++ +++++++++++++++++ .+++++++++++++++. .+++++++++++++. .+++++++++. .+++++. .+.
INDoctor
Program do dowodzenia twierdzeń metodą indukcji matematycznej (wiersze od 44364436 do 44364448).
>>>>>>>>++++[<++++++++>-]<>>++>++++[<++++++++>-]<>++++[<++++++++>-]<>>++>>++++++++[< +++++++++>-]<++++>>++++[<++++++++++++>-]<+++++>>+++++++>++++[<++++++++>-]<>>++++++++ +++++++++>-]<+++<<<>.+++++++>.++.--.<<.>>-.+++++.----.<<.>>>.<---.+++.>+++.+.+.<.<<. >.>--.+++++.---.++++.-------.++>++++>++.-------.-.<<<.>+.>>+++++++.---.-----.<<<.+-- .--.<<.>>-.++--.++-----.+++.<<.>>>++.-.>>++++++-----.-.<<++++++>>>><.>>-.++-++>-]<>+ +>-]<++++.--[<+++++>-]<-----.++.<<+.<<+.<<++++[][][][]+-,..<>,.<>>>>+++++-+-+-,..,.> >>>++++++++++++[++++>>.<<<>>.--]]>++++>+++++[<+++.---]<>.--.<<.>>-.+++++.----.<<.>>> .<---.+++.>+++.+.+.<.<<.>.>--.+++++.---.++++.-------.++>++++>++++>.>>.---.-----.<<<. <<.>>++++++++++++++.>>>[-]<[-]<[-]<[-]+++++++++++++.---.[-]<<<<<<<<<<<<<<[>>>>>>>>+> +<<<<<<<<<-]>>>>>>>>>.+++++++>.++.--.<<.>>-.+++++.----.<<.>>>.<---.+++.>+++.+.+.<.<< .>.>--.+++++.---.++++.<<>.+++++++>.++.--.<<.>>-.+++++.----.<<.>>>.<---.+++.>+++.+.+. <.<<.>.>--.+++++.---.++++.-.--]]>++++>+++++[<+++.---]<>.--.<<.>>-.+++++.----.<<.>>>. <---.+++.>+++.+.+.<.<<.>.>----]]>++++.+++++.---.-.<<<<>.--.<<.>.+++,,,.+++<---<---++
Kalkulator
Program obliczający obliczenia wpisane do stworzonego przez nas okienka (wersja z zadaniami do liczby 1 000 000).
>>><<+[[....<>>[[[][+++++++++++->><><>[[[[[***<>]<<>><<..<><++[] ++++ ---+++[[[][[[][<<><><<.....,---999<<<++p;[[]]]][--++..,,-+++---[[][<<< <><><><><><><><>><<<><><><><><><<><><><><><><><][[[][][][]-[]-[-[]-[ [][-]..][,,..---++++++[]]]]<><>....[-[[][][][<><><>><><<<><<><<<> /* Kalkjuleid dys tu milijon*/ <><[][]][[][][[[<<><>-+_+<>><><><<[[[[] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ----------+++---[[][][]-[-][-][++++++++++[[[[][[][<<<<>>><<<<++++----
Zobacz też
Przypisy
- ↑ Nie pytaj, skąd ta nazwa