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[edytuj • edytuj kod]
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[edytuj • edytuj kod]
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 powód do 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[edytuj • edytuj kod]
Hello, world[edytuj • edytuj kod]
Program wypisujący tekst „Nienawidzę świata, a jeszcze bardziej siebie”
.. .. .+++++. .+++++. ++++++++.++++++++ +++++++++++++++++ .+++++++++++++++. .+++++++++++++. .+++++++++. .+++++. .+.
INDoctor[edytuj • edytuj kod]
Program do dowodzenia twierdzeń metodą indukcji matematycznej (wiersze od 44364436 do 44364448).
>>>>>>>>++++[<++++++++>-]<>>++>++++[<++++++++>-]<>++++[<++++++++>-]<>>++>>++++++++[< +++++++++>-]<++++>>++++[<++++++++++++>-]<+++++>>+++++++>++++[<++++++++>-]<>>++++++++ +++++++++>-]<+++<<<>.+++++++>.++.--.<<.>>-.+++++.----.<<.>>>.<---.+++.>+++.+.+.<.<<. >.>--.+++++.---.++++.-------.++>++++>++.-------.-.<<<.>+.>>+++++++.---.-----.<<<.+-- .--.<<.>>-.++--.++-----.+++.<<.>>>++.-.>>++++++-----.-.<<++++++>>>><.>>-.++-++>-]<>+ +>-]<++++.--[<+++++>-]<-----.++.<<+.<<+.<<++++[][][][]+-,..<>,.<>>>>+++++-+-+-,..,.> >>>++++++++++++[++++>>.<<<>>.--]]>++++>+++++[<+++.---]<>.--.<<.>>-.+++++.----.<<.>>> .<---.+++.>+++.+.+.<.<<.>.>--.+++++.---.++++.-------.++>++++>++++>.>>.---.-----.<<<. <<.>>++++++++++++++.>>>[-]<[-]<[-]<[-]+++++++++++++.---.[-]<<<<<<<<<<<<<<[>>>>>>>>+> +<<<<<<<<<-]>>>>>>>>>.+++++++>.++.--.<<.>>-.+++++.----.<<.>>>.<---.+++.>+++.+.+.<.<< .>.>--.+++++.---.++++.<<>.+++++++>.++.--.<<.>>-.+++++.----.<<.>>>.<---.+++.>+++.+.+. <.<<.>.>--.+++++.---.++++.-.--]]>++++>+++++[<+++.---]<>.--.<<.>>-.+++++.----.<<.>>>. <---.+++.>+++.+.+.<.<<.>.>----]]>++++.+++++.---.-.<<<<>.--.<<.>.+++,,,.+++<---<---++
Zobacz też[edytuj • edytuj kod]
Przypisy
- ↑ Nie pytaj, skąd ta nazwa