2012-07-15 28 views
5

Próbuję opracować kompilator oparty na infrastrukturze LLVM. Mój język ma składnię w stylu C, więc chciałbym wykorzystać istniejące kompilatory języka C. Obecnie koncentruję się na interfejsie użytkownika (analiza leksykalna, analiza składniowa), ale nie mam pojęcia, która metoda będzie najlepsza. Clang, llvm-gcc lub tradycyjne narzędzia flex/bison?nakładka na kompilator oparty na LLVM

Jestem szczególnie zainteresowany najprostszym rozwiązaniem, które pozwoliłoby mi wygenerować kod LLVM IR dla późniejszych etapów mojego kompilatora.

+0

Jeśli robisz własne parsowania i analizy semantycznej, wytwarzając LLVM IR będzie być wystarczająco łatwe. Mogłeś ponownie użyć istniejącego interfejsu, takiego jak Clang, gdybyś musiał pożyczyć dużą część składni C. W przeciwnym razie nie warto, generowanie IR jest banalne, gdy masz już ważną AST. –

+0

Dzięki. Co powinienem użyć do generowania IR z AST? –

+0

użyj tylko prostych reguł podstawiania - patrz przykład Kalejdoskop LLVM. –

Odpowiedz

2

Jeśli chcesz zakodować wszystko ręcznie, a następnie polecam Ci Kaleidoscope samouczka LLVM:

+0

Czy jest jakiś przykład kodu źródłowego? Łatwiej mi zrozumieć źródło niż tekst. – kravemir

+0

Kod źródłowy jest również dostępny w samouczku: http://llvm.org/docs/tutorial/LangImpl8.html – Phong

Powiązane problemy