2012-02-13 13 views
5

Jestem nowy w projektowaniu kompilatorów. Znam podstawy projektowania kompilatora. Chcę rozwinąć koniec frond, który bierze program Pythona jako wejście i przy użyciu bibliotek LLVM i kompilator LLVM JIT produkuje dane wyjściowe. Czy ktoś może wskazać mi właściwy kierunek lub podać link do czytania? Jakie są podstawowe bloki, które muszę kodować, aby to zrobić?Co jest potrzebne do tworzenia interfejsu dla Pythona opartego na architekturze LLVM?

Edytuj: Wybrałem to jako mój projekt. Mam prawie dwa i pół miesiąca na wdrożenie tego. Chcę zaimplementować to dla małego podzbioru pythona.

+0

Odpowiedź @katriealex (teraz usunięta) * poprawnie * wskazuje na projekt Unladen Swallow, który skręcił backend LLVM na front-endzie Pythona, umożliwiając wykonanie kodu Pythona przez LLVM. Sprawdź to –

Odpowiedz

1

Można przekompilować bajt Pythona, a następnie zachować składnię Pythona. tj. frontend językowy taki jaki jest. Jeśli chcesz dokonać wielkich ulepszeń, być może będziesz musiał zmienić libpython.

Spójrz na projekty pyastra i pymite, wykonują one podzbiór zapytań i natywnego wykonania.

Cython może być przydatny w połowie drogi między pythonem a kompilacją.

Na większą skalę spójrz na PyPy, Psyco i Unladen Swallow.

Powiązane problemy