Pregunta

Después de aprender un poco de cómo el trabajo LLVM Estoy muy emocionado acerca de cómo portátil de bajo nivel de código se puede generar y cómo modular de esta 'cosa' se construye.

Sin embargo, he descubierto hoy la existencia de C-- que parece compartir algunos conceptos con LLVM.

Así que estoy buscando un poco de información para ayudar a entender las principales diferencias entre estos dos proyectos ... y por qué existen ambos.

Para mí LLVM ve un poco como el cuchillo del ejército suizo definitiva para la infraestructura de compilador, y C-- se ve mucho menos avanzado.

¿Fue útil?

Solución

Se diferencian en la forma expresiva el sistema de tipo de máquina de bajo nivel es.

El LLVM máquina es muy expresiva. El href="http://www.cs.tufts.edu/~nr/c--/index.html" rel="nofollow noreferrer"> C-- máquina por el contrario, pone mucha responsabilidad en el extremo delantero del lenguaje. Citando el C-- FAQ : "simplemente, C-- no tiene alto nivel tipos --- puede incluso no distinguen las variables de coma flotante de variables enteras. Este modelo da el control final total del frente de la representación y el tipo de sistema "

También visualmente se ven un montón diferente. C-- se parece mucho a C, miradas llvm mucho como ensamblador.

De manera pragmática, LLVM tiene mucho más impulso en este momento. Tiene un compilador JIT, Apple está usando para 3D cosas de tuberías y la gente lo están utilizando para conectarse a GCC y todo tipo de < a href = "http://en.wikibooks.org/wiki/Aros/Developer/LLVM" rel = "nofollow noreferrer"> raro y cosas maravillosas . Alguien lo llamó " casi absurdamente fácil trabajar con ".

Por otro lado C-- más más pequeña y probablemente más fácil de comprender en su totalidad. (Imagino una persona normal con un poco de dedicación se puede entender completamente todos aspectos de la misma.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top