Come si confronta con C- LLVM?
-
28-09-2019 - |
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.
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.)