O projekcie

Revomer jest ezoterycznym językiem programowania. Oznacza to, że programowanie w nim wymaga operowania na zupełnie innym poziomie abstrakcji, niż ten, do którego przyzwyczajają nas "tradycyjne" języki, np. C++ czy Pascal, wobec czego takie języki popularne są wśród masochistów lub osób, które mają naprawdę dużo wolnego czasu. Każdy, kto napisał w nim choćby jeden program, choćby nie wiadomo, jak prosty, odczuje z tego zadania osobistą satysfakcję. Wielu zapewne doda słowa: "nigdy więcej".

Revomer to wspólne dzieło Krzysztofa Piecucha oraz Tomasza Jędrzejewskiego, stworzone w dniach 28 sierpnia - 1 września 2006 podczas Wielodyscyplinarnych Warsztatów Wakacyjnych odbywających się w LO im. Stanisława Staszica w Lublinie. Jego pierwsza specyfikacja została spisana na szarym papierze toaletowym, a interpreter powstał na laptopie ulokowanym w kącie sali gimnastycznej. Obecnie projekt prężnie się rozwija - posiada już własną stronę internetową oraz repozytorium SVN.

Podstawowe założenia oraz koncepcje projektowe Revomera można zawrzeć w kilku prostych punktach:

  1. Usuwanie, negowanie, odejmowanie (a nawet dzielenie!) jest cacy. Dodawanie i reszta jest be.
  2. Jeśli już coś uda nam się dodać, musi to być okupione pewnym kosztem, ponieważ jest be.
  3. Działanie programu polega na samomodyfikacji własnego kodu źródłowego w trakcie jego wykonywania.
  4. W kwestiach spornych interpreter próbuje zawsze domyślić się, co programista lub wykonywany program miał na myśli, czyt. wykonuje losową operację.

Składnia języka wzorowana jest nieco na assemblerze, tj. każda linijka zawiera jeden rozkaz mogący przyjmować argumenty w postaci komórek pamięci, na których należy pracować. Oczywiście nie trzeba chyba wspominać, że w myśl powyższych zasad, program wykonuje się od ostatniej linijki do pierwszej.

Cechy szczególne

Oto znacznie pełniejsza lista cech szczególnych Revomera:

  • Rozbudowany moduł arytmetyczny obejmujący operacje odejmowania i dzielenia.
  • Nowatorska Logika Revomerowa.
  • Obsługa wskaźników!
  • Zaawansowany system wejścia/wyjścia.
  • Obsługa funkcji wyposażona w wiele niespotykanych operacji, np. zamienianie funkcji nazwami.
  • Rozbudowany zestaw poleceń do administracji kodem źródłowym, np. come here czy unless - pamiętaj o nich szczególnie, ponieważ są one podstawą programowania w Revomerze!
  • Gwarantowane 64 kB pamięci podzielone na 1-bajtowe komórki, co oczywiście wcale nie ogranicza nas w kwestii przechowywania w nich np. 2-bajtowych liczb.
  • Znakomita obsługa liczb ujemnych!
  • Możliwość podzielenia kodu na kilka plików i ładowania ich, gdy są potrzebne.

Czy jest to język zupełny?

Zwrot język jest zupełny w sensie Turinga oznacza w dużym uproszczeniu, że możliwe jest na nim zaprogramowanie każdego algorytmu. Aby udowodnić, że jakiś język jest zupełny, wystarczy pokazać, że można w nim stworzyć interpreter dowolnego innego zupełnego modelu obliczeń. Odpowiadając na pytanie postawione w tytule, stwierdzamy: tak, Revomer jest językiem zupełnym. Jesteśmy w stanie pokazać, że można w nim napisać działający interpreter innego ezoterycznego języka programowania, Brainfuck. Tak więc choć implementacja niektórych algorytmów może być trudna, w świetle tego jest możliwa do wykonania.

Przyszłość

Revomer wciąż się rozwija. W chwili obecnej powoli kończymy prace nad interpreterem pierwszej publicznej wersji oznaczonej numerem 0.9, jednak w tym samym czasie projektujemy wiele nowych możliwości, które z pewnością zawrzemy w przyszłych wersjach języka. Oto niektóre z nich:

  • Obsługa plików.
  • Obsługa połączeń sieciowych.
  • Obsługa ekranu tekstowego, dzięki czemu będzie możliwe dodanie do programów prostego GUI.
  • Zarządzanie pamięcią - 64 kB nie będą już przeszkodą.
  • Wielowątkowość.
© Tomasz "Zyx" Jędrzejewski 2005 - 2008 | Wykonanych zapytań: 0 | Serwer wirtualny zapewnia