Teoria de compiladores

Get Started. It's Free
or sign up with your email address
Teoria de compiladores by Mind Map: Teoria de compiladores

1. Definicion:

1.1. Es un programa que traduce un programa escrito en un lenguaje fuente a un lenguaje objeto.

1.1.1. Generando un programa equivalente que la máquina será capaz de interpretar.

2. Tipos:

2.1. Compiladores Cruzados

2.1.1. Capaz de generar un código para un sistema distinto del que están funcionando.

2.2. Compiladores Optimizadores

2.2.1. Capaces de realizar cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.

2.3. Compiladores de una sola pasada

2.3.1. Capaces de generar el código máquina a partir de una única lectura del código fuente.

2.4. Compiladores de varias pasadas

2.4.1. Necesitan leer el código fuente varias veces antes de poder producir el código máquina.

2.5. Compiladores JIT

2.5.1. (Just In Time), forman parte de un intérprete y compilan partes del código según se necesitan.

3. Estructura de un Compilador:

3.1. Análisis Lexico

3.1.1. Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje.

3.1.1.1. Es decir realiza un análisis símbolo por símbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer.

3.2. Análisis Sintactico

3.2.1. Esta fase se encarga de analizar la estructura de las expresiones en base a gramáticas.

3.2.1.1. Aquí ya se puede determinar si una estructura esta mal formada y se hace de forma jerárquica, en base a árboles de derivación que se obtienen de las mismas gramáticas.

3.3. Análisis Semántico

3.3.1. Esta fase se encarga de determinar el tipo de los resultados intermedios.

3.3.1.1. Comprobar que los argumentos que tienen un operador pertenecen al conjunto de operadores posible, y si son compatibles entre sí.

3.4. Generación de código intermedio

3.4.1. Esta fase se encarga de generar una representación intermedia explícita del programa fuente.

3.4.1.1. Es decir, un programa para una máquina abstracta.

3.5. Optimización de código

3.5.1. Esta fase se encarga de realizar una mejora en el código intermedio, para reducir el número de líneas y hacer que la ejecución sea más rápida.

3.6. Generacion de codigo

3.6.1. Esta fase se encarga de la generación de código ensamblador o código máquina del procesador.

4. Lenguajes de programacion

4.1. Definicion:

4.1.1. Es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.

4.2. Generaciones:

4.2.1. Primera Generación:

4.2.1.1. Lenguaje Maquina

4.2.1.1.1. Se programaban directamente en código binario.

4.2.2. Segunda Generación:

4.2.2.1. Lenguaje Simbolico o de ensamblaje

4.2.2.1.1. Simplifican la escritura de las instrucciones y las hacen más legibles.

4.2.3. Tercera Generación:

4.2.3.1. Lenguaje de Alto Nivel

4.2.3.1.1. Sustituyen las instrucciones simbólicas por códigos independientes de la máquina

4.2.4. Cuarta Generación:

4.2.4.1. Lenguaje Orientado a Objetos

4.2.4.1.1. Implementan los conceptos definidos por la programación orientada a objetos.

4.2.5. Quinta Generación:

4.2.5.1. Lenguaje de inteligencia artificial

4.2.5.1.1. Basado en la resolución de problemas utilizando restricciones dadas al programa.