1. COMPILADOR Y TRADUCTORES
Concepto.
Un compilador es un programa informático que traduce un programa escrito a un lenguaje de
alto nivel a otro lenguaje de bajo nivel, produciendo un programa equivalente que puede ser
leída por un microprocesador.
Lenguaje de máquina (lenguaje binario). –
Es un conjunto de símbolos directamente interpretable por una máquina.
Un lenguaje es un conjunto de símbolos.
Lenguaje de alto nivel es cuando está cerca de nosotros.
Lenguaje de alto nivel = (natural)
Concepto. - el lenguaje de alto nivel es un lenguaje cuya característica es la semejanza con
el lenguaje natural. (Lenguaje de las personas).
Lenguaje de bajo nivel (se asemeja a la máquina)
un lenguaje de bajo nivel es un lenguaje que tiene gran semejanza con el lenguaje de
máquina.
Compilador = cuando el lenguaje de alto nivel a bajo nivel.
Traductor = cuando el lenguaje de bajo nivel a alto nivel.
COMPILADOR
Partes o funciones:
El análisis
La síntesis
ANALISIS: 3 etapas
1. Análisis léxico
2. Análisis sintáctico
3. Análisis semántico
El análisis léxico: consiste en la traducción del código fuente a elementos léxicos.
Verifica los componentes léxicos
Análisis sintáctico: consiste en el agrupamiento d elementos léxicos en frases
gramaticales.
Verifica qué tenga sentido la sentencia
2. Análisis semántico: consiste en la validación de dichas frases gramaticales o
sentencias.
Verifica la valides de las operaciones
TOKEN: elementos léxicos (símbolos en la programación)
Ejemplo
A = B + C TODOS LOS SIMBOLOS SON TOKEN
Las Palabras reservadas también son TOKEN. ( if , while , for ,etc.)
SINTESIS.- consiste en producir un código objeto o BYTECODE que será
interpretado por una maquina.
CODIGO OBJETO.- es un fichero lista para ser ejecutado por la maquina.
Durante el proceso de compilación se crea 2 tablas:
1. TABLA DE SIMBOLOS
2. TABLA DE ERRORES
Tabla de símbolo.- es una estructura de datos q contiene información de todos los
elementos léxicos del código.
EL COMPILADOR PARA HACER EL ANALISIS LEXICO UTILIZA LA
TABLA DE SIMBOLOS
TABLA DE SIMBOLOS
NOMBRE POSICION TIPO
A 1 INT
B 2 STRING
MEMORIA ASIGNADA:
0 “”
1 2 3 4 5 (Posición)
Valor la variable.
3. TABLA DE ERRORES.- es una estructura de datos q almacena información sobre los
eventos durante la compilación.
TABLA DE ERRORES
CODIGO MENSAJE
1 “ variable duplicada”
Constante.- Es una variable que su valor no puede cambiar.
Variable.- Si puede cambiar o asignarle otro valor.
Optimización.- Es el proceso por el cual se mejora la calidad del fichero ejecutable.
Optimización(dos tipos)
1. optimización de velocidad.
2. Optimización de tamaño.
Optimización de velocidad. -Es el tipo de optimización que hace que un fichero se ejecute
más rápidamente.
Optimización de tamaño. -Es el tipo de optimización que hace que un fichero sea lo más
pequeño posible.
Tipo Tamaño (bytes) Tiempo ejecución
Int 4 Rápido
Float 8 Lento
String N lento
4. unit1.cpp codigo
unit1 intermedio objeto
proyecto1.exe ejecutable
if while repeat loop
instrucciones básicas de un compilador son
if ( condiciones)
while (bucles,iteracciones)
las demas for do loop repet case son solo variaciones
instrucción especial
goto ( ir a ) (saltos) < go to >
sirve para saltar de una línea a otra
es una instruccion para realizar saltos en la ejecución de un programa
ejemplo:
1LEER (A) 1 LEER (A)
2LEER (B) 2LEER (B)
3IF ](A>B) 3 IF (B>A) GOTO 6
4 MOSTRAR(A) 4 MOSTRAR (A)
5 ELSE 5GOTO (7)
6 MOSTRAR (B) 6 MOSTRAR
7 FIN 7FIN
1INT i=0; 1int i=0;
2while (i<10) { 2 show message ();
3show message (); 3i++;
4i++ 4if (i< 10) goto 2
5. 5} 5 fin
Dim x as integer;
Dim paises(2) As String;
„Llena el vector con datos
paises(0) = "Argentina";
paises(1) = "Perú";
paises(2) = "Brasil";
„Recorre los elementos del vector
x= 0
while x > 2
MsgBox "Nombre del país : " & paises(x)
x = x+1
end while
dim x as integer
dim paises (2) as string
paises (0) = "bolivia"
paises (1)= "peru"
paises (2)= "mexico"
x= 0
msgbox "nombre del pais: " & paises(x)
x= x+1
if x < 3 goto 7
fin