c compiler-construction code-generation llvm c-minus-minus

¿Cómo se compara C— con LLVM?



clang (1)

Se diferencian en cuán expresivo es el sistema de tipo máquina de bajo nivel.

La máquina LLVM es bastante expresiva. La máquina C-- , por otro lado, pone mucha responsabilidad en el extremo frontal del lenguaje. Citas de la C-- Preguntas frecuentes : "simplemente, C-- no tiene tipos de alto nivel, ni siquiera distingue las variables de punto flotante de las variables de enteros. Este modelo proporciona el control total de la parte frontal y el sistema de tipos"

También visualmente se ven muy diferentes. C-- parece mucho a C, LLVM se parece mucho a un ensamblador.

Pragmáticamente, LLVM tiene mucho más impulso ahora. Tiene un compilador JIT, Apple lo está usando para cosas de tuberías en 3D y la gente lo está usando para conectarse a GCC y todo tipo de cosas weird y maravillosas . Alguien lo llamó " casi absurdamente fácil de trabajar ".

Por otro lado, C-- es mucho más pequeño y probablemente más fácil de comprender por completo. (Imagino que una persona normal con cierta dedicación puede comprender completamente todos los aspectos de ella).

Después de aprender un poco de cómo funciona LLVM, estoy realmente entusiasmado con la forma en que se puede generar un código portátil de bajo nivel y con la forma modular en que se construye esta "cosa".

Pero hoy descubrí la existencia de C-- que parece compartir algunos conceptos con LLVM.

Así que estoy buscando información que me ayude a comprender las principales diferencias entre estos dos proyectos ... y por qué existen ambos.

Para mí, LLVM se parece un poco a la última navaja suiza para la infraestructura del compilador, y C-- parece mucho menos avanzado.