Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MANUAL DE PROGRAMACION
MATERIA:
LENGUAJES Y AUTOMATAS II
INTEGRANTES:
NELSON BARRERA ALDAY
JOSE ALFREDO VALLADAREZ VILLLANUEVA
AGOSTO-DICIEMBRE 2016
Contenido
Introduccin........................................................................................................ 4
Marco Terico...................................................................................................... 5
LENGUAJE ENSAMBLADOR............................................................................ 6
LENGUAJES DE ALTO NIVEL...........................................................................7
LENGUAJES DE MEDIO NIVEL........................................................................8
OBJETIVOS DE DESARROLLO.........................................................................9
CARACTERSTICAS.......................................................................................... 10
INTERACCIN CON BOTONES......................................................................10
REAS DE TEXTO........................................................................................ 11
TABLA DE SMBOLOS...................................................................................... 12
Lenguaje..................................................................................................... 12
Tipos de datos............................................................................................ 13
Operaciones................................................................................................ 13
Directivas.................................................................................................... 13
EJEMPLOS DE USO Y APLICACIN...................................................................14
Guardar datos............................................................................................. 14
Errores........................................................................................................ 15
Introduccin
Marco Terico
LA UNIDAD CENTRAL DE PROCESAMIENTO (CPU)
Es el dispositivo fsico que ejecuta las instrucciones. Las instrucciones que ejecuta la CPU
son por lo general muy simples. Las instrucciones pueden requerir datos que estn en un
lugar especial de almacenamiento de la CPU en si misma llamados registros.
La CPU puede acceder a los datos en los registros mucho ms rpido que en la memoria.
Sin embargo el nmero de registros en la CPU es limitado, as el programador debe tener
cuidado de dejar en los registros solo los datos que est usando. Las instrucciones que un
tipo de CPU ejecuta las hace en lenguaje de mquina. Los programas en lenguaje de
maquina tienen una estructura mucho ms bsica que los lenguajes de alto nivel. Las
instrucciones en lenguaje de maquina son codificadas como nmeros, no en formatos de
texto amigables. Una CPU debe estar en capacidad de decodificar una instruccin muy
rpidamente para ejecutarse eficientemente.
EL lenguaje de maquina es diseado con este objetivo en mente, no para ser fcilmente
descifrados.
As por ejemplo cuando un programa dice al ordenador que visualice un mensaje sobre el
ordenador o que lo imprima sobre la impresora. Las instrucciones correspondientes para
llevar a cabo esta accin, para que puedan ser entendibles por el ordenador tienen que ser
almacenadas en la memoria como cadenas de bits.
Esto hace pensar que escribir un programa utilizando ceros y unos. Llevara mucho tiempo
y con todas las posibilidades de cometer errores, por este motivo se desarrollaron los
lenguajes ensambladores.
LENGUAJE ENSAMBLADOR
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemticas,
manejo de tablas, etc, que figuran en una especie de librera del lenguaje, de tal manera que
se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la
gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL,
COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67,
ADA, C++, LIS, EUCLID, BASIC), adems de las diferentes versiones o dialectos que se
han
desarrollado
de
algunos
de
ellos
Variantes
Se trata de un trmino no aceptado por todos, pero q seguramente habrs odo. Estos
lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos
lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabajar con
direcciones de memoria, todas ellas caractersticas de lenguajes de bajo nivel y a la vez
realizar operaciones de alto nivel.
Generaciones
La evolucin de los lenguajes de programacin se puede dividir en 5 etapas o
generaciones.
Primera generacin: lenguaje mquina.
Segunda generacin: se crearon los primeros lenguajes ensambladores.
Tercera generacin: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol
Cuarta generacin. Son los lenguajes capaces de generar cdigo por si solos, son los
llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el
lenguaje. Aqu tambin se encuentran los lenguajes orientados a objetos, haciendo posible
la reutilizacin d partes del cdigo para otros programas. Ej. Visual, Natural Adabes.
Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial.
Estos lenguajes todava estn poco desarrollados. Ej. LISP
OBJETIVOS DE DESARROLLO
El objetivo principal es desarrollar un compilador para poder comprender las etapas que el
mismo autmata posee, el lenguaje base para desarrollar lo que denominamos
PseudoAsambler en java. En un principio el equipo de trabajo se plane desarrollarse bajo
plataforma C# por la modalidad que posea pero dada la factibilidad se opt por java. Por
qu java? Dado que el desarrollo es a manera de aprendizaje se opt por java dado que
posee una mquina virtual, asemejando en mucho aspecto la funcionalidad de la maquina
fsica, por otra parte las instrucciones a usar en el mismo fueron muy simples, a pesar que
java brinda una gran posibilidades de crear un compilador, se opt por hacerlo de forma
fcil con el uso de arreglos como vectores y un analizador token por token delimitando el
rea de trabajo a un lenguaje definido, y lexemas propios.
Como objetivo principal tenemos que:
1.- Quien utilice este lenguaje tenga las bases suficientes para poder entrar al estudio de
lenguaje ensamblador.
Que el usuario tenga una interaccin previa a la forma tradicional de usar registros,
especficos. Aunque actual mente solo se cuenta con el uso de variables enteras dado que
los nmeros flotantes o doubles an no son permitidos. Es un buen comienzo para que el
usuario comience a programar, movimientos especficos.
Como se muestra en la imagen el uso de un lenguaje de alto nivel como lo es c, y la diferencia que exis
CARACTERSTICAS
Como es a decir el programa trata de explicar el funcionamiento de un lenguaje
ensamblador, en lenguaje asambler el usuario no ve lo que pasa cuando est indicando
instrucciones. Por lo contrario tenemos 4 cajas de texto en las cuales una es para introducir
texto y las consecutivas son para observacin del programa. La interfaz de usuario es
simple.
REAS DE TEXTO
TABLA DE SMBOLOS
Lenguaje
C
D
Alfabeto
Por otra parte el lenguaje son los registros de uso general en un principio se planea
dividirlos un par de registros para suma otros para resta y en subsecuente, dada la
irrelevancia que tendra, se presentan todos los registros como medios de almacenamiento
para realizar los movimientos pertinentes. Algo muy importante de este lenguaje es que no
identifica si el registro ingresado es mayscula o minscula. Esto para comodidad del
usuario.
Tipos de datos.
Enteros.
0
4
5
Datos Tipo Entero
Dentro del programa se plane que el nico uso de datos es el entero pensando en que el
lenguaje sea agradable al usuario despertando un inters por usar y desarrollar ms
caractersticas del mismo. Por el momento acepta cualquier combinacin de datos
numricos. No es aceptable el punto decimal.
Operaciones
ADD
Suma
NO
Resta
DIL
Divisin
MUL
Multiplicacin
Las decisiones operativas son propias del lenguaje, pensando mucho en el lenguaje
ensamblador. Dado que la nica que utiliza es ADD que significa sumar o adherir. Como
subsecuente la resta, la divisin y multiplicacin.
Directivas
MOB
Mover Dato A
X
Bucle IF
(contador)
Las directivas que se utilizan dentro del programa son las presentadas a continuacin si
bien es un diccionario simple, es por la razn que el usuario sienta que el entorno lo atrapa
para desarrollar cualquier operacin lgica que tenga en mente.
El smbolo X nos muestra que no es ms que un bucle if el cual se program como un
contador el cual tendr un decremento en medida que sea declarado por el usuario, por el
momento su funcin no es muy estable ms sin en cambio, se encuentra en desarrollo. Para
lograr un desempeo ms ptimo.
Como vemos lo que es la traduccin: se puede apreciar muy bien lo que es el programa, como se
explic con anterioridad. Guarda 10 en el registro A.
Errores
En cuando se ingrese una palabra smbolo que no est dentro del diccionario establecido de
inmediato enviara un mensaje en el rea de errores los cuales son indicados, a continuacin nos
muestra que los tokens /, +, . no son permitidos dentro del lenguaje.
Simple al dar click en la opcin compila nos debe aparecer lo que est almacenado En el registro A