Historia del Procesador de Manera GeneralDescripción completa
Sistemas digitales
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción: Es un trabajo
Descripción: evolución delos procesadores
Guía trabajo práctico Uso didáctico del prcoesador de textosDescripción completa
Descripción completa
USO Y MANEJO DEL PROCESADOR DE TEXTODescripción completa
Guía trabajo práctico Uso didáctico del prcoesador de textosDescripción completa
tabla de contenido
Descripción completa
Descripción: ESPAÑOL
Descripción: .
Descripción: manual para la prueba especifica de la usac
manual para la prueba especifica de la usac
Compiladores 1, Segundo Semestre 2010 Universidad De San Carlos de Guatemala
Procesador de Lenguaje: Los procesadores de lenguaje son todos los prog ramas que a través de una entrada escrita en un lenguaje de programación pueden manipular herramientas de software y hardware de un computador.
Intérprete [No genera código adicional]: Es un programa que simultáneamente analiza y ejecuta un programa escrito en lenguaje fuente. La primera fase de análisis es igual que el compilador. •
Es más sencillo de implementar.
•
No es necesario tener en memoria todo el código fuente.
Programa Interprete
Fuente
Interprete Puro
Interprete Avanzado
Interprete Incrementales
Resultados
El proceso es a tr avés del análisis de cada sentencia y su eje cución hasta finalizar todo el programa fuente. Pensado para maquinas con limitaciones de memoria. • Si en cualquier momento se produce un error, se debe • ejecutar desde el inicio. Incorporan un paso previo de análisis de todo el pr ograma fuente. Generan posteriormente un lenguaje ejecutado por el parser. • Usan lenguajes mas avanzados ya permiten optimización de • código. Dirigidos a lenguajes que no pueden compilarse. Se pueden crear objetos y funciones en tiempo de ejecución. • Se compilan las partes estaticas. •
Aplicaciones de Interpretes: Interpretes de comandos: Tomando el lenguaje fuente y ejecuta ej ecuta sobre el sistema operativo (C-SHELL, KORN-SHELL, JCL).
Entornos de programaci programación: ón: Lenguajes con características e speciales y cuya compilación no es efectiva. [Python, Ruby, Perl]
Sección A
Página 1
Compiladores 1, Segundo Semestre 2010 Universidad De San Carlos de Guatemala
Compilador: Los compiladores son programas que reciben un lenguaje fuente y lo transforman a un programa objeto, que puede ser ensamblador o de código máquina.
Programa
Programa Compilacion
Fuente
Objeto
Tipos de Compiladores: Compiladores Cruzados Compiladores Optimizadores Compiladores de una sola pasada Compiladores de Varias Pasadas Compiladores JIT
Generan código para un sistema distinto del que están funcionando. Realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Generan el código maquina a partir de una única lectura del código fuente. Necesitan leer el código fuente varias veces antes de poder producir el código maquina. Forman parte de un intérprete y compilan partes del código según se necesitan.
Los Compiladores tienen 2 fases:
FUENTE
DESTINO
Análisis Fase de Análisis:
Síntesis
Verifica el código fuente haciendo un análisis de los componentes léxicos, luego
agrupa los elementos en tokens y se verifica su estructura semántica y sintáctica. Fase de Síntesis:
Después de la fase de análisis algunos compiladores generan representación
intermedia del programa fuente que tiene como característica fácil de producir y fácil de traducir a programa objeto. Luego se trata de mejorar el código intermedio de modo que ejecute un código maquina más fácil de ejecutar.
Sección A
Página 2
Compiladores 1, Segundo Semestre 2010 Universidad De San Carlos de Guatemala
Programa Fuente Análisis Análisis Léxico
Lee los caracteres de entrada y elabora como salida una secuencia de componentes léxicos que son utilizadas en el análisis sintáctico. Componentes Léxicos: Identificadores, palabras reservadas, operadores lógicos, símbolos especiales, constantes etc.
Análisis Sintáctico
Analiza el orden de un lenguaje con sus reglas que son prescritas por estructura bien definida(árbol sintáctico a partir de una gramática). Una gramática da una especificación especificación sintáctica precisa y fácil de entender de un lenguaje de programación.
Análisis Semántico
Verifica el contexto en el que se encuentra cada sentencia sintáctica. Se verifican: -
Comprobación de Tipos
-
Alcance y nombre de las variables
-
Sobr Sobrec ecar ar a de o erad erador ores es
Síntesis Generación de código intermedio
La generación de código intermedio es una representación intermedia, para una una maquina maquina abstracta. Codigo de tres direcciones: Una secuencia de operaciones que tiene como máximo 3 operadores.
Optimización de código intermedio
La optimización de código es la verificación que se hace del código ya generado para mejora la velocidad al momento de la ejecución. Existen algunas reglas para optimizar:
Elimina la reescritura de código
Eliminación de código inalcanzable
Optimización de temporales
Generación de
Traduce el código intermedio a código e nsamblador.
Código
Las posiciones de memoria se seleccionan para c ada una de las variables usadas en el programa.
Programa Objeto Sección A
Página 3
Compiladores 1, Segundo Semestre 2010 Universidad De San Carlos de Guatemala
Tabla de Simbolos: Almacena la estructura de datos: •
Variables
•
Constantes
•
Etiquetas.
•
Tipos.
•
Valores.
•
Asignación de valores.
Operaciones: •
Insertar símbolo.
•
Consultar símbolo.
•
Borrar símbolo.
Detección de Errores: El manejador de errores permite establecer si el programa fuente posee algún error ya sea de tipo:
léxico (caracteres no definidos),
sintáctico (estructura inadecuada)
semántico (contexto no apropiado)
Compiladores Vs Intérpretes
Compilador • • • •
Una única compilación. Mayor velocidad ejecución. Mayor detalle de errores. Mayor consumo de memoria.
Sección A
Interprete • • • •
Interpretación en ejecución. Menor velocidad de ejecución. Menor detalle de errores. Menor consumo de memoria.