2011-10-27 18 views
6

Czekam na zrobienie pierwszych testów i eksperymentów z językiem zabawki i budowanie kompilatora opartego na LLVM, aby uzyskać pewne benchmarkable wyniki.Język dla kompilatora opartego na LLVM

Rozumiem, że C++ jest "natywnym" i najlepiej obsługiwanym językiem LLVM, ale I naprawdę nie chcę używać C lub C++. Dlatego szukam języka wyższego poziomu, który ma stabilne i ugruntowane wsparcie dla pracy z API LLVM.

Moja początkowa praca z była trochę rozczarowaniem, ponieważ projekt został porzucony, chociaż słyszę obiecujące wiadomości o PyPy integrujące wsparcie LLVM w ich strukturze, ale chciałbym wiedzieć, jakie jest doświadczenie ludzi przed zatonięciem dużej ilości czasu na danej trasie.

Moje pytanie brzmi: czy ktokolwiek z was miał pozytywne doświadczenia w pracy z LLVM przy użyciu języka i/lub architektury wyższego poziomu? A jeśli tak, to które? A może są takie, których byś unikał?

+1

PyPy opuścił LLVM jakiś czas temu. I nawet jeśli PyPy używał LLVM, byłby używany tylko jako * backend * dla interpreterów i kompilatorów JIT tworzonych przez translacyjny toolchain, który pobiera * interpreter * zapisany w RPython i kompiluje go do kodu niskiego poziomu (opcjonalnie dodając JIT i inne dzwony i gwizdki po drodze). – delnan

Odpowiedz

6

Podzbiór interfejsu API LLVM jest udostępniany za pomocą zwykłych owijaczy w języku C. Jest wystarczający do generowania kodu i może być używany z praktycznie dowolnego języka wysokiego poziomu. Istnieją wiązania OCaml dostępne po wyjęciu z pudełka (patrz this tutorial), a wiązania Haskell są również dość dojrzałe (np. Sam GHC może się kompilować za pośrednictwem LLVM). Użyłem też LLVM z języków opartych na technologii .NET, bez żadnych powiązań (tylko automatyczne otwieranie wrapperów P/Invoke z nagłówków).

Powiązane problemy