Documentos de Académico
Documentos de Profesional
Documentos de Cultura
y Proceso de Compilación
Paradigmas de los LP
Podemos citar :
◦ Modelo Imperativo
Describe los programas en términos de estados y cambio de estados
Asignación de datos a variables.
Existencia de estructuras repetitivas
Basa en el uso procedimientos y funciones
◦ Modelo Funcional
Fundamenta uso de funciones matemáticas.
Usa recursividad
No hace uso de construcciones secuenciales ni iterativas
Evalúa toda la expresión, no hay asignaciones
Uso de listas Analí J. Alfaro Alfaro
Ingeniero Informático
Paradigmas de los LP
Podemos citar :
◦ Modelo OO
Encapsulamiento y TAD (tipos abstractos de datos)
Clases y objetos
Herencia , paso de mensajes y polimorfismo
◦ Modelo Lógico
Basado en la lógica de predicados
Uso de reglas
Modelo que usa hechos (datos), reglas (formalización) y deduce conocimiento.
◦ Modelo Concurrente
Centrado en la comunicación y sincronización de procesos
Acceso exclusivo a datos compartidos.
Analí J. Alfaro Alfaro
Ingeniero Informático
Criterios de Evaluación LP:
Legibilidad
Expresividad
Buena Definición
Tipos y estructuras de datos
Modularidad
Entrada /Salida
Transportabilidad
Criterios de Evaluación LP:
Eficiencia
Generalidad
Reutilización
Extensibilidad
Distribución
Arquitectura Neutral
Robustez.
Proceso de un LP :
Consideraciones:
◦ Computador comprende lenguaje máquina.
◦ Programamos en lenguajes de alto nivel (facilidad y
fiabilidad).
Cómo puede un programa escrito en LP de alto nivel
ejecutarse?
Puede hacerlo de 3 formas :
◦ Proceso de Compilación
◦ Proceso de Interpretación
◦ Proceso Híbrido
1.- Proceso de Compilación :
Compilador :
◦ Programa en lenguaje máquina
◦ Transformación : programa fuente en programa ejecutable.
Compilador o
Código Fuente Traductor
Resultados
1.- Proceso de Compilación :
• Proceso de Transformación traducción :
1.- Proceso de Compilación :
La transformación muestra:
◦ Programa Fuente :
escrito en un LP de alto nivel
◦ Compilador :
encargado de la traducción y comprobar las llamadas a las
librerías para que se ejecuten correctamente.
◦ Programa Objeto :
Programa traducido, puede o no estar en lenguaje máquina
Aún no es directamente ejecutable
1.- Proceso de Compilación :
La transformación muestra:
◦ Programa Ejecutable :
Traducción completa a lenguaje máquina.
Hecha por el Enlazador (Linker)o Montador.
Es directamente ejecutable
◦ Enlazador (Linker) :
Encargado de insertar al programa objeto el código máquina
de las funciones de las librerías (archivos de biblioteca) usadas
en el programa y de realizar el proceso de montaje.
1.1. Etapas en el proceso Compilación
Las etapas en el proceso de Compilación son:
◦ Análisis
◦ Síntesis
Análisis :
◦ Divide al programa en sus elementos componentes
◦ Crea el código o programa intermedio.
Síntesis :
◦ Construye el código objeto, a partir del código intermedio.
1.1. Etapas en el proceso Compilación
Analizador Lexical
Optimización
Código Código Código Intermedio Código
Fuente
Analizador Sintáctico Intermedio Objeto
Generación Código
Analizador Semántico Objeto
Análisis Síntesis
1.1.1. Análisis
Analizador Léxico (Scaning):
◦ Funciones:
construir una secuencia de unidades significativas
sintácticas llamadas Token.
Reducir el trabajo del analizador sintáctico.
◦ Entrada :
cadenas de caracteres y los depura.
◦ Construcción Tokens:
Elimina espacios blancos, comentarios, etc.
Reconocer token correctos mediante reconocedor de
patrones (autómatas).
1.1.1. Análisis
Analizador Léxico (Scaning):
◦ Reconocimiento token :
Se construyen autómatas finitos, usando tabla de símbolos
Un token reconocido lexema
◦ Tabla de símbolos, almacena todos los identificadores
usados en el programa además sus tipos y la posición de
memoria que ocupan.
◦ Ejemplo
1.1.1. Análisis
Analizador Sintáctico (Parser)
◦ Función:
Determinar si un programa es correcto sintácticamente,
mediante la construcción de árboles sintácticos.
◦ Árbol sintáctico:
Organiza los Tokens, usando reglas recursivas conocidas
como gramáticas de libre contexto.
◦ Gramáticas de libre contexto:
Definidas formalmente con BNF.
◦ Ejemplo
1.1.1. Análisis
Analizador Semántico
◦ Función:
Verifica que no ocurran errores semánticos
◦ Proceso de verificación, incluye:
Consultar la tabla de símbolos, para encontrar información
de un identificador y la información ligada a éste.
◦ Además, ayuda en :
Cada identificador debe ser declarado antes de ser usado.
No existan identificadores usados en contextos
inapropiados.
1.1.1. Análisis
Analizador Semántico
◦ Función:
Verifica que no ocurran errores semánticos, usando un
verificador de tipos.
◦ Proceso de verificación, incluye:
Consultar la tabla de símbolos, para encontrar información
de un identificador y la información ligada a éste.
◦ Verificador de tipos:
Conversión de tipos
Resuelve por ejemplo sobrecarga de operadores
No exista declaración repetida de identificadores
1.1.1. Análisis
Analizador Semántico
◦ Además, ayuda a verificar :
Cada identificador debe ser declarado antes de ser usado.
No existan identificadores usados en contextos
inapropiados.
Concuerden el orden, cantidad y los tipos de parámetros
usados.
Generación de código intermedio:
◦ Representación intermedia independiente de la máquina
1.1.1. Síntesis
Optimización del código intermedio:
◦ Función:
Mejorar el código intermedio para producir código objeto
más eficiente.
Generación del código Objeto:
◦ Finalmente se transforma el código intermedio mejorado
en código objeto.
◦ Código objeto, puede estar en:
Lenguaje máquina
Lenguaje ensamblador
Lenguaje de alto nivel