Brainfuck: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
M (Przywrócono przedostatnią wersję, jej autor to Vae. Autor wycofanej wersji to 77.254.130.162.)
M (Robot wykonał kosmetyczne poprawki)
Linia 1: Linia 1:
{{Programowanie}}
{{Programowanie}}
'''Brainfork''' - (''Brainf**k, Brainfuck, BF'') jest [[Egzotyczne języki programowania|egzotycznym językiem programowania]]. [[Ekspert|Eksperci]] (nie wiadomo dlaczego, ale z nimi się nie dyskutuje) uważają, że [[prezentowanie poziomu (języki programowania)|prezentuje bardzo niski poziom]], niższy nawet od [[Asembler|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|programów]].
'''Brainfork''' - (''Brainf**k, Brainfuck, BF'') jest [[Egzotyczne języki programowania|egzotycznym językiem programowania]]. [[Ekspert|Eksperci]] (nie wiadomo dlaczego, ale z nimi się nie dyskutuje) uważają, że [[prezentowanie poziomu (języki programowania)|prezentuje bardzo niski poziom]], niższy nawet od [[Asembler|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|programów]].
==Historia Brainfork'a==
== Historia Brainfork'a ==
Brainfork został całkowicie wymyślony przed wojną przez Braina Forka - kambodżańskiego [[surrealizm|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 [[Fryderyk Nietzsche|niczego]] się nie przydaje, szybko stał się jednym z najważniejszych narzędzi współczesnego programisty.
Brainfork został całkowicie wymyślony przed wojną przez Braina Forka - kambodżańskiego [[surrealizm|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 [[Fryderyk Nietzsche|niczego]] się nie przydaje, szybko stał się jednym z najważniejszych narzędzi współczesnego programisty.


==Składnia Brainfork'a==
== Składnia Brainfork'a ==
Programy napisane w Brainfork'u składają się z ciągu niżej podanych znaków, pozostałe są ignorowane i traktowane przez [[kompilator]] za dostateczny powód wyświetlenia masy błędów i zawieszenia [[komputer|komputera]].
Programy napisane w Brainfork'u składają się z ciągu niżej podanych znaków, pozostałe są ignorowane i traktowane przez [[kompilator]] za dostateczny powód wyświetlenia masy błędów i zawieszenia [[komputer]]a.
{|border="1" cellspacing="0" cellpadding="5"
{|border="1" cellspacing="0" cellpadding="5"
!Znak
!Znak
Linia 36: Linia 36:


Podsumowując operatory '>' i '<' służą do przeszukiwania pamięci, '+' i '-' do oczyszczania lub dodawania wspomnień, '.' do przypominania, ',' do zapamiętywania, a '[' i ']' do uzykania efektu [[deżawi]].
Podsumowując operatory '>' i '<' służą do przeszukiwania pamięci, '+' i '-' do oczyszczania lub dodawania wspomnień, '.' do przypominania, ',' do zapamiętywania, a '[' i ']' do uzykania efektu [[deżawi]].
==Modyfikacje==
== Modyfikacje ==
Pisanie w Brainfork'u stało się swoistego rodzaju testem umiejętności programistycznych, szczególnie jest to widoczne w środowisku [[Kambodża|kambodżańskich]] koderów, gdzie powstało około 2000 ze wszystkich 3000 modyfikacji podstawowej wersji Brainfork'a. Oto niektóre z nich:
Pisanie w Brainfork'u stało się swoistego rodzaju testem umiejętności programistycznych, szczególnie jest to widoczne w środowisku [[Kambodża|kambodżańskich]] koderów, gdzie powstało około 2000 ze wszystkich 3000 modyfikacji podstawowej wersji Brainfork'a. Oto niektóre z nich:
* [[BrainBrain]] - wersja bardzo ambitna, umożliwiono [[programowanie obiektowe]]
* [[BrainBrain]] - wersja bardzo ambitna, umożliwiono [[programowanie obiektowe]]
Linia 45: Linia 45:
* [[BrainLamer]] - wersja light dla tzw. [[chacker|chackerów]] (nie mylić z hackerami!)
* [[BrainLamer]] - wersja light dla tzw. [[chacker|chackerów]] (nie mylić z hackerami!)
* [[UmbaUmba]] - z definicji przeznaczony jest dla naszych najbliższych krewnych w świecie zwierząt, czyli dla [[panda|pand]]
* [[UmbaUmba]] - z definicji przeznaczony jest dla naszych najbliższych krewnych w świecie zwierząt, czyli dla [[panda|pand]]
==Przykładowe programy==
== Przykładowe programy ==
===Hello, world===
=== Hello, world ===
Program wypisujący tekst "Nienawidzę świata, a jeszcze bardziej siebie"
Program wypisujący tekst "Nienawidzę świata, a jeszcze bardziej siebie"
<pre>
<pre>
Linia 60: Linia 60:
</pre>
</pre>


===INDoctor===
=== INDoctor ===
Program do dowodzenia twierdzeń metodą [[indukcja matematyczna|indukcji matematycznej]] (wiersze od 44364436 do 44364448).
Program do dowodzenia twierdzeń metodą [[indukcja matematyczna|indukcji matematycznej]] (wiersze od 44364436 do 44364448).
<pre>
<pre>

Wersja z 14:06, 31 gru 2011

Ten artykuł jest częścią cyklu naukowego języki komputerowe.

Języki programowania:


Inne języki komputerowe:


edytuj ten szablon

Brainfork - (Brainf**k, Brainfuck, BF) jest egzotycznym językiem programowania. 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 Brainfork'a

Brainfork został całkowicie wymyślony przed wojną przez Braina Forka - 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 Brainfork'a

Programy napisane w Brainfork'u składają się z ciągu niżej podanych znaków, pozostałe są ignorowane i traktowane przez kompilator za dostateczny powód wyświetlenia masy błędów i zawieszenia komputera.

Znak Znaczenie
> Operator ingrediencji, penetruje następny zgodnie z ruchem wskazówek zegara obszar pamięci
< Operator degrediencji, penetruje poprzedni zgodnie z ruchem wskazówek zegara obszar pamięci
+ Operator inkremacji, zwiększa ilość śmiesznych wspomnień w miejscu pamięci wskazywanym przez wskazujący wskaźnik
- Operator dekremacji, zmniejsza ilość śmiesznych wspomnień w miejscu pamięci wskazywanym przez wskazujący wskaźnik
. Operator out, komputer robi zakodowaną w tym miejscu pamięci czynność
, Operator in, komputer słucha co do niego mówi użytkownik, i w zależności od humoru zapamiętuje to lub i nie
[ Operator skoku, skacze za najbliższe ], jeśli we wskazywanym przez wskazujacy wskaźnik miejscu w pamięci nie ma żadnych wspomnień
] Operator odskoku, skacze przed najbliższe [

Podsumowując operatory '>' i '<' służą do przeszukiwania pamięci, '+' i '-' do oczyszczania lub dodawania wspomnień, '.' do przypominania, ',' do zapamiętywania, a '[' i ']' do uzykania efektu deżawi.

Modyfikacje

Pisanie w Brainfork'u stało się swoistego rodzaju testem umiejętności programistycznych, szczególnie jest to widoczne w środowisku kambodżańskich koderów, gdzie powstało około 2000 ze wszystkich 3000 modyfikacji podstawowej wersji Brainfork'a. Oto niektóre z nich:

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).

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