Title: SEGUNDA PARTE
1Unidad III CompiladoresIntroducción al Software
I
- SEGUNDA PARTE
- IE. Fernando Jiménez Valencia.
- Noviembre 2009.
2OBJETIVO
- Al terminar la unidad el alumno describirá los
conceptos y las diferentes partes de los
compiladores
3AGENDA
- Antecedentes.
- Programa, lenguajes de programación, etc.
- Clasificación y generaciones.
- Compilación.
- Proceso.
- Estructura.
- Bibliografía.
4Compilación
- Programa de proceso, proceso de compilación y
estructura general de un compilador
5Programas de proceso
- Son los que están enfocados preferentemente para
ayudar al programador en la puesta punto de los
programas.
Traductores.- son meta-programas que toman como
entrada un programa escrito en lenguaje simbólico
semejante al natural y proporciona como salida un
programa escrito en lenguaje compresible para el
hardware de la computadora.
- Ensambladores
- Compiladores
- Interpretes
Programas de proceso
De servicio.- grupo de programas que realizan
funciones útiles para el sistema o para el
usuario. (comandos o utilerías)
6TRADUCTORES
- Programa ensamblador.- transforman programas
fuente escritos en lenguaje ensamblador, en un
programas objeto escritos en lenguaje maquina y
ejecutables directamente por el hardware de la
computadora. - Programa compilador.- realiza la traducción
completa del programa fuente escrito en lenguaje
simbólico de alto nivel, en un programa objeto
escritos en lenguaje maquina. La traducción se
realiza completa en caso de no existir errores. - Programa interprete.- transforma cada instrucción
del programa fuente en instrucciones de lenguaje
maquina y lo va ejecutando a la vez.
7Programa fuente?
- Programa escrito por el programador en lenguaje
simbólico alejado del lenguaje maquina (binario).
(extensión .CPP o .C para lenguaje C)
Programa objeto?
- Programa binario generado por el compilador a
partir de un programa fuente. (extensión es
.OBJ)
8Traductores de lenguaje
- Interpretes
- Cada que se ejecuta el programa traduce
instrucción por instrucción a código máquina.
Ejemplos DOS, Born shell de Unix, bash de Linux,
BASIC, etc. - Compiladores
- Traducen solo una vez todo el programa a código
objeto (binario) para después crear un ejecutable
. Ejemplos C/C, PASCAL, etc.
PRACTICA CON DOS Y EL COMPILADOR DE C
9Diferencia entre
Compilador
Interprete
10Interprete
- Editar y ejecutar un programa (.BAT)
11Compilación
- Consiste en obtener el programa objeto codificado
en lenguaje maquina a partir del programa fuente.
12PASOS Implementación y exploración de programas
EDICIÓN (programa fuente)
Se crea el programa fuente (.CPP) almacenado en
la computadora. EJERCICIO EDITAR
Se obtiene un programa objeto (.OBJ),
codificado en lenguaje maquina a partir del
programa fuente. Realizada automáticamente
mediante el compilador del lenguaje.
COMPILACIÓN (programa objeto)
El programa ejecutable (.EXE), se obtiene
enlazando el programa objeto y los módulos o
rutinas internas del lenguaje que forman parte
del la aplicación necesarias. Proceso llevado a
acabo en la etapa del MAKE.
ENLACE (programa ejecutable)
PRUEBAS DE EJECUCIÓN.
El programa ejecutable se somete a un juego de
datos prueba capaz de detectar las posibles
incorrecciones en su funcionamiento.
- El programa se instala en el sistema informático,
para la disposición de los usuarios. Se evalúa
periódicamente y se hacen adaptaciones y
modificaciones necesarias para mantenerla
actualizada.
EXPLOTACIÓN Y MANTENIMIENTO.
13Compilador de Lenguaje
14Estructura general de un compilador
Analizador lexicográfico(scanner).- examina en el
programa fuente las unidades básicas (léxicas) o
tokens de información pertenecientes al lenguaje.
Un token es un elemento o cadena con significado
propio en el programa (palabras reservadas del
lenguaje, identificadores, operadores, etc.). Un
error puede ser una palabra reservada mal
escrita, un identificador no permitido, etc.
15Estructura general de un compilador
- Analizador sintáctico (parser).- recibe la tira
de tokens del scanner e investiga en ellas los
posibles errores sintácticos que aparezcan.
Errores de formato de instrucciones, duplicidad
de identificadores de distintas variables, etc.
Los errores son reportados mediante un listado de
compilación.
16Estructura general de un compilador
- Generador de código intermedio.- traduce el
resultado del análisis anterior (en caso de
ausencias de errores) a un código intermedio
propio del compilador, para que con él permita la
portabilidad del lenguaje (posibilidad de
utilización en distintas computadoras).
17Estructura general de un compilador
- Optimizador de código.- su misión es tomar el
código intermedio y optimizarlo, adaptándolo a
las características del procesador que va
dirigido.
18Estructura general de un compilador
- Generador de código final.- Traduce el código
intermedio optimizado en el código final, es
decir, en el lenguaje máquina del procesador al
que el compilador va dirigido.
19Estructura general de un compilador
- Modulo de tratamiento de errores.- facilita la
detección de errores y, en algún caso, recupera
errores en las distintas fases de compilación.
20Estructura general de un compilador
- Tipos de errores
- Lexicográficos se producen por tokens no
reconocibles. - Sintácticos son los que no cumplen con las
reglas de sintaxis del lenguaje. - Semánticos Se detecta en alguna fase de la
compilación y en algún caso en la de ejecución y
son aquellos que no interrumpen el proceso
(warnings). - Lógicos son los debidos a la utilización de un
algoritmo o expresión incorrecta para el problema
que se trata de resolver. - Ejecución son errores relacionados con
desbordamientos, operaciones matemáticamente
irresolubles, etc. -
21Estructura general de un compilador
- Tabla de símbolos es el elemento que almacena
todos los datos referidos a variables y
estructuras de datos del programa que se está
compilando. -
22Bibliografía.
- Eduardo Alcalde, Miguel García. Informática
Básica. Segunda Edición. Edit. McGrawHill. 1994.