Jakie funkcje interpretera ?

Jakie funkcje interpretera ?
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
1

Witajcie.

Otóż temat http://4programmers.net/Forum/Delphi_Pascal/181142-pisanie_interpretera natchnął mnie znowu na tematykę interpreterów. Postanowiłem spróbować sił i napisać swój drugi (poprzedni jest w tamtym temacie, lecz to całkowita porażka...).
I tak się chciałem zapytać, czy macie jakieś pomysły, jakie funkcje mogłyby w nim zostać umieszczone.

PS: Nie jestem pewien cd.kategorii, a więc w razie złej, proszę o przeniesienie ;)


edytowany 1x, ostatnio: Patryk27
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:12 miesięcy
1
Kopiuj
function DalejDalejZajebistyParserGadzeta(String : kod): String
begin
   // nakurwiam parsowanie
end;

Tak szczerze, ty się zastanów co ten parser miałby robić i w jaki sposób. Tu masz manual do wszystkiego. Jakie funkcje masz umieścić to się myśli stosując metodę copy-paste. Swoją drogą, możesz uzasadnić czemu wybrałeś akurat Delphi?


Women were the reason I became a monk - and, ah, the reason I switched back...
edytowany 3x, ostatnio: Demonical Monk
RE
Ej, wprowadźmy jakieś nagrody za najbardziej cięty post dnia.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Wybrałem Delphi, ponieważ już kiedyś pisałem w nim interpreter i nie było to jakieś nieosiągalne wyzwanie.
A do czego miałby on służyć?
Hm...
Być może jakiś język skryptowy do gry lub PhotoYebatora ;)
Jakoś nigdy nie myślę, do czego dana rzecz ma służyć, to się dopiero później okazuje.
Zobaczy się ;)

Edit: A napisałem, że to nie ma być interpreter Delphi, tylko on będzie napisany w Delphi ?
To będzie interpreter moje własnego języka, a was się chciałem zapytać, czy macie jakieś pomysły.
Ponieważ wydaje mi się, że zrozumiałeś, że chcę napisać interpret. Delphi.


edytowany 2x, ostatnio: Patryk27
payl
  • Rejestracja:prawie 16 lat
  • Ostatnio:ponad 13 lat
  • Postów:196
0

Od długiego czasu piszę swój interpreter skryptów (lekko ponad 6000 lini kodu). Generalnie u mnie są dwie najważniejsze procedury:

  • DoPol - Wykonuje FindType dla każdego parametru a następnie wyszukuje odpowiednią procedurę i ją wykonuje.
  • FindType - Tutaj jest wbudowane rozpoznawanie typów (string,boolean,double,real,integer,byte,word i jeszcze pare). Tutaj też jest obliczana wartość wyrażeń matematycznych.
    Oczywiście obie są w obiekcie interpretera, który ma wbudowany system zarządzania pamięcią (tworzenie, odczyt,zapis i kasowanie). Nawet mam częściowo gotowe tablice i rekordy w tym języku (ale nie ma jeszcze możliwości ich deklaracji). Żeby Ciebie zniechęcić, powiem Ci że moje wbudowane 23 procedury to 'zaledwie' 1381 linii kodu... A nawet nie mam procedury mnożenia ;)

Nie pisz do mnie PM o czymś co nie dotyczy bezpośrednio mnie. | Nie rozmawiaj ze mną jeśli brak Ci kultury (wystarczy że mi brakuje) | Nie jestem zły, jestem po prostu zły.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Nie ma bata :)
Nie zniechęcisz mnie ;)
Akurat piszę prockę do obliczania wyrażeń matematycznych (stanąłem na nawiasach), lecz jakoś idzie.
Potem dodanie paru(tysięcy) rzeczy i będzie OK.
Chyba w 50 lat to skończę :D

PS: Powodzenia w pisaniu!


edytowany 2x, ostatnio: Patryk27
Zobacz pozostałe 2 komentarze
Patryk27
PS: Mój to SScript (all right reserved too).
Patryk27
Ja jak swojemu daje działanie "10+(5+5+(102))" to pokazuje 3040 zamiast 40. No, cóż... Coś się zapętla...Lecz przy pojedynczych nawiasach np."2+(22)/2*39" jest ok. PS: A u ciebie jest ONP ? Ja uważam, że nie jest ono potrzebne, lecz może stworzę jakąś prockę do tego typu "ONP(działanie)", czy coś takiego.
payl
Nie ma u mnie ONP, bo po co? :P "10+(5+5+(10*2))" u mnie też nie działa - nie ma znaku mnożenia :D
payl
Przy okazji - znalazłeś błąd w ES - powodował on olanie tego co znajdowało się przed nawiasem, czyli 1+(10+2) dawało 12 zamiast 13. Naprawione, oczywiście w logu zapisuje odkrywcę ;)
Patryk27
Thx. U mnie pomijało to, co jest po nawiasie. Ostatecznie się wkurzyłem i całą procedurę wywaliłem. Jutro piszę ją od nowa :)
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:9 dni
0

To może napisz interpreter C# a potem może przerobisz na kompilator (nie zarządzany).


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
payl
A może Ty napiszesz? NIe rozumiem Twojej idei... Po co używać gotowych języków kiedy można zrobić swój skrojony na miare (ba, na dodatek można w każdej chwili zmienić składnie).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.