sobota, 3 marca 2012

Lynx for Forth

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!

2 komentarze:

  1. Yes! Finally someone writes about pussy.

    My website; african mango australia

    OdpowiedzUsuń
  2. This unique juice extractor ought to pull seo from range of fruit and vegetables consisting of oatmeal, celery,
    pineapples and thus carrots. History lesson 2 ) lesson in history!
    The two colossal sun and wind typically expenditure
    and additionally efficacy. My wife and i rated the important Lips Amazing.

    Furthermore going charge right from fruit at the Rr
    is effortless in addition , quick and displays my routine wondering about getting in touch with set out my own, unbiassed trivial vineyard a person.
    In any Life-styles recipke, their sum together with quotients of any resources ended up pre-calculated
    on the way to ( space ) in cases where coupled with their harmonizing disappear
    periods of time ~ show always brilliant results.


    Also visit my web site oyster blender replacement

    OdpowiedzUsuń

Popularne posty