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é.

Était-ce utile?

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.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top