Obecnie pracuję w języku programowania dla zwierząt domowych (do celów edukacyjnych) i przeszedłem wiele badań w ciągu ostatniego roku, i myślę, że nadszedł czas, aby wreszcie zacząć modelowanie koncepcji takiego języka. Przede wszystkim chcę go skompilować do jakiejś formy pośredniej, takiej jak kod JVM lub .NET, celem jest kompatybilność wieloplatformowa/architektura. Po drugie, chcę, aby była szybka (mam też na myśli wiele innych rzeczy, ale nie jest to celem tego tematu, aby o tym dyskutować).Używanie LLVM jako maszyny wirtualnej - wieloplatformowe i wieloarchitekturowe kodowanie
najlepsze opcje, które przyszło mi do głowy to: kompilacji do kodu bajtowego JVM i używać OpenJDK jako środowisko uruchomieniowe, kompilacji do kodu bajtowego .NET i Mono używać jako środowisko uruchomieniowe, skompilować LLVM IR i korzystać LLVM jako środowisko uruchomieniowe .
Jak można sobie wyobrazić, wybrałem LLVM. Czemu? ponieważ jego płonący szybko. Zrobiłem mały test porównawczy przy użyciu kodu C-C N-Ciała i osiągnąłem 7-ki w mojej maszynie z podczerwonym IR, w przeciwieństwie do 27-ciu z natywnym kompilowanym kodem klonu (wiem, że w pierwszej kolejności robię IR, a potem kod maszynowy).
Oto moje pytanie: czy istnieje jakaś redystrybucyjna wersja podstawowego zestawu narzędzi LLVM (po prostu potrzebuję Lli), którego mogę użyć? Czy muszę skompilować własne? Jeśli to drugie, czy możesz mi podać jakieś wskazówki, jak to zrobić? Jeśli naprawdę muszę to zrobić, to myślę, że to krzyżowanie ich z mojego komputera (Intel Mac) i generowanie niektórych instalatorów (powiedzmy .msi dla Windows, .rpm i .deb dla popularnych dystrybucji Linuksa i .pkg dla Mac). Pamiętaj, że potrzebuję tylko minimalnego podzbioru LLVM, tak aby ten podzestaw mógł działać jak maszyna wirtualna, używając "lli". Prawdziwym pytaniem jest tutaj, jak używać LLVM jako typowej maszyny wirtualnej.
Projekt LLVM ma pozwolenie permisywne; wydaje się, że potrzebujesz dystrybucji ** bibliotek podstawowych **. –
@RobertHarvey To, co myślałem, kup, nie mam pojęcia, od czego zacząć. – Salvia
Jest rzeczą oczywistą, że i tak będziesz musiał przeczytać dokumentację, a ponieważ już podjąłeś decyzję ... Jestem podekscytowany pracą z LLVM; niestety, nie przeczytałem jeszcze dokumentacji. –