Categorías: Todo - código - automatización - análisis - optimización

por CAMC 1 hace 3 años

469

Compiladores

Un compilador es una herramienta esencial en la programación que convierte el código fuente escrito en un lenguaje de alto nivel a un lenguaje de bajo nivel, más cercano al lenguaje de máquina que entiende el procesador.

Compiladores

Manejo de errores

Creacion de la Tabla de Simbolos

Analizador Lexico, Sintactico, Semantico

Operacion sobre la Tabla de simbolos

Manejo de Errores

optimizacion

Generacion de la salida

definicion

¿Qué es y como funciona un compilador?

Hecho por Cristian Alonso Castro Martínez Carrera: Ingeniería en Sistemas Computacionales Materia: Lenguajes y Autómatas l

4

3

2

1

Este ultimo modulo es el que produce como salida el codigo binario enlazado

El ensamblado transforma el programa escrito en lenguaje ensamblador a código objeto, un archivo binario en lenguaje de máquina ejecutable por el procesador.

En esta etapa se somete el código fuente puro de entrada a un análisis léxico grafico, a un análisis sintáctico, a un análisis semántico, que construyen la tabla de símbolos, se genera un código intermedio al cual se optimiza para así poder producir un código de salida generalmente en algun lenguaje ensamblador

En esta etapa se interpretan las directivas al preprocesador.

etapas

Enlazado

Ensamblado

es

Compilación

El proceso de compilación involucra cuatro etapas sucesivas: preprocesamiento, compilación, ensamblado y enlazado. Para pasar de un programa fuente escrito por un humano a un archivo ejecutable es necesario realizar estas cuatro etapas en forma sucesiva.

Preprocesado

Inicio

Etapas de Compilación (Estructura)

forman parte de un intérprete y compilan partes del código según se necesitan.

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

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

Genera un código ejecutable en un ordenador distinto de aquel en que se realiza la compilación.

realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.

se clasifican

Compiladores JIT (just in time)

Compiladores de varias pasadas

Compiladores de una sola pasada

Compiladores optimizadores

Compiladores cruzados

Tipos de compiladores

Fases que dependen de la máquina destino

Fases que dependen del lenguaje fuente

Se divide

es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por este generador.

es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos.

Generador o back-end:

Analizador o front-end

Partes del Compilador

Esta constituye la fase final de un compilador. En ella se genera el código objeto que por lo general consiste en código en lenguaje maquina (código relocalizable) o código en lenguaje ensamblador

En esta fase se trata de mejorar el código intermedio de medo que resulte un código de maquina mas rápido de ejecutar

En esta etapa se lleva el código del programa fuente a un código interno para para poder trabajar más fácilmente sobre el

Generación de código

Optimización de código

Generación de código intermedio

Después del proceso de análisis se procede a generar grupos de los componentes que conforman el programa, para generar una salida.

La verificación e inferencia de tipos en asignaciones y expresiones, la declaración del tipo de variables y funciones antes de su uso, el correcto uso de operadores, el ámbito de las variables y la correcta llamada a funciones.

tareas basicas

El analizador semántico detecta la valides semántica de las sentencias aceptadas por el analizador sintáctico

Se determinan las relaciones estructurales entre los componentes léxicos, esto es semejante a realizar el análisis gramatical sobre una frase en lenguaje natural

¿cómo?

Se encarga de revisar que los tokens este ubicados y agrupados de acuerdo a la definición del lenguaje

No determinista

Determinista

son

Expresiones Regulares

Maquina de pila

acepten

es una secuencia de caracteres en el programa fuente, que coinciden con el patrón para un token y que el analizador léxico identifica como una instancia de ese token.

es una descripción de la forma que pueden tomar los lexemas de un token

se compone

Patrón

Lexemas

Metodos

elimina

llamado

Automatas Finitos

Tokens

Espacios en blanco líneas, comentarios y demás

En esta fase se analiza la entrada carácter a carácter y se divide en una serie de unidades elementales: los componentes léxicos.

realiza

objetivo

Analizador Semantico

Analizador Sintáctico

Analizador Léxico

El objetivo de esta etapa es obtener una representación de la entrada que nos permita realizar la síntesis o la interpretación con comodidad.

se divide

Fase Análisis

Fase Síntesis

Proceso de Compilación

Compiladores

Es un programa que traduce el código fuente de un programa hecho en lenguaje de alto nivel a un lenguaje de bajo nivel