Witam
Znacie jakiś kompilator języka C lub C++ do bytecodu (najlepiej do jak najprostszego)?
Pozdrawiam

- Rejestracja:ponad 17 lat
- Ostatnio:ponad 8 lat
- Postów:1105

- Rejestracja:ponad 17 lat
- Ostatnio:ponad 8 lat
- Postów:1105
Tylko nie wiem jak go zmusić do wygenerowania bytecodu. Jedynie udało mi się wygenerować coś w rodzaju assemblera.

- Rejestracja:prawie 21 lat
- Ostatnio:ponad 12 lat
Gdzie mogę znaleźć opis tego bytecodu?
To kod LLVM, na stronie developerskiej tego projektu. To świetna rzecz na BSD, mocno wspierana przez Apple, z bardzo dobrym i czytelnym kodem (w porównaniu do tego śmiesznego GCC).
Co do MSILu to taki tragiczny nie jest chociaż mało się nim bawiłem. Maszyna stosowa, dosyć dobrze zaprojektowana, ale pewne rzeczy są dosyć złożone, poza tym C/C++ używające typowego runtime'u C/C++ niezbyt się tutaj 'prezentuje' - mieszkanka (wywołań) kodu zarządzanego z natywnym, odpada chyba.

- Rejestracja:około 16 lat
- Ostatnio:5 miesięcy
@Azarien - CIL jest IMO dużo czytelniejszy od kodu maszynowego. (tak, to poniżej to jest bajtkod)
.assembly HelloWorld
.class auto ansi HelloWorldApp
{
.method public hidebysig static void Main() cil managed
{
.entrypoint
.maxstack 1
ldstr "Hello world."
call void [mscorlib]System.Console::WriteLine(string)
ret
}
}
I jest wystarczająco dużo narzędzi ułatwiających pracę z nim.

- Rejestracja:ponad 17 lat
- Ostatnio:ponad 8 lat
- Postów:1105
Może tępy jestem, ale znalazłem tylko to:
http://llvm.org/docs/BitCodeFormat.html - tu mamy opis formatu (przyda się, ale mało informacji)
http://llvm.org/docs/LangRef.html - opis języka, ale o bitkodzie nic
PS. Dużo pracy będzie kosztowało napisanie bardzo while(1){printf("bardzo");}
bardzo prostego interpretera tego bitcodu?

- Rejestracja:prawie 21 lat
- Ostatnio:ponad 12 lat
MSM napisał(a)
@Azarien - CIL jest IMO dużo czytelniejszy od kodu maszynowego. (tak, to poniżej to jest bajtkod)
To jest efekt dezasemblacji bytekodu... Od asma x86 wcale czytelniejszy nie jest, może na poziomie hello-world. Jednak ma regularną strukturę, nie to co opkody x86. Weź pod uwagę, że to maszyna stosowa, dosyć skomplikowana. Teraz zagadka - jaka jest najbardziej znienawidzona część operacji w IA-32? Instrukcje stosowe koprocesora x87, zgadnij dlaczego?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
clang -c -emit-llvm main.c
Teraz drugie pytanie: Gdzie mogę znaleźć opis tego bytecodu?