Está en la página 1de 9

I.

OBJETIVOS:
- Comprender los conceptos bsicos de los compiladores.
- Conocer los lenguajes que se utilizaran en las prcticas posteriores.

II.

FUNDAMENTO TERICO:
-

LENGUAJES DE PROGRAMACION

Es un lenguaje formal diseado para expresar procesos que pueden ser llevados a cabo
por mquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de
una mquina, para expresar algoritmos con precisin, o como modo de comunicacin
humana.1
Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el cdigo
fuente de un programa informtico se le llama programacin.
Tambin la palabra programacin se define como el proceso de creacin de un programa
de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los
siguientes pasos:
El desarrollo lgico del programa para resolver un problema en particular.
Escritura de la lgica del programa empleando un lenguaje de programacin especfico
(codificacin del programa).
Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina.
Prueba y depuracin del programa.
Desarrollo de la documentacin.
Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y
'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de
programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de
pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de
instrucciones que permiten estructurar el contenido de los documentos). (Wikipedia-La
enciclopedia libre, 2015)

PROCESADORES DE LENGUAJE

Los programas escritos en lenguaje de la maquina son los nicos que se pueden
ejecutar directamente en una computadora. Los restantes hay que traducirlos.
Se conocen como procesadores de lenguaje a las aplicaciones informticas que

trabajan con un lenguaje. Esta definicin abarca una gran variedad de


herramientas de software, entre las cuales tenemos:
Traductores: Es un programa que recibe un lenguaje fuente y devuelve un
lenguaje objeto.
Ensamblador: Si el lenguaje fuente es un lenguaje ensamblador, y el leguaje
objeto es el lenguaje mquina, entonces el traductor se llama ensamblador.
Compilador: Es un traductor que transforma un lenguaje fuente de alto nivel a
lenguaje de bajo nivel
Interprete: Es un programa que simplemente ejecuta las instrucciones que se
encuentran e el lenguaje fuente.
-

COMPILADOR

Un compilador analiza un programa escrito en un lenguaje de alto nivel


(programa fuente) y, si es correcto, genera un cdigo equivalente (programa
objeto) escrito en otro lenguaje, que puede ser de primera generacin (de la
maquina), de segunda generacin (simblico) o de tercera generacin. El
programa objeto puede guardarse tantas veces como se quiera, sin necesidad
de traducirlo de nuevo.
-

ESTRUCTURA GENERAL DE UN COMPILADOR

Las fases de un compilador se puede agrupar en dos reas: El anlisis del


programa fuente y su sntesis en el programa objeto

III.

PROCEDIMIENTO
DESARROLLO:
III.1
Parte
1

simple/0

Ejemplo 1
M
{
R a;
R b;
C=a+b;
W C;
}
Analizaremos lo que hace el programa:
R a y R b indican que se debe leer las variables a y b
c=a+b indica que en las variables c se asignar el valor de la suma de a y b
W c indica que se escribir el valor de la variable c.
En resumen el programa leer dos variables, las sumar y terminar mostrando el
resultado en la pantalla.
Ejercicio 1
M

{
R a; R b; R c;
P=(a+b+c)/3;
W p;
}
Describir lo que hace el programa:
El programa leer tres variables, se le asignar a la variable p, en la cual los sacar
su promedio de las variables y terminar mostrando en la pantalla la variable p.
Ejercicio 2
M
{
R a;
R b;
R=(a*a)+(b*b)
W r;
}
Describir lo que hace el programa:
El programa leer dos variables a y b; la variable r se le asignar la suma de
multiplicacin de cada variable leida luego y terminar mostrando en la pantalla la
variable r.
Ejercicio 3. Escriba un programa en SIMPLE/0 que lea un numero, calcule y muestre
en pantalla cuanto es ese nmero elevado al cubo.
M
{
R a;
c=a*a*a
W c;
Ejercicio 4. Escriba un programa en SIMPLE/0 que lea 5 nmeros, calcule y muestre
en pantalla la sumatoria y multiplicacin de dichos nmeros.
M
{

R a, R b, R c, R d, R e;
X=a+b+c+d+e;
Y=(a+b+c+d+e)/5;
Z=a*b*c*d*e;
W X,Y,Z;
Ejercicio 5. Escriba un programa en SIMPLE/0 que lea un numero y determine si
este es par o impar. Si es par deber mostrar 0 en pantalla, mientras si es impar
deber mostrar 1
M
{
R a;
x=a%2;
W x;

PARTE II: ENSAMBLA/0


Ejemplo 1: En base al trozo de cdigo fuente en SIMPLE/0, se muestra su
traduccin al cdigo intermedio en ENSAMBLA/0
M
{
R a;
R b;
c=a+b;
W c;
}

Traduccin a EMSAMBLA/0
.CODE
INPUT a

INPUT b
PUSHA c
PUSHA a
LOAD
PUSHA b
LOAD
ADD
STORE
OUTPUT
END

Ejercicio 1: Traducir el siguiente cdigo en SIMPLE/0 a ENSAMBLA/0


M
{
R a;
R b;
z=a+b-2;
W z;
}
Traduccin a EMSAMBLA/0
.CODE
INPUT a
INPUT b
PUSHA z
PUSHA a
LOAD
PUSHA b
LOAD
ADD
STORE

PUSHA x
PUSHA z
LOAD
PUSHC 2
LOAD
NEG
STORE
OUTPUT x ;
END
Ejercicio 2: Traducir el siguiente cdigo en SIMPLE/0 a ENSAMBLA/0
M
{
R a;
R b;
R c;
q=(a*a)+(b*b)+(c*c);
W q;
}
Traduccin a EMSAMBLA/0
.CODE
INPUT a
INPUT b
INPUT b
PUSHA z
PUSHA a
LOAD
PUSHA b
LOAD
PUSHA 2
LOAD

ADD
NEG
STORE
OUTPUT z;
END

CONCLUSIONES:

Se comprendi los conceptos bsicos de los compiladores.


Se conoci los lenguajes que se utilizaran en las prcticas posteriores.

BIBLIOGRAFIA: