Niedawno byłem bardzo zainteresowany kompilatorami i ich działaniem. Ponieważ GCC ma dostępne źródło, pomyślałem, że to najlepszy materiał do nauki.Nauka gcc internals
Pierwszą rzeczą, jaką sobie uświadomiłem, jest to, że bezcelowe byłoby studiowanie gcc, jeśli nie rozumiem podstawowych zasad projektowania kompilatorów. Odtąd pilnie czytałem "Smoczą księgę", która z tego, co widziałem, jest de facto książką o implementacji kompilatora.
Bez względu na to, lektura tej książki tylko pogłębiła moje pragnienie poznania kompilatorów takich jak gcc.
Dodatkowo uważam za stosowne powiedzieć, że mam pośrednie zrozumienie c/C++ (aka, nie próbuję studiować gcc bez znajomości c). Mam nadzieję, że studiowanie gcc pomoże mi to poprawić.
Pobrałem najnowszą kompilację, jaką mogłem znaleźć; jednak gubię się podczas przeglądania kodu źródłowego.
Czego szukam, to sugestie, jak postępować. Czy istnieje podobny projekt, który nie jest tak ogromny, mógłbym użyć go jako odskoczni do gcc? Czy jest jakiś konkretny moduł gcc, który można by polecić jako pierwszy? Czy są jakieś książki, które wchodzą w implementację gcc, a nie używają? Może powinienem przestać marudzić i po prostu czytać źródło, dopóki nie kliknie?
Wszelkie opinie będą mile widziane.
EDYCJA: Jeśli uważasz, że powinienem studiować inny kompilator/interpreter, bardzo doceniam sugestie, które z nich.
Powinieneś przeczytać książkę smoka, a następnie napisać własny kompilator. Pomaga to ogromnie. –
Słyszałem, że GCC to ból do zhakowania. Może LLVM byłaby alternatywą? – Blender
1. Powinieneś całkowicie zrozumieć język na poziomie eksperckim. 2. Napisz swój własny kompilator najpierw dla małego języka 3. GCC to bałagan. Jest dużo lepszych alternatyw. – Pubby