Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado por:
Rincón, Pedro. C.I: 27.849.021
Zambrano, Marien. CI: 27.139.826
¿Qué son?
Es una noción que se emplea como sinónimo de código fuente. Se trata de las
instrucciones que un programa informático transmite a una computadora para
que pueda ejecutarse. Dichas instrucciones son líneas de texto escritas en
un lenguaje de programación (una estructura capaz de impartir instrucciones
informáticas a partir de una determinada base semántica y sintáctica).
EJEMPLOS Y COMO FUNCIONAN
1. EDITORES DE ESTRUCTURA
2. IMPRESORAS ESTETICAS
4. INTERPRETES
5. COMPILADORES
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.
permanente.
c. Análisis Semántico
La fase de análisis semántico se intenta detectar instrucciones que
tengan la estructura sintáctica correcta, pero que no tengan significado para la
operación implicada. Generalmente, a partir del árbol sintáctico.
Al mismo tiempo reúnen información sobre los tipos de datos del
programa fuente (variables, constantes, etc.) que será utilizada en la fase de
generación de código.
La salida del análisis semántico suele ser un árbol semántico, que no
es más que un árbol sintáctico en el que cada nodo ha adquirido su significado.
Ejemplo:
ValorX = ValorY + 1
- Que ValorX haya sido declarado antes de utilizarse
- Que ValorY haya sido declarado antes de utilizarse
- Si el lenguaje lo requiere, que ValorY haya sido inicializado
- Que ValorY y el entero 1 sean del mismo tipo o compatible.
- Que el operador suma se pueda aplicar al tipo de ValorY y al de 1.
- Que el tipo de ValorX y el tipo resultante de ValorY + 1 sean el
mismo o compatibles.
e. Generación de Código
Se genera el código objeto que por lo general consiste en código en
lenguaje máquina (código relocalizable) o código en lenguaje ensamblador.
Se asigna espacio de memoria para cada nombre del programa fuente
(variables, tipos, constantes, etc.).
Se traduce cada una de las instrucciones en código intermedio a una
secuencia de instrucciones en código objeto que ejecuten la misma tarea.
Ejemplo:
C := A + B Código Fuente
Código Objeto Equivalente:
LOAD A
SUM B
STO C
f. Optimizadores de Código
En esta fase se trata de mejorar el código intermedio, de modo que
resulte un código de máquina más rápido de ejecutar: reduciendo el espacio
ocupado por el código generado, aumentando la rapidez de ejecución,
haciendo que se necesite menos memoria cuando se ejecute.
Ejemplo:
a=b+c a=b+c
d=a-d d=a-d
e = (b + c)*d e = a*d
g. Tabla de Símbolos
Una tabla de símbolos es una estructura de datos que contiene un
registro por cada identificador. El registro incluye los campos para los atributos
del identificador. La tabla de símbolos interactúa con casi todas las fases del
compilador: el analizador léxico, el analizador sintáctico o el analizador
semántico pueden introducir identificadores dentro de la tabla. El administrador
de la tabla de símbolos se encarga de manejar los accesos a la tabla de
símbolos, en cada una de las etapas de compilación de un programa.
Ejemplo:
h. Detección de Errores.
En cada fase del proceso de compilación es posibles encontrar errores.
Es conveniente que el tratamiento de los errores se haga de manera
centralizada a través de un manejador de errores. De esta forma podrán
controlarse más eficientemente los errores encontrados en cada una de las
fases de la compilación de un programa.
Ejemplo: