Académique Documents
Professionnel Documents
Culture Documents
Flor Prof. Flor Narciso GIDyC-Departamento de Computacin LABSIULA-Escuel a de Ingeniera de Sistemas Facultad de Ingenier a Universidad de Los Andes fnarciso@ula.ve
Lenguaje ensamblador
Versin simblica de un lenguaje de mquina:
Cada cdigo de operacin se indica por un cdigo simblico: ADD, MUL... Asignaciones de memoria se dan con nombres simblicos
No acceso directo al sistema Estructura de datos complejas Utilizacin de bloques, procedimientos o subrutinas
Ejemplos: Ada, ALGOL, Basic, C, C+ , + C#, Clipper, Cobol, Fortran, Java, Lexico, Logo, Object Pascal, Pascal, Perl, PHP, PL/SQL, Phyton, Modula 2. Lenguajes funcionales: Haskell, Lisp
T ARE A! ! ! !
Ejemplo: Lenguaje C
Procesar
Someter a un proceso de transformacin mediante operaciones programadas. Es decir, transformar un origen (fuente) en un destino mediante una herramienta de transformaci n que permita operaciones programadas : la computadora.
Procesador de lenguaje
Nombre genrico que aplicaciones informticas en de
-
Procesador lenguaje
Se tomar como paradigma de los lenguaje los compiladores.
de
lenguaje:
los
procesadores de
Traductores - Compiladores Ensambladores - Enlazadores Cargadores - Intrpretes Desensambladores - Decompiladores Depuradores - Analizadores de rendimiento Optimizadores de cdigo - Compresores Preprocesadores - Formateadores Editores
Los lenguajes de alto nivel hicieron necesarios los compiladores a partir de los aos 50. Desde entonces, gracias al descubrimiento de tcnicas sistemticas para el manejo de muchas tareas que surgen en la compilacin, al desarrollo de buenos lenguajes de implantacin, entornos de programacin y herramientas de software, el diseo y desarrollo de un compilador se ha simplificado enormemente.
TAREA!!! !
Traducto r
Lee un texto fuente y lo traduce a un texto objeto. Est escrito en un lenguaje de Implantacin (LI). Puede ser cualquier lenguaje desde uno de alto nivel a uno mquina. El texto fuente est escrito en lenguaj e fuente (LF). Normalmente uno de alto nivel pero tambin puede ser de bajo nivel. El texto objeto est escrito en lenguaj e objeto (LO). Puede ser otro lenguaje de alto nivel, un lenguaje mquina o un ensamblador.
Compilador
Traductor que acepta programas escritos en un lenguaje de programacin de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede ejecutarse tantas veces como se desee.
Compilaci n
Proceso por el cual se traducen programas en c digo fuente (programa fuente) a programas en cdigo objeto (programa objeto). El programa que realiza esta traduccin se llama c ompilado r.
Compilacin
El tiempo que se tarda en traducir un programa en cdigo fuente se llama tiempo de compilacin. El tiempo que tarda en ejecutarse un programa en cdigo objeto se llama tiempo de ejecucin. El programa fuente y los datos se procesan en momentos diferentes .
El archivo de cdigo objeto que se obtiene con la compilacin est representado normalmente en c dig o de m quina , aunque tambin puede ser un cdigo intermedio binario multiplataforma (bytecode).
Cdigo fuente
Conjunto de lneas de cdigo que conforman un bloque de texto que normalmente genera otro cdigo mediante un compilador o intrprete para ser ejecutado por una computadora. Normalmente se refiere a la programacin de software. Un nico programador o un equipo de programadores escriben el cdigo fuente en el lenguaje de programacin elegido. Posteriormente en un proceso de compilacin el cdigo fuente se traduce en cdigo objeto.
Cdigo objeto
Cdigo resultante de la compilacin del cdigo fuente, por lo general est codificado en cdigo de mquina y distribuido en varios archivos resultantes de la compilacin de cada archivo de cdigo fuente.
Compiladores
Los compiladores son las herramientas ms utilizadas por los informticos para desarrollo de aplicaciones .
En el caso particular del desarrollo de compiladores se hace necesario definir tres aspectos bsicos:
El lxico, la sintaxis y la semntica del lenguaje fuente a ser compilado. La estructura interna del compilador. La arquitectura de la computadora y su conjunto de instrucciones del lenguaje objeto.
La construccin de un compilador para un determinado lenguaje es una tarea compleja, que se puede reducir siguiend o una metodologa: dividir en mdulos las diferentes fases. La complejidad depender de las caractersticas del lenguaje fuente y del lenguaje objeto y de su diferencia de niveles.
SNTES IS
Sntesis
Generacin de cdigo intermedio Optimizacin de cdigo intermedio Generacin de cdigo Optimizacin de cdigo
BACK -END
Programa objeto
Tipos de compiladores
Esta taxonoma de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categoras:
Compiladores cruzados: Se ejecutan en una mquina pero el cdigo objeto que producen es para otra mquina.
Compiladores optimizadores: Realizan cambios en el cdigo para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Compiladores de una sola pasada: Generan el cdigo mquina a partir de una nica lectura del cdigo fuente.
Tipos de compiladores
Compiladores de varias pasada s: Necesita n leer el cdigo fuente varias veces antes de poder producir el cdigo de mquina. Compiladores JIT (Just In Time): Forman parte de un intrprete y compilan partes del cdigo segn se necesita n. Tarea: Investigar acerca de los compiladores de varias pasadas
Generadores
el cdigo fuente del analizador sintctico a partir de la especificacin de la gramtica del lenguaje fuente. La mas usada yacc incluida en UNIX. Tambien existen versiones para PC.
con un conjunto de reglas que permiten la traduccin del cdigo en lenguaje intermedio al lenguaje objeto. Las reglas suelen remplazar instrucciones de cdigo intermedio por patrones que contienen las instrucciones equivalentes de la mquina objeto.
Analizadore s de
informacin cdigo.
flujo:
la de