Está en la página 1de 7

MATERIA: Lenguajes Y Autmatas II

UNIDAD: 4

NOMBRE DEL ALUMNO: JAIR SAID KUC OLAN

ACTIVIDAD: Generacin de cdigo objeto

Profesora: Rosario de Ftima Suarez Amendola

GRUPO: VS7

CARRERA: Ingeniera en Sistemas Computacionales

UNIDAD 4

Generacin de cdigo objeto. El generador de cdigo objeto como lo menciona (Urbina, 2011) transforma el cdigo intermedio optimizado en cdigo objeto de bajo nivel. Toma cdigo intermedio y genera cdigo objeto para la mquina considerada Es la parte ms prxima a la arquitectura de la mquina. Habitualmente, se escriben ``a mano desarrollo a medida para cada mquina especfica

REGISTROS:

Qu son? Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. Quines lo utilizan? Antes de nada, para el desarrollo de esta parte hablaremos indistintamente de registros de activacin o de marcos de pila. Esto se debe a que en la documentacin encontrada sobre el manejo de los registros ebp y esp se hace mencin a dicho concepto de marco de pila. Puesto que el lenguaje permite recursividad, los registros de activacin se asignan dinmicamente. Qu asen? Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica Los registros son direccionables por medio de una vieta, que es una direccin de memoria. Los bits, por conveniencia, se numeran de derecha a izquierda (15, 14,13. 3, 2, 1,0)

Tipos Registros de segmento Registros de apuntadores de instrucciones Registros apuntadores

Registros de propsitos generales Registro ndice Registro de bandera.

Cuales su aplicacin en la generacin de cdigos? 1. usar el registro de y si est en un registro que no tiene otra variable, y adems y no est viva ni tiene uso posterior. Si no: 2. usar un registro vaco si hay. Si no: 3. usar un registro ocupado si op requiere que x est en un registro o si x tiene uso posterior. Actualizar el descriptor de registro. Si no: 4. usar la posicin de memoria de x

LENGUAJE ENSAMBLADOR Qu es? El lenguaje Assembly (Urbina, 2011) (a veces mal llamado "Ensamblador" por su traduccin literal al espaol) es un tipo de lenguaje de bajo nivel utilizado para escribir programas informticos, y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadora Segunda generacin de lenguajes Versin simblica de los lenguajes mquina (Urbina, 2011) (MOV, ADD).La comunicacin en lenguaje de mquina es particular de cada procesador que se usa, y programar en este lenguaje es muy difcil y tedioso, por lo que se empez a buscar mejores medios de comunicacin con sta. Los lenguajes ensambladores tienen ventajas sobre los lenguajes de mquina. Este lenguaje fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente slo se utiliza encontradas ocasiones, especialmente cuando se requiere la manipulacin directa del hardware o se pretenden rendimientos inusuales de los equipos. Funcionalidad? (Urbina, 2011)Ahorran tiempo y requieren menos atencin a detalles. Se incurren en menos errores y los que se cometen son ms fciles de localizar. Adems, los programasen lenguaje ensamblador son ms fciles de modificar que los programas en lenguaje de mquina. Lenguajes de alto nivel Lenguajes de tercera generacin (3GL) Estructuras de control, Variables de tipo, Recursividad, etc. Ej.: C, Pascal, C++, Java, etc

Lenguajes orientados a problemas. Lenguajes de cuarta generacin (4GL)

Operaciones bsicas (Urbina, 2011) Las operaciones bsicas en un lenguaje ensamblador son la suma la resta la multiplicacin y la divisin y Necesitara un poco mas de informacin sobre la arquitectura y SO para el cual programas. Pero la idea bsica es: --definir que parmetros tendr la funcin --hacer el programa, propiamente dicho, en assembler Siguiendo la convencin de pasaje de parmetros, manejar registros y posiciones de memoria, devolviendo los resultados en donde deba (una posicin de memoria, el registro eax, etc.)

LENGUAJE MAQUINA Son los lenguajes de ms bajo nivel: secuencias binarias de ceros y unos. Se denomina lenguaje mquina a la serie de datos que la parte fsica de la computadora o hardware, es capaz de interpretar. El lenguaje mquina fue el primero que empleo el hombre para la programacin de las primeras computadoras. Una instruccin en lenguaje mquina puede representarse de la siguiente forma: 011011001010010011110110. Esta secuencia es fcilmente ejecutada por la computadora, pero es de difcil interpretacin, siendo aun ms difcil la interpretacin de un programa (conjunto de instrucciones) escrito de esta forma. Esta dificultad hace que los errores sean frecuentes y la correccin de los mismos costosa, cuando no imposible, al igual que la verificacin y modificacin de los programas.

Operaciones bsicas (BUENASTAREAS, 2010) Los lenguajes de computadora se utilizan para resolver problemas, y ha habido miles de aos de trabajo en matemticas para este fin. Los lenguajes de programacin estn especificados por reglas para formar instrucciones correctas, organizndolas en mdulos, someterlas hacia un compilador, el cual traduce el cdigo en un lenguaje comprensible para una mquina en particular, y finalmente ejecutar el programa, es decir, someter la entrada hacia la computadora, la cual transforma en una salida de acuerdo con las instrucciones en el programa. Cuando usamos una computadora, estamos intentados resolver un problema. Puede ser un problema de negocios, que involucra ganancias y prdidas; un problema cientfico que emplea modelos de comportamiento fsico; una investigacin estadstica que evala la posibilidad de que ocurra algn evento; etc. En general, una computadora, slo es capaz de realizar tres operaciones bsicas:

si el primero es mayor que el segundo, si son diferentes, etc.). n. Con estas sencillas operaciones utilizadas y combinadas de manera adecuada, mediante lo que se denomina Programa de computadora, se pueden llegar a realizar tareas increblemente complejas que aporten la solucin a un determinado problema, ya sea administrativo, cientfico, o de cualquier otro tipo. Dentro del campo de la computacin, un PROBLEMA consiste en la necesidad de transformar un grupo de datos iniciales (entrada) en un grupo diferente de datos finales (Resultados). De este modo, una computadora podr resolver un problema si alguien desarrolla un programa que contenga las instrucciones adecuadas que permitan transformar los datos, esta actividad la realizan los Programadores (seres humanos) y se le denomina PROGRAMACIN.

Correspondencia con el lenguaje ensamblador (malaga, 2008) Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo. Dentro de este grupo se encuentran:

El lenguaje maquina: este lenguaje ordena a la mquina las operaciones fundamentales para su funcionamiento. Consiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son bastantes difciles de manejar y usar, adems de tener cdigos fuente enormes donde encontrar un fallo es casi imposible. El lenguaje ensamblador es un derivado del lenguaje maquina y est formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, aadiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener.

ADMINISTRADOR DE MEMORIA

(http://es.wikipedia.org, 2012) La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. POLITICAS Y FILOSOFIA DE LA ADMINISTRACION DE LA MEMORIA . La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, as como algunos datos a emplear. Una de las funciones bsicas que debe implementar un SO es la administracin de la Memoria para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando. Se distinguen los siguientes propsitos del sistema de administracin de memoria: Proteccin. Si varios programas comparten la memoria principal, se debera asegurar que el programa no sea capaz de cambiar las ubicaciones no pertenecientica l. Aunque una accin de escritura puede tener efectos ms graves que una de lectura, esta ltima tampoco debera estar permitida, para proporcionar algo de privacidad al programa. Compartimiento. Este objetivo parece contradecir al anterior, sin embargo a veces es necesario para los usuarios poder compartir y actualizar informacin (por ejemplo, en una base de datos) y, si se organiza la tarea de entrada a la misma, se puede evitar el tener varias copias de la rutina. Reubicacin. La tcnica de multiprogramacin requiere que varios programas ocupen la memoria al mismo tiempo. Sin embargo no se sabe con anticipacin donde ser cargado cada programa por lo que no es prctico usar direccionamiento absoluto de memoria. Organizacin fsica. Debido al costo de una memoria principal rpida, ste se usa en conjunto con una memoria secundaria mucho ms lenta (y por consiguiente, barata) a fines de extender su capacidad. Organizacin lgica. Aunque la mayor parte de las memorias son organizadas linealmente con un direccionamiento secuencial, esto difcilmente concuerde con el camino seguido por el programa, debido al uso de procedimientos, funciones, subrutinas, arreglos, etc.

MECANISMOS DE ASIGNACION. Un mecanismo de asignacin determina la cantidad de bloques (particiones) que sern administrados en la memoria.

1. ASIGNACIN DE UNA PARTICIN. En la memoria se considera la existencia de una sola particin, esto es, se tiene la capacidad de ejecutar un proceso. La particin es toda la memoria, cuya administracin corre por cuenta del usuario, o sea, no hay un sistema operativo. 2. ASIGNACIN DE DOS PARTICIONES. La memoria se divide en 2 bloques. En una particin se carga el Sistema Operativo y en la otra el programa del usuario. Es el concepto de Sistema Operativo Mono usuario. 3. ASIGNACIN DE MULTIPLES PARTICIONES. La memoria es dividida en varias particiones una para el Sistema Operativo y las dems para los procesos de usuarios u otras funciones especiales del Sistema Operativo.

Bibliografa
BUENASTAREAS. (12 de 2010). Obtenido de www.buenastareas.com: http://www.buenastareas.com/ensayos/Unidad-8-Generacion-De-CodigoObjeto/1303597.html http://es.wikipedia.org. (28 de 11 de 2012). Obtenido de wikipedia: http://es.wikipedia.org/wiki/Lenguaje_ensamblador malaga, e. j. (2008). Teorias de automatas y lenguajes formales . En e. j. malaga, Teorias de automatas y lenguajes formales . espaa: edicion electronica pedro sit S.A. Soler, F. O. (s.f.). PROCESADOR DEL LENGUAJE. Obtenido de www.di.uniovi.es: http://www.di.uniovi.es/procesadores/Apuntes/GeneracionCodigo/GC.pdf Urbina, G. (11 de 06 de 2011). scribd. Obtenido de http://es.scribd.com: http://es.scribd.com/doc/58266678/Unidad-8-Generacion-de-Codigo-Objeto