Domanda

Dopo aver appreso un po 'di come il lavoro LLVM Sono davvero entusiasta di come portatile a basso livello di codice può essere generato e come modulare questa 'cosa' è costruito.

Ma ho scoperto oggi l'esistenza di C-- che sembra condividere alcuni concetti con LLVM.

Quindi sto cercando qualche informazione utile a capire le principali differenze tra questi due progetti ... e perché entrambi esistono.

Per me LLVM sembra un po 'come il coltello dell'esercito svizzero ultimo per le infrastrutture del compilatore, e C-- sembra molto meno avanzate.

È stato utile?

Soluzione

Essi differiscono nel modo espressivo basso livello tipo di macchina del sistema è.

Il LLVM macchina è abbastanza espressiva. Il C-- macchina d'altra parte, mette un sacco di responsabilità sul front-end lingua. Citando dal C-- FAQ : "semplicemente, C-- non ha di alto livello tipi --- nemmeno lo distinguono variabili in virgola mobile da variabili intere. Questo modello permette il controllo totale estremità anteriore della rappresentazione e tipo di sistema "

Anche visivamente sembrano un lotto differente. C-- assomiglia molto a C, sguardi LLVM un po 'come assemblatore.

In concreto, LLVM ha molto più slancio al momento. Ha un compilatore JIT, Apple è di utilizzarlo per 3D cose gasdotti e la gente sta usando per connettersi a GCC e ogni sorta di < a href = "http://en.wikibooks.org/wiki/Aros/Developer/LLVM" rel = "nofollow noreferrer"> strano e cose meravigliose . Qualcuno ha definito " quasi assurdamente facile lavorare con ".

D'altra parte C-- IS molto più piccolo e probabilmente più facile da comprendere del tutto. (Immagino una persona normale con una certa dedizione può comprendere appieno tutti gli aspetti di essa.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top