Trochę podstaw, czyli jak powiedzieć "nie widzę cię"Jedną rzecz mogę powiedzieć bez pokrętnych wyjaśnień: ten język jest analityczny jak cholera. To dlatego, że jest oparty o stos.
Dla tych, którzy nie wiedzą, jak działa stos, przykład: niech będzie sobie zdanie "ja ty widzieć nie" w stosowym pseudopolskim. Żeby zrobić z tego bardziej zjadliwą postać, trzeba wrzucać kolejne słowa na stos i aplikować odpowiednie transformacje. W tym przypadku:
Pierwszym słowem jest "ja". Jest to zaimek, więc nie modifykuje ani nie łączy wyrażeń już znajdujących się na stosie, więc można go po prostu tam wrzucić:
(ja)
Drugie słowo, "ty", również jest zaimkiem:
(ty)
(ja)
Trzecie słowo, "widzieć", jest zaimkiem przechodnim. Z tego powodu nie można go tak po prostu wrzucić na stos, tylko trzeba przy jego pomocy połączyć dwa wyrażenia ze szczytu stosu:
(widzieć)
(ty)
(ja)
Wynik:
(widzieć (ja) (ty))
Ostatnim słowem jest "nie", które neguje wyrażenie:
(nie)
(widzieć (ja) (ty))
Wynik:
(nie (widzieć (ja) (ty)))
Ponieważ właśnie skończyły się słowa, to drzewko jest "wynikiem" zdania. Jest ono podobne do drzewka, jakie powstałoby analizując polskie "(ja) nie widzę cię", więc powinno już być proste do zrozumienia.
Ale czwarty nie do końca tak działa, już prędzej Fith. Różnica polega na tym, że czwarty ma…
Osobne strumienieMianowicie, osobne strumienie dla "instrukcji" i "stałych".
Instrukcjami są słowa, które bezpośrednio modyfikują zawartość stosu, czy to poprzez dodawanie nowych wyrażeń, czy poprzez modyfikowanie już wrzuconych wyrażeń.
Stałymi są te wyrazy, które same posiadają jakieś znaczenie (ang. content word, to ma jakiś polski odpowiednik?).
Instrukcje zawsze są interpretowane od lewej do prawej. Stałe są interpretowane w takiej kolejności, w jakiej każą instrukcje.
Strumienie oddziela się przecinkiem. W mowie prawdopodobnie dobrym pomysłem byłoby osobne słowo.
Jak wrzucić coś na stos?Aby wrzucić coś na stos, należy użyć instrukcji, która wrzuca coś na stos. Naprawdę. Nie żartuję.
Najbardziej postawową jest PUSH. Jest ona czynna, więc natychmiast po wrzuceniu czegoś na stos próbuje zmodifykować N wyrażeń ze szczytu stosu, gdzie N to inherentna dla wrzucanego słowa liczba modifykowanych wyrażeń (arzystość? arność? ang. arity). Przykładowo, dla rzeczowników wynosi ona 0 (więc rzeczowniki są po prostu wrzucane na stos), dla przymiotników lub czasowników nieprzechodnich 1, a dla czasowników przechodnich 2.
Z instrukcją PUSH jest jeden problem: jest tak częsta, że wymawia się ją []. Każdy "goły" liczebnik w strumieniu instrukcji jest instrukcją PUSH, gdzie wartość tego liczebnika jest indeksem (liczonym od 1) stałej, którą należy wrzucić na stos.
Czy ja napisałem liczebnik?Owszem. Ten język pewnie się bardzo jankowi spodoba, bo nie da się w nim nic wyrazić bez liczebników. Liczebniki są też jedyną częścią mowy, która może wystąpić w obu strumieniach. W strumieniu instrukcji są argumentami dla instrukcji lub instrukcjami PUSH. W strumieniu stałych są zwyczajnymi liczebnikami (i są unarne, z oczywistych powodów).
Używany jest system dwunastkowy. Liczebniki od 13 do 144 tworzone są tak, jak się można tego spodziewać, czyli 25 to xwumchmuli. Większe liczby tworzy się cholera wie jak, obym ich nie potrzebował. Zera nie ma.
1 - li
2 - xwum
3 - xlo
4 - kwel
5 - mjon
6 - geg
7 - qnljeg
8 - djom
9 - tin
10 - djomxwum
11 - nwal
12 - chmu
Więc jak powiedzieć "nie widzę cię"?Brakuje już tylko jednej części układanki: negacji.
Negacja w czwartym jest, podobnie jak wiele innych rzeczy, które w bardziej typowych językach analitycznych byłyby partykułami,
instrukcją. Instrukcją, która bierze ostatnio wrzucone słowo i je neguje. Zapisuje się ją NOT, a właściwym słowem jest "xag".
Ponieważ "ja", "ty" i "widzieć" są w czwartym prostymi słowami, a nie złożeniami (które w czwartym występują i potrafią być popier… ekhm, zawiłe), ułożenie zdania jest proste:
PUSH 1 PUSH 2 PUSH 3 NOT, ja ty widzieć
A to można przetłumaczyć słowo po słowie:
Li xwum xlo xag, mu pnim 'em.
1 2 3 NOT, ja ty widzieć
Nie widzę cię.