2010-10-08 11 views
55

Después de aprender un poco sobre cómo funciona LLVM, estoy muy entusiasmado con cómo se puede generar el código de bajo nivel portátil y cómo se construye esta 'cosa' modular.¿Cómo se compara C-- a LLVM?

Pero hoy he descubierto 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é ambos existen.

Para mí LLVM se ve un poco como el último navaja suiza para la infraestructura de compilador, y C-- se ve mucho menos avanzado.

+5

parecer, se puede' tener '-' en una etiqueta. cminusminus es. – aaronasterling

+0

gracias por la corrección :-) –

+0

No sé sobre la calidad de la implementación, pero LLVM parece tener mucha más acción en sus listas de correo. –

Respuesta

52

Difieren en lo expresivo que es el sistema de tipo de máquina de bajo nivel.

La máquina LLVM es bastante expresiva. La máquina C--, por otro lado, pone mucha responsabilidad en el lenguaje de entrada. Citando del C-- FAQ: "simplemente, C-- no tiene tipos de alto nivel --- incluso no distinguir las variables de coma flotante de variables enteras Este modelo da el control total extremo frontal de la representación y el tipo de sistema"

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

vista pragmático, LLVM tiene mucho más impulso en este momento. Tiene un compilador JIT, Apple está usando para 3D pipeline things y la gente está utilizando para connect to GCC y todo tipo de weird y wonderful cosas. Alguien lo llamó "almost absurdly easy to work with".

Por otro lado C-- es mucho más pequeño y probablemente más fácil de comprender por completo. (I imaginar una persona normal con un poco de dedicación puede comprender plenamente todos los aspectos de la misma.)

+1

Por lo tanto, si entiendo correctamente, la diferencia principal es el nivel de abstracción de la representación intermedia utilizada por el compilador de tesis. ¡Gracias! –

+6

@Alois Cochard, así es como me pareció. No soy un experto en compiladores, solo juego uno en Stack Overflow. :-) –

+0

Sus enlaces a cminusminus.org parecen llevar a algo completamente diferente ahora. – Ruslan

Cuestiones relacionadas