2012-07-15 19 views
5

Estoy intentando desarrollar un compilador basado en la infraestructura LLVM. Mi lenguaje tiene una sintaxis tipo C y me gustaría aprovechar los compiladores de C existentes. En este momento me estoy centrando en la interfaz (análisis léxico, análisis sintáctico), pero estoy confundido en cuanto a qué interfaz sería el mejor enfoque. ¿Clang, llvm-gcc o herramientas tradicionales de flexión/bisonte?frontend al compilador basado en LLVM

Estoy especialmente interesado en la solución más simple que me permita generar el código IR LLVM para las etapas posteriores de mi compilador.

+0

Si usted está haciendo su propio análisis y análisis semántico, generando LLVM IR haría ser lo suficientemente fácil Podría haber reutilizado una interfaz existente, como Clang, si tuviera que pedir prestada una gran parte de la sintaxis C. De lo contrario, no vale la pena, generar IR es trivial una vez que tienes un AST válido. –

+0

Gracias. ¿Qué debería usar para generar IR del AST? –

+0

usa reglas de sustitución sencillas: consulta el ejemplo del caleidoscopio LLVM. –

Respuesta

2

Si desea codificar todo a mano, entonces te recomiendo el Kaleidoscope LLVM tutorial:

+0

¿Hay algún ejemplo de código fuente? Es más fácil para mí entender la fuente que el texto. – kravemir

+0

Bueno, el código fuente también se proporciona en el tutorial: http://llvm.org/docs/tutorial/LangImpl8.html – Phong