Crea tu propio compilador – Parte 5 – Completando el analizador léxico

En el artículo anterior vimos como están estructurados los compiladores, identificando los módulos que los componen. Como una ayuda, para complementar nuestro entendimiento, el siguiente diagrama (obtenido gracias a Wikipedia) muestra como estas distintas partes se enlazan:   Aunque no es común tener un compilador que compile dos lenguajes fuente, sí es posible tener dos compiladores que generen el mismo […]

Leer más

Crea tu propio compilador – Parte 4 – Creando un analizador léxico

Partes de un compilador A estas alturas del proyecto, y antes de iniciar el desarrollo del código fuente del compilador, deberíamos tener claro, cuáles son las partes de las que se compone un compilador. Los compiladores pueden hacerse de tantas formas como se pueden hacer las tortas de chocolate. Eso es lo bueno y lo malo de hacer compiladores. No […]

Leer más

Crea tu propio compilador – Parte 3 – Inventando un lenguaje

El lenguaje El siguiente paso en la creación de nuestro compilador, será la creación del lenguaje. Para ello podemos plantear 2 opciones: Usar un lenguaje ya existente, como C  o Pascal. Crear un lenguaje nuevo desde cero. Implementar un lenguaje ya existente, es una tarea descomunal, aún si elegimos un lenguaje sencillo como Basic o C, porque la complejidad de […]

Leer más

Crea tu propio compilador – Parte 2 – Preparando el ambiente de trabajo

En el artículo anterior hicimos una introducción sobre este proyecto y sus alcances. También vimos las herramientas que vamos a usar. Ahora vamos a configurar estas herramientas y preparar el ambiente de trabajo para iniciar el desarrollo, de una forma cómoda. Pero primeramente aclararemos cual es el esquema de trabajo que queremos lograr. ¿Cómo compilará nuestro compilador? El compilador que […]

Leer más

Crea tu propio compilador – Parte 1 – Introducción

Sí. Así como suena. En esta serie de artículos explicaré (trataré) de forma simple (al menos es la expectativa), el diseño e implementación de un compilador, prácticamente desde cero. Aunque elemental, este compilador podrá generar código binario, con la ayuda de un ensamblador, para la arquitectura x86 de Intel. Introducción Este proyecto nace de la necesidad de querer responder una […]

Leer más