Frage

Nach einem bisschen wie LLVM Arbeit Lernen bin ich wirklich gespannt, wie portable Low-Level-Code erzeugt werden kann und wie modular dieses ‚Ding‘ gebaut wird.

Aber ich entdeckte heute die Existenz von C--, die einige Konzepte mit LLVM zu teilen scheint.

Also ich bin für einige Informationen der Suche hilft mir die wichtigsten Unterschiede zwischen diesen beiden Projekten verstehen ... und warum beide existieren.

Für mich LLVM sieht ein bisschen wie das ultimative Schweizer Taschenmesser für Compiler-Infrastruktur und C-- sieht weit weniger fortgeschritten.

War es hilfreich?

Lösung

Sie unterscheiden sich darin, wie ausdrucksstark die geringe Maschinentyp-System ist.

Die LLVM Maschine ist ziemlich ausdrucksvoll. Die C-- Maschine auf der anderen Seite, legt viel Verantwortung auf die Sprache Frontend. Zitiert aus der C-- FAQ : „einfach, C-- hat kein High-Level Typen --- es unterscheidet nicht selbst-Gleitkommavariablen von integer-Variablen. Dieses Modell gibt die vorderen Steuerende insgesamt Darstellung und Typ-Systems "

Sie sehen auch optisch viel anders. C-- sieht viel wie C, LLVM Aussehen viel wie Assembler.

Pragmatisch, LLVM hat viel mehr Schwung jetzt. Es hat einen JIT-Compiler ist Apple es für zu GCC verbinden und alle Arten von < a href = "http://en.wikibooks.org/wiki/Aros/Developer/LLVM" rel = "nofollow noreferrer"> seltsam und wunderbar Dinge. Jemand nannte es „ fast absurd einfach zu Arbeit mit “.

Auf der anderen Seite C-- viel kleine und wahrscheinlich leichter zu ganz begreifen. (Ich mit einer gewissen Hingabe eine normale Person vorstellen kann voll verstehen alle Aspekte.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top