Edytujesz „Brainfuck”

Z Nonsensopedii, polskiej encyklopedii humoru

Uwaga: Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli zalogujesz się lub utworzysz konto, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.

Ta edycja może zostać anulowana. Porównaj ukazane poniżej różnice między wersjami, a następnie zapisz zmiany.

Aktualna wersja Twój tekst
Linia 1: Linia 1:
{{Programisto}}
<br />
{{Programowanie}}
{{Programowanie}}
{{cytat|Najważniejsze jest niewidoczne dla oczu.|[[Antoine de Saint-Exupéry]] zapytany, czemu nie napisał „Małego Księcia” w [[Java|Javie]]}}
{{cytat|Najważniejsze jest niewidoczne dla oczu.|[[Antoine de Saint-Exupéry]] zapytany, czemu nie napisał „Małego Księcia” w [[Java|Javie]]}}
'''Brainfuck''' (''Brainf**k, BF'') – [[Ezoteryczne języki programowania|ezoteryczny język programowania]]<ref>Nie pytaj, skąd ta nazwa</ref>. [[Ekspert|Eksperci]] (nie wiadomo dlaczego, ale z nimi się nie dyskutuje) uważają, że 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'') – [[Ezoteryczne języki programowania|ezoteryczny język programowania]]<ref>nie pytaj skąd ta nazwa</ref>. [[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 Brainforka ==
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.


== Historia Brainfucka ==
== Składnia Brainforka ==
Programy napisane w Brainforku 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 osobisty|komputera]].
Brainfuck został całkowicie wymyślony przed wojną przez Braina Fucka – kambodżańskiego [[surrealizm|surrealistę]], widzącego w programowaniu nową dziedzinę sztuki. Do tworzenia tego języka zainspirowało go zjawisko zbierania się [[Chipsy|chipsów]] pod [[Klawiatura|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.
{|border="1" cellspacing="0" cellpadding="5"
!Znak
!Znaczenie
|---
|align="center"|>
|align="center"|Operator ingrediencji, penetruje następny zgodnie z ruchem wskazówek zegara obszar pamięci
|---
|align="center"|<
|align="center"|Operator degrediencji, penetruje poprzedni zgodnie z ruchem wskazówek zegara obszar pamięci
|---
|align="center"|+
|align="center"|Operator inkrementacji, zwiększa ilość śmiesznych wspomnień w miejscu pamięci wskazywanym przez wskazujący wskaźnik
|---
|align="center"|-
|align="center"|Operator dekrementacji, zmniejsza ilość śmiesznych wspomnień w miejscu pamięci wskazywanym przez wskazujący wskaźnik
|---
|align="center"|.
|align="center"|Operator out, komputer robi zakodowaną w tym miejscu pamięci czynność
|---
|align="center"|,
|align="center"|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
|---
|align="center"|[
|align="center"|Operator skoku, skacze za najbliższe ], jeśli we wskazywanym przez wskazujacy wskaźnik miejscu w pamięci nie ma żadnych wspomnień
|---
|align="center"|]
|align="center"|Operator odskoku, skacze przed najbliższe [
|---
|align="center"|Y
|align="center"|Operator rozwidelczenia, powoduje utworzenie <del>dziecka</del> klona, który wykonuje od tego momentu ten sam program i posiada tą samą pamięć, z tym wyjątkiem, że jego wskazujący wskaźnik zostaje przesunięty o 1 w prawo, a ilość wspomnień w miejscu na które on wskazuje zostaje ustawiona na 1. Tymczasem rodzic zapomina wszystkie wspomnienia z miejsca, w którym akurat był.
|}


Podsumowując operatory '>' i '<' służą do przeszukiwania pamięci, '+' i '-' do oczyszczania lub dodawania wspomnień, '.' do przypominania, ',' do zapamiętywania, '[' i ']' do uzykania efektu [[déjà vu|deżawi]], a 'Y' do [[seks|rozmnażania]].
== 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 powód do wyświetlenia masy błędów i zawieszenia [[komputer osobisty|komputera]].


== Modyfikacje ==
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 [[déjà vu|deżawi]], a 'Y' do [[seks|rozmnażania]]. Wystarczy.
Pisanie w Brainforku 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 Brainforka. Oto niektóre z nich:
* BrainBrain – wersja bardzo ambitna, umożliwiono [[programowanie obiektowe]].
* VisualFork – komercyjna wersja wyprodukowana przez potentata branży – [[Microsoft Corporation|Microsoft]].
* DoubleFork – przeszukiwanie pamięci odbywa się teraz wzdłuż i wszerz.
* BrainDamage – umożliwia przeszukiwanie podświadomości komputera oraz wpływanie na jego [[ego]].
* HardFork – czy 2 znaki wystarczają? Polemika trwa nadal.
* BrainLamer – wersja light dla tzw. [[cracker]]ów.
* UmbaUmba – z definicji przeznaczony jest dla naszych najbliższych krewnych w świecie zwierząt, czyli dla [[panda|pand]].


== Przykładowe programy ==
== Przykładowe programy ==
Linia 15: Linia 57:
Program wypisujący tekst „Nienawidzę świata, a jeszcze bardziej siebie”
Program wypisujący tekst „Nienawidzę świata, a jeszcze bardziej siebie”
<pre>
<pre>
.. ..
.. ..
.+++++. .+++++.
.+++++. .+++++.
++++++++.++++++++
++++++++.++++++++
+++++++++++++++++
+++++++++++++++++
.+++++++++++++++.
.+++++++++++++++.
.+++++++++++++.
.+++++++++++++.
.+++++++++.
.+++++++++.
.+++++.
.+++++.
.+.
.+.
</pre>
</pre>


Linia 43: Linia 85:
<---.+++.>+++.+.+.<.<<.>.>----]]>++++.+++++.---.-.<<<<>.--.<<.>.+++,,,.+++<---<---++
<---.+++.>+++.+.+.<.<<.>.>----]]>++++.+++++.---.-.<<<<>.--.<<.>.+++,,,.+++<---<---++
</pre>
</pre>

== Zobacz też ==
* [[BeFunge]]
* [[COW]]
* [[HQ9+]]
* [[Malbolge]]


{{Przypisy}}
{{Przypisy}}

{{stopka}}
[[Kategoria:Ezoteryczne języki programowania]]
[[Kategoria:Ezoteryczne języki programowania]]
Cc-white.svg Wszystko, co napiszesz na Nonsensopedii, zgadzasz się udostępnić na licencji cc-by-sa-3.0 i poddać moderacji.
NIE UŻYWAJ BEZ POZWOLENIA MATERIAŁÓW OBJĘTYCH PRAWEM AUTORSKIM!
Anuluj Pomoc w edycji (otwiera się w nowym oknie)