-
1. Data: 2012-05-10 12:07:40
Temat: mały zgrabny język
Od: Jan Tryn <9...@a...onet.pl>
Szukam jakiegoś gotowca do napisania małego języka. Tak na prawde potrzebuje
tylko while, zmienne i if.
zmienne mogą byc tylko cyfrowe (jakiekolwiek)
Najważniejsze by mozna było dosc prosto pozmieniac sama maszynę.
Zapisywac jej stan albo wykonywac po kilka instrukcji.
Najlepiej by był to zatem kompilator a nie jit.
ew. jesli ktos zna może podać jakis prosty zestaw gramatyk.
Musze mieć coś co ma główna pętle. yacc raczej odpada choc sa chyba jakies
przeróbki nie na tablicach.
--
===
-
2. Data: 2012-05-10 12:37:13
Temat: Re: mały zgrabny język
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-05-10 12:07, Jan Tryn pisze:
> Szukam jakiegoś gotowca do napisania małego języka. Tak na prawde potrzebuje
> tylko while, zmienne i if.
> zmienne mogą byc tylko cyfrowe (jakiekolwiek)
Nie napisałeś z czym to chcesz łączyć (kod natywny a zwłaszcza C, JVM, .NET)
LUA (język / VM w C) i metoda na rozszerzenia
ANTLR (generator kodu do kilku języków w tym C++, do Yacca i rodziny
nigdy nie wrócę, moje oczy tego nie akceptują).
Może ze dwa JS by wspomniał (Spidermonkey w C i ten nowszy googla w C++)
Ja sobie postawiłem pytanie podobne ale nieco inne. "potrzebuje tylko" a
"nie może miec więcej niż". Kierowałem się patrzeniem na środowisko
dawniej się mówiło "jail" ale obecnie pozytywnie "sandbox". Prawda, mała
zmiana słowa a tyle znaczy ...
-
3. Data: 2012-05-10 14:44:59
Temat: Re: mały zgrabny język
Od: Jan Tryn <9...@a...onet.pl>
Jacek Czerwinski wrote:
> W dniu 2012-05-10 12:07, Jan Tryn pisze:
>> Szukam jakiegoś gotowca do napisania małego języka. Tak na prawde
>> potrzebuje tylko while, zmienne i if.
>> zmienne mogą byc tylko cyfrowe (jakiekolwiek)
>
> Nie napisałeś z czym to chcesz łączyć (kod natywny a zwłaszcza C, JVM,
> .NET)
Moja wina. C
> LUA (język / VM w C) i metoda na rozszerzenia
No właśnie LUA się nie nadaje. Nie da sie łatwo zapisac kodu a VM jest na
tyle skomplikowana, że nie da się łatwo zrobic uruchamianie kilku kroków czy
inne operacje jak modyfikacje maszyny.
Zreszta maszyne napisze sobie sam i tak jest tak dziwaczna, ze wiecej bedzie
roboty. ale szukam narzedzi i parsera i leksera.
> ANTLR (generator kodu do kilku języków w tym C++, do Yacca i rodziny
> nigdy nie wrócę, moje oczy tego nie akceptują).
Brzmi ciekawie. Robiłes coś juz w tym?
jakies prostsze przykłady z gotowymi gramatykami? może byc jakis basic albo
lisp,forth
> Może ze dwa JS by wspomniał (Spidermonkey w C i ten nowszy googla w C++)
No własnie problem jest z przenoszeniem pomiedzy maszynami. Jęsli masz 2
architektury to żadne z JS czy Lua nie umie tego łatwo przeniesc w czasie
działającego programu.
> Ja sobie postawiłem pytanie podobne ale nieco inne. "potrzebuje tylko" a
> "nie może miec więcej niż". Kierowałem się patrzeniem na środowisko
> dawniej się mówiło "jail" ale obecnie pozytywnie "sandbox". Prawda, mała
> zmiana słowa a tyle znaczy ...
No to jest dodatkowy atut. Jeśli by był jakis system z piaskownicą. Boje się
tylko by nie było za skomplikowane. Kiedys kurcze znalezłem takie maleństwo,
ale skasowałem ;(
--
===
-
4. Data: 2012-05-10 19:07:44
Temat: Re: mały zgrabny język
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-05-10 14:44, Jan Tryn pisze:
> Jacek Czerwinski wrote:
>
> No właśnie LUA się nie nadaje. Nie da sie łatwo zapisac kodu a VM jest na
> tyle skomplikowana, że nie da się łatwo zrobic uruchamianie kilku kroków czy
> inne operacje jak modyfikacje maszyny.
Ma całkiem sensowne API debugerowe. Kilka lat temu z tego korzystałem,
aplikacja MFC ładowała sporne źródła i ustawiała kursor
-
5. Data: 2012-05-10 20:48:20
Temat: Re: mały zgrabny język
Od: Jan Tryn <9...@a...onet.pl>
Jacek Czerwinski wrote:
> W dniu 2012-05-10 14:44, Jan Tryn pisze:
>> Jacek Czerwinski wrote:
>>
>> No właśnie LUA się nie nadaje. Nie da sie łatwo zapisac kodu a VM jest na
>> tyle skomplikowana, że nie da się łatwo zrobic uruchamianie kilku kroków
>> czy inne operacje jak modyfikacje maszyny.
>
> Ma całkiem sensowne API debugerowe. Kilka lat temu z tego korzystałem,
> aplikacja MFC ładowała sporne źródła i ustawiała kursor
wiem mowisz o haku by debugowac po kawałku. niestety nie masz kontroli nad
czasem. jeden kawalek nie rowna sie drugiemu. Po za tem jak juz pisalem
problemy z kompatybilnosci maszyny przy przenoszeniu calej maszyny miedzy
komputerami.
podaj jakis przyklad w tym ANTLR, ktory by działał.
to jakas java. niby potrafic ma kompilowac do C , ale mi sie nie udalo.
Potrzebuje jakis zewn. bibliotek do kompilacji czy jak. to co produkuje nie
daje sie uruchomic
--
===
-
6. Data: 2012-05-11 08:34:21
Temat: Re: mały zgrabny język
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-05-10 20:48, Jan Tryn pisze:
>> Lua
> Po za tem jak juz pisalem
> problemy z kompatybilnosci maszyny przy przenoszeniu calej maszyny miedzy
> komputerami.
Może tu to robiłeś, a ja tylko oglądałem, ale nie do końca wierzę.
Całkiem kulturalnie prowadzony kod w C bez dziwnych tricków i prawie bez
zależności, powinien być dobrze przenośny.
> podaj jakis przyklad w tym ANTLR, ktory by działał.
> to jakas java. niby potrafic ma kompilowac do C , ale mi sie nie udalo.
Ścieżka do C jest chyba eksperymentalna. Do C++ chodzi jak burza.
Produkcyjny kod, język zaprojektowany jak podzbiór VTL (Apache Velocity)
chodzi w komercyjnym produkcie C++. Przykład jest close-source ale chodzi.
-
7. Data: 2012-05-11 12:32:44
Temat: Re: mały zgrabny język
Od: Jan Tryn <9...@a...onet.pl>
Jacek Czerwinski wrote:
> W dniu 2012-05-10 20:48, Jan Tryn pisze:
>
> >> Lua
>> Po za tem jak juz pisalem
>> problemy z kompatybilnosci maszyny przy przenoszeniu calej maszyny miedzy
>> komputerami.
>
> Może tu to robiłeś, a ja tylko oglądałem, ale nie do końca wierzę.
> Całkiem kulturalnie prowadzony kod w C bez dziwnych tricków i prawie bez
> zależności, powinien być dobrze przenośny.
Ale nie w trakcie działania witrualnej maszyny ;)
Zobacz nawet nie ma czegoś takiego jak zapisz stan maszyny do pliku, jest
wprawdzie jakiś dodatek, ale nie wszędzie działa a i tak nie możesz dowolnie
wyłączyc czy zatrzymac kodu.
>> podaj jakis przyklad w tym ANTLR, ktory by działał.
>> to jakas java. niby potrafic ma kompilowac do C , ale mi sie nie udalo.
>
> Ścieżka do C jest chyba eksperymentalna. Do C++ chodzi jak burza.
> Produkcyjny kod, język zaprojektowany jak podzbiór VTL (Apache Velocity)
> chodzi w komercyjnym produkcie C++. Przykład jest close-source ale chodzi.
1. Przykłady jakie znalazłem sa tylko na javie.
2. Sciagnalem jakies ide w javie i wlasciwie tylko to jest. Nawet niektore
przyklady ze strony projektu sie nie kompiluja i sa bledy.
3. Napisz cos prostego i powiedz jak to skompilować. Nigdzie nie znalazlem
opisu. po przerobieniu wpisz gcc opcje plik.c++ mi sie nie udało. Moze być
jakiś prosty przykładzik typu dodawanie dowolnej liczby liczb.
jak by co mój gg 3607255 i na końcu jeszcze zero.
--
===
-
8. Data: 2012-05-12 13:03:30
Temat: Re: mały zgrabny język
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-05-11 12:32, Jan Tryn pisze:
> Jacek Czerwinski wrote:
>
>>> podaj jakis przyklad w tym ANTLR, ktory by działał.
> 1. Przykłady jakie znalazłem sa tylko na javie.
Wsparcie C++ być może jakoś jest odstawiane na bok, ale w poprzedniej
(2.7 ?) było bardzo dobre.
> 2. Sciagnalem jakies ide w javie i wlasciwie tylko to jest. Nawet niektore
> przyklady ze strony projektu sie nie kompiluja i sa bledy.
Aha ... SĄ BŁĘDY mówisz...
> 3. Napisz cos prostego i powiedz jak to skompilować. Nigdzie nie znalazlem
> opisu.
Nic więcej nie miałem niż na stronie (dotrzyj do "starej" wersji strony)
i zrobiłem swoje.
Na pewno, jak masz specyficzne wymagania do VM, musisz sobie ją zrobić.
Ja miałem niskie wymagania, adaptowałem jako moją VM Tree Walker (zwykle
w tym miejscu jest generator ostatecznego kodu).