Jak bym chciał się pouczyć tworzyć kompilatory, to czy skupić się na jakieś implementacji istniejącego języka, czy pomyśleć o jakimś prostym swoim?
Prawdziwe języki są dość skomplikowane i nawet ułożenie gramatyki dla składni stanowi spore wyzwanie. Tyczy się to nawet "prostych" języków jak stary pascal. Ja bym proponowal celować w uproszczoną wersję jakiegoś pascala właśnie (np. z jednym typem pętli etc). Możesz też zacząć od czegoś dużo łatwiejszego jak np. jakiś prosty interpreter wyrażeń arytmetycznych i funkcji.
Zawsze możesz zaimplementować jakiegoś Lispa. Ich składnia jest dość prosta (chyba najprostsza z istniejących), a sam język ma potem duże możliwości. A są nawet gotowe tutoriale: http://www.buildyourownlisp.com/.
Przejrzyj książkę Niklausa Wirtha - to klasyk - opisane jest trochę właśnie o tym jak działają analizatory składniowe.
@kaczus to już prędzej dragon book http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools ;)
@Shalom Pewnie też nie będzie zła, tej nie czytałem, więc się nie wypowiem, ale po spisie treści też może być dobrą pozycją. Jak pytający będzie miał większy wybór, to łatwiej będzie mu coś znaleźć w zależności od dostępności.
Ja od siebie polece fajny cykl artykułów w naszym rodzimym języku nt. tworzenia parsera oraz własnego języka skryptowego.
Troche rozjaśnia temat parsowania
Kompilator(nie interpreter!) brainfucka.
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.