Witam wszystkich!
Oto nadeszła pamiętna chwila! Lynx obudzony ze snu, po 8 godzinach pracy ożywa!
Czym był Lynx?
Lynx był kiedyś moim niespełnionym marzeniem. Od kiedy zacząłem "skrobać" swoje pierwsze programy, marzyłem o własnym języku. Dziś marzenia stają się rzeczywistością! Lynx był projektem rozwijanym zrywami, często zarzucanym, niszczonym(ostatnie kilka reinstali bez dostępu do środków zapisu...), no i ogólnie miał trudno. Niektórzy(zapewne większość nadal nie wie co to ten Lynx), a więc:
Czym jest Lynx?
Lynx to wirtualna maszyna oparta o 2 stosy: stos parametrów i stos powrotu. Tego drugiego na razie nie tykam :P. Dlaczego stos? Bo czemu nie ;) Stos to najprzyjemniejsza struktura danych jednocześnie najbliższa człowiekowi ;) Językiem pośrednim, a jednocześnie wysoko poziomowym jest Forth. Wybrałem go ze względu na łatwą implementację i stosunkową bliskość z maszyną. Forth jest zaimplementowany jakoś w 50-60% : brakuje jedynie implementacji flow-control i słów(takie jakby funkcje\podprogramy w Forth'cie). Co mi pozostało do roboty po za maszyną? Cóż, nie wiele ;) Nie potrzebny mi chyba będzie dekompilator, choć pewnie go napiszę. Przyda się za to kompilator. Próbowałem z ANTLR3, ale chyba coś poknociłem więc odstawiam to na dłuższy termin i wzamian używam nasm'owych makr(dzięki Gyn za ten trik!).
Czym będzie Lynx?
Środowiskiem uruchomieniowym z lekka podobnym do NekoVM, jednak stworzonym przez człowieka(może ludzi? ;)) dla ludzi(wystarczy porównać source mojej maszyny z Neko...). Po za domyślnym Forth'em planuję jeszcze szereg innych języków. Po jakimś tam wstępie myśle nad JIT'em i bajerami.
Source można pobrać z mojego Dropboxa.
(Polecam obejrzeć przykładowy plik z makrami).
@EDIT: Stwierdziłem, że Lynx'a na ten czas zawieszę i do życia powołam SimpleVM - prostą VMkę, którą będe opisywał krok po kroku we wpisach na blogu, yo!
sobota, 3 marca 2012
Subskrybuj:
Posty (Atom)
Popularne posty
-
Witam! Dziś i nie tylko dziś opowiemy sobie o kombinatoryce. Czym jest więc ta kombinatoryka? Kombinatoryka to teoria obliczania liczby...
-
Witam wszystkich! Oto nadeszła pamiętna chwila! Lynx obudzony ze snu, po 8 godzinach pracy ożywa! Czym był Lynx? Lynx był kiedyś moim nie...
-
Witam! Dostałem dzisiaj bardzo śmiesznego maila. Hmm...może zamiast opisywać co takiego w nim było wrzuce tutaj ocenzurowaną wersję ;) Pan...
-
W społeczności "hackerskiej" określenie script kidd oznacza osobę korzystającą z programów używanych do różnego rodzaju ataków nie...
-
Witam! Jest to mój pierwszy post "polityczny". Możliwe że takowych pojawi się więcej :) DISCLAIMER: Ten post i każdy następny ...
-
Hai All! Otóż niedawno zainteresowałem się przepięknym językiem jakim jest Lisp :). Szukając implementacji odpowiedniej dla mojego systemu...
-
Jeżeli zawsze byłeś ciekawy jak działa pop i push oraz jak można je zastąpić, to zapraszam do czytania ;) Jeżeli miałeś kiedykolwiek styc...
-
Hai all! Piszę sobie od niedawna w Javie, praktycznie całkowicie się na nią przerzucając. I muszę przyznać jestem zadowolony. Nawet bardzo...
-
Megatutorial by Aссаръеллюсс Witam w drugim moim wielkim tutorialu!Tym razem jednak nie o AutoIT ,ale o innym już dużo 'doroślejszym...
-
Witam! Rzadko się spotyka języki tak zaprojektowane, że implementują funkcyjność bez szkody dla obiektowości. Takim językiem na pewno nie j...