W instrukcji LLVM tutorials podano instrukcje jak pisać prosty kompilator JIT. Niestety, lekser i parser w tym samouczku są pisane ręcznie. Myślałem, że takie rozwiązanie jest dobre do celów edukacyjnych, ale nie nadaje się do pisania skomplikowanych, gotowych do użycia kompilatorów. Wygląda na to, że GCC i kilka innych "dużych kompilatorów" jest napisanych odręcznie. Ale myślę, że wszystkie te generatory parserów dają duży impuls przy pisaniu własnego kompilatora (szczególnie gdy robisz to sam, bez zespołu ludzi).LLVM JIT Pisanie parsera za pomocą Bison/Antlr/Packrat/Elkhound/
Czy można użyć dowolnego istniejącego generatora parsera, takiego jak Bison/Antlr/Packrat/Elkhound itp., Razem z LLVM, aby utworzyć kompilator JIT? Chcę móc "zasilać" analizator składni w sposób ciągły (nie raz na początku) za pomocą wyrażeń i kompilować je w czasie wykonywania.
Dodatek Znalazłem wiele pytań na temat "najlepszego, nowoczesnego" generatora analizatora składni (takiego jak ten: https://stackoverflow.com/questions/428892/what-parser-generator-do-you-recommend). Jeśli możliwe jest użycie tych narzędzi do stworzenia kompilatora JL LMM, byłbym wdzięczny za wszelkie dodatkowe wskazówki i rekomendacje, które narzędzie byłoby najlepsze pod względem wydajności i elastyczności w tym konkretnym przypadku.
"Takie rozwiązanie jest dobre do celów edukacyjnych, ale nie nadaje się do pisania złożonych, gotowych do kompilacji kompilatorów" - Hm. Zawsze myślałem, że GCC to skomplikowany i gotowy do użycia kompilator. Cokolwiek ... –
GCC używał bizona na początku, ale masz rację - poprawiam to na moje pytanie. Ale tak naprawdę, chciałbym użyć generatora, aby uprościć to zadanie, jeśli jest to możliwe. –
Jeśli cokolwiek, chciałbym powiedzieć, że jest odwrotnie: yacc, Bison i inni, nadają się do celów edukacyjnych i takich, ale dla poważnych prac produkcyjnych, ręczny parser może być jedynym sposobem na spełnienie wymagań. –