25 czerwca 2009

Sesjo!


No i pozostało tylko KZU. Dżizaz, jakże się już nie chce, totalne rozprzężenie, nic mnie nie rusza, nawet już tapetę zmieniłem z sesyjną na ładną... Tylko weź się człowieku zmuś do ostatniego tysiąca slajdów, odstaw gry, roflcoptera, wszystie rozpraszacze.
Aha, dostałem dziwnej fazy na ten kawałek: elektryczne gitary - wszystko chuj

15 czerwca 2009

Przygotowując się do egzaminu z Podstaw Automatyki

Malbolge.
Jest nazwą ósmego kręgu piekła Dantego, w którym wieczne męki cierpią dusze róznej maści oszustów, złodziei, kłamców.
Jest też nazwą ezoterycznego języka programowania, zaprojektowanyego jako najtrudniejszy w użytku. (Jakkolwiek istnieje kilka innych nieużytecznie trudnych języków, żaden nie był tworzony z tym założeniem - np. INTERCAL powstał, by nie mieć nic wspólnego z jakimkolwiek programowaniem [program który w C wykonuje się 0,5sec, INTERCALowi zajmuje 17 godzin], a BrainFuck miał być możliwie małym językiem kompletnym w sensie Turinga [kompilator dla Amigi ma 240B]).

Program wykorzystuje ten sam obszar pamięci na dane i rozkazy. Operuje na trzech rejestrach, nazywanych A, C i D. A jest to akumulator, używany do wszelkich operacji na danych - jest ustawiany na wartość wyniku. C jest wskaźnikiem rozkazów, jak z nazwy wynika wskazuje w kodzie aktualnie wykonywany rozkaz. D jest wskaźnikiem danych, o działaniu analogicznym do C. Program po rozpoczęciu ma wszystkie rejestry ustawione na 0.

Podczas wykonywania programu, sprawdzane jest, czy aktualna instrukcja jest graficznym znakiem ASCII (kody 33-126).
Jeśli tak jest, od jej wartości odejmowane jest 33, dodawane C, wszystko dzielone modulo 94. Reszta dzielenia mod 94 jest wskaźnikiem pozycji w tablicy 94 znaków:

+b(29e*j1VMEKLyC})8&m#~W>qxdRp0wkrUo[D7,XTcA"lI
.v%{gJh4G\-=O@5`_3i
Sprawdzane jest, czy ustalony w ten sposób znak jest jednym z 8 niżej wymienionych rozkazów, jeśli tak - jest wykonywany, jeśli nie - cóż... :) Jeżeli oryginalna instrukcja (przed całym tym liczeniem) nie jest drukowalnym znakiem ASCII, program kończy sie w tym miejscu.

Gdy interpreter czyta plik źródłowy, sprawdza w ten sposób każdy (niebiały) znak po kolei. Jeżeli żaden z nich nie okazuje się być rozkazem, plik jest odrzucany.

Po wykonaniu instrukcji, od C odejmowane jest 33, a wynik jest indeksem w kolejnej tablicy:
5z]&gqtyfr$(we4{WP)H-Zn,[%\3dL+Q;>U!pJS72FhOA1C
B6v^=I_0/8|jsb9m<.TVac`uY*MK'X~xDl}REokN:#?G"i@
Odpowiedni znak jest przepisywany do C, które następnie jest zwiększane o 1.

Rozkazami są znaki: j, i, *, p, <, /, v, o.
Rozkazy < i / są to operacje I/O (czytanie i zapis do A oraz wypisanie A), j oraz i służą do modyfikacji wartości odpowiednio D i C, * wydaje się być przesunięciem trójkowym D w prawo (sic!), działania p nie czaję. v zatrzymuje program, o nie robi nic poza inkrementacją C i D (co zresztą czynią wszystkie instrukcje).

Tak zdefiniowany język programowania uważa się za możliwy do bycia kompletnym w sensie Turinga (nikt tego nie udowodnił, aczkolwiek w oczywisty (aha, zależy dla kogo) sposób spełnia część kryteriów i prawdopodobnie pozostałe).

W Malbolge żaden człowiek nie napisał jeszcze programu. Do napisania "Hello World!" użyto algorytmów genetycznych, zaś kod wygląda tak:
(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<
Jest to najbardziej złożony program w tym języku.

The day that someone writes, in Malbolge, a program that simply copies its input to it's output, is the day my hair spontaneously turns green. It's the day that elephants are purple and camels fly, and a cow can fit through a needle's eye.

05 czerwca 2009

Jechałem autobusem, N37. N jak nocny. Mijałem znajome miejsca... Remiza, przy której w zimową sesję ze współlokatorką Moniką zbijaliśmy stres przy fajce, L&M czy innym czymś, sklep nocny w którym o pierwszej w nocy zaopatrywaliśmy się w piwo, Kubusia i tanią a dobrą wódkę (-to może Krakowska? -da pani Smirnoffa), rozświetloną sodówkami Łazienkowską, której moja w końcu nie zobaczyła, kolumnady przy pl. Zbawiciela, kino 'Luna' przy którym na porannym kacu (szukając Coli, nie Pepsi, tylko właśnie Coli, bo wieczorem w karty przerżnąłem) po popijawie w Olą spotkałem doktora od elektrodrążarek... Wspomnienia szkodzą, ale co z tego, skoro są takie... fajne?

Znowu widziałem wschód słońca... Idąc spać, a nie wstawszy. Kurka, niech ktoś mi powie że w tym kraju był rezyser nad Pasikowskiego.

Dobra, idę wybierać specjalność. Piąta nad ranem.

03 czerwca 2009


Mój komp mnie dziś zabił... dźwięk mi się jakoś lewo odtwarzał, ewidentnie mikser poszedł w krzaki, zaglądam w regulację głośności - zamiast okienka dostałem w/w komunikat. Masakra.

PS. Stara metoda "uruchom ponownie" dalej działa.