Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿QUE ES UN COMPILADOR?
¿QUÉ SON?
Son un conjunto de herramientas de software diseñadas para analizar,
simplificar y acelerar el texto del código fuente, así como compilarlo o interpretarlo.
EJEMPLOS Y CÓMO FUNCIONAN
A.- Compilador: es un programa especial que traduce de código fuente de un
programa a lenguaje de máquina. El compilador informa al usuario de la presencia de
errores en el programa fuente.
Un compilador funciona de la siguiente forma:
1. El código fuente se lee en la memoria de la computadora.
programa puede tener muchos objetos y bibliotecas que necesitan ser unidas
3. Se crean los conectores, para enlazar todos los componentes del programa.
4. Se reasignan los bloques de memoria dentro del programa de modo que una
permanente.
de entrada
ANALIZADOS SINTACTICO LR
la "R" por construir una derivación por la derecha (en inglés, rightmost
C.- Análisis semántico: se encarga de que los tipos que intervienen en las
expresiones sean compatibles o que los parámetros reales de una función sean
coherentes con los parámetros formales.
1- comprobación de tipos):
La fase de análisis semántico revisa el programa fuente para tratar de
encontrar errores semánticos y reúne la información sobre los tipos para la fase
posterior de generación de código. En ella se utiliza la estructura jerárquica
determinada por la fase de análisis sintáctico para identificador los operadores
y operandos de expresiones y proposiciones.
Clasificación:
- Dinámica: Aspectos que solo pueden ser conocidos en tiempos de
ejecución.
- Estática: Aspectos que solo pueden ser controlados en tiempo de
compilación.
- Verificación de Tipos: el compilador verifica si cada operador tiene
operandos permitidos por la especificación del lenguaje fuente.
a) Sistema de tipos:
- Tipos primitivos:
- Constructores:
• enumerados: orden total
type dia is (lun, mar, mie, jue, vie, sab, dom);
type fs is (sab, dom);
• subrangos: intervalos
• registros: tuplas
• vectores: secuencias
var s: string[80];
...
write(s);
• conjuntos: selección
• punteros: referencias
• listas: sec. sin indexado
• ficheros: sec. con pos.
• funciones: genera un valor
- Equivalencia estructural:
Dos tipos son los mismos si y solo si tienen la misma estructura. Dos
expresiones de tipos son estructuralmente equivalentes si son el mismo tipo básico o
se forman aplicando el mismo constructor de tipos sobre expresiones de tipos
estructuralmente equivalentes
Conversión
Debido a que varios operadores están sobrecargados, es decir, que se utiliza el
mismo operador para operaciones diferentes, es por lo que es necesario convertir los
tipos antes de operar.
Funciones principales:
Identificar cada tipo de instrucción y sus componentes
Comprobaciones de tipos.
Comprobaciones de unicidad.
int valorA = 0;
int valorB = 10;
int temp = valorA + ValorB;
A continuación se
presenta un
Unidad II:
1- Preprocesadores:
Un preprocesador es un programa separado que es invocado por el
compilador antes de que comience la traducción real.
El procesador en si es la parte más importante o una parte fundamental del
computador, vendría siendo el cerebro del computador. El procesador es uno
de los componentes más complejos y frecuentemente más caro, pero él no
puede hacer nada solo. Como todo cerebro, necesita de un cuerpo, que es
formado por los otros componentes de la computadora, incluyendo la memoria,
el disco duro, la placa de vídeo y de red, monitor, teclado y mouse, etc.
2- Ensambladores:
El término ensamblador se refiere a un tipo de programa informático que se
encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un
fichero objeto que contiene código máquina, ejecutable directamente por el
microprocesador.
3- Cargadores:
Un cargador es un programa que coloca en la memoria para su ejecución, el
programa guardado en algún dispositivo de almacenamiento secundario. Un
cargador es un programa del sistema que realiza la función de carga, pero
muchos cargadores también incluyen relocalización y ligado. Algunos sistemas
tienen un ligador para realizar las operaciones de enlaces y un cargador
separado para manejar la relocalización y la carga. Los procesos de
ensamblado y carga están íntimamente relacionados.