Comment C à comparer LLVM?
-
28-09-2019 - |
Question
Après avoir appris un peu de la façon dont le travail de LLVM Je suis vraiment excité à propos de la façon dont le code portable à faible niveau peuvent être générés et comment modulaire cette « chose » est construit.
Mais je découvre aujourd'hui l'existence de C-- qui semble partager quelques concepts avec LLVM.
Je cherche des informations me aider à comprendre les principales différences entre ces deux projets ... et pourquoi les deux existent.
Pour moi LLVM ressemble un peu le couteau suisse ultime pour l'infrastructure de compilateur, et C-- semble beaucoup moins avancé.
La solution
Ils diffèrent dans le système expressif de type machine à faible niveau est.
Le LLVM machine est assez expressif. La machine C-- sur d'autre part, met beaucoup de responsabilités à l'extrémité avant de la langue. Je cite C-- FAQ : « tout simplement, C-- n'a pas de haut niveau types --- il ne distingue même pas les variables à virgule flottante à partir de variables entières. Ce modèle donne le contrôle total d'extrémité avant du système de représentation et tapez "
En outre visuellement ils regardent un autre lot. C-- ressemble beaucoup C, ressemble LLVM un peu comme assembleur.
Pragmatique, LLVM a beaucoup plus dynamique en ce moment. Il a un compilateur JIT, Apple est l'utiliser pour connecter à GCC et toutes sortes de < a href = "http://en.wikibooks.org/wiki/Aros/Developer/LLVM" rel = "nofollow noreferrer"> bizarre et choses merveilleuses . Quelqu'un a appelé « presque absurdement facile à travailler ».
Par contre C-- beaucoup plus petit et sans doute plus facile à comprendre tout à fait. (J'imagine une personne normale avec un certain dévouement peut bien comprendre tous aspects.)