Lenguajes de programacion tema 2_compiladores e interpretes

50 %
50 %
Information about Lenguajes de programacion tema 2_compiladores e interpretes

Published on October 15, 2014

Author: casianocruz00

Source: slideshare.net

Description

Compiladores e interpretes

1. Un compilador es un programa que convierte o traduce el código fuente de un programa hecho en lenguaje de alto nivel, a un lenguaje de bajo nivel (lenguaje de máquina). En pocas palabras, es un software que se encarga de traducir el programa hecho en lenguaje de programación, a un lenguaje de máquina que pueda ser comprendido por el equipo y pueda ser procesado o ejecutado por este.

2. Características principales de un compilador Para cada lenguaje de programación se requiere un compilador separado. • El compilador traduce todo el programa antes de ejecutarlo. • Los programas compilados se ejecutan más rápido que los interpretados, debido a que han sido completamente traducidos a lenguaje máquina. • Informa al usuario de la presencia de errores en el programa fuente. • Poseen un editor integrado con un sistema de coloreado para los comandos, funciones, variables y demás partes de un programa.

3. La importancia de los compiladores radica en que, sin estos programas no existiría ninguna aplicación informática, ya que son la base de la programación en cualquier plataforma.

4. Intérprete Es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción. Se trata de traductores-ejecutores ya que con cada instrucción realizan un proceso triple de lectura-traducción- ejecución.

5. El funcionamiento de un intérprete se caracteriza por traducir y ejecutar, de una en una, las instrucciones del código fuente de un programa, pero, sin generar como salida código objeto. El proceso que realiza un intérprete es el siguiente: lee la primera instrucción del código fuente, la traduce a código objeto y la ejecuta; a continuación, hace lo mismo con la segunda instrucción; y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún error que detenga el proceso.

6. Características de un interprete Son más fáciles de aprender que los lenguajes compilados. Son sencillos de implementar y alta flexibilidad en depurar. Facilita la búsqueda de errores. El programa se puede ejecutar de inmediato, sin esperar a ser compilado. Puede ser interrumpido con facilidad. Puede ser rápidamente modificado y ejecutado nuevamente. Suelen ser más lentos.

7. Estructura de un compilador Análisis Léxico Gestíon de errores Tabla de símbolos Análisis Sintáctico Análisis Semántico Generación de Código Intermedio Optimización de Código intermedio Generación y Optimización de código final

8. Estructura de un compilador Análisis sintáctico • Comprueba los valores unitarios del programa (tokens): • Palabras reservadas(do, while, if, …) • Palabras no especificas(identificadores, constantes) • Formados por tipo y lexema Int contador Identificador = tipo “contador” = lexema

9. Estructura de un compilador Análisis Sintáctico • Recibe los tokens del analizador léxico y comprueba que están ordenados conforme a la gramática

10. Estructura de un compilador Análisis Semántico • Comprueba la validez del programa • Comprobación de tipos en operadores

11. Estructura de un compilador Generación de código intermedio • Codifica el lenguaje fuente en un lenguaje intermedio entre el lenguaje objeto • Permite la separación entre front-end y back-end • Utilización de código de 3 direcciones (A=B+C) • Instrucciones condicionales y saltos

12. Estructura de un compilador Optimización de código intermedio • Permite realizar mejoras en el código intermedio • Eliminación de saltos consecutivos • Factorizaciones • Eliminar código inútil • Optimización de bucles

13. Estructura de un compilador Generación de código objeto • Generar una secuencia de instrucciones en código ensamblador o máquina a partir del código intermedio • A=B+C • LOAD B • ADD C • STORE A

14. Estructura de un compilador Tabla de símbolos • Tabla donde se registran los identificadores, constantes, funciones y otros objetos especificados en el programa fuente • El compilador desarrolla funciones comunes de acceso a ella

15. Estructura de un compilador Manejo de errores • Mensajes de error que el compilador emite cuando encuentra una inconsistencia en cualquiera de las fases de compilación • Normalmente en una compilación no se muestran todos los errores producidos: • Ocultación de otros errores • Avalancha de errores • Se puede • Pararse al encontrar cualquier error • Intentar recuperar todos los errores de una pasada

16. Estructura de un compilador Análisis léxico Análisis sintáctico Análisis semantico Generación de código intermedio Fuente Código Intermedio Optimización de código intermedio Generación de código objeto Optimización de código objeto Código objeto BACK-END FRONT-END

17. Especificación de un compilador Especificación léxica: • Tokens mediante expresiones regulares Especificación sintáctica: • Gramáticas independientes del contexto Especificación semántica: • Lenguaje natural

18. /* Inclusión de archivos */ #include <stdio.h> Código en C /* Función principal */ int main (int argc,char **argv) { /* Impresión por pantalla y salida del programa*/ printf("Hola mundon"); return 0; }

19. A la hora de construir un intérprete es conveniente utilizar una Representación Interna (RI) del lenguaje fuente a analizar. De esta forma, la organización interna de la mayoría de los intérpretes se descompone en los módulos:

20. 1. : Toma como entrada el código del programa P en Lenguaje Fuente, lo analiza y lo transforma a la representación interna correspondiente a dicho programa P.

21. 2. La representación interna debe ser consistente con el programa original. Entre los tipos de representación interna, los árboles sintácticos son los más utilizados y, si las características del lenguaje lo permiten, pueden utilizarse estructuras de pila para una mayor eficiencia

22. 3. Durante el proceso de traducción, es conveniente ir creando una tabla con información relativa a los símbolos que aparecen. La información a almacenar en dicha tabla de símbolos depende de la complejidad del lenguaje fuente. Se pueden almacenar etiquetas para instrucciones de salto, información sobre identificadores (nombre, tipo, línea en la que aparecen, etc.) o cualquier otro tipo de información que se necesite en la etapa de evaluación.

23. 4 A partir de la Representación Interna anterior y de los datos de entrada, se llevan a cabo las acciones indicadas para obtener los resultados. Durante el proceso de evaluación es necesario contemplar la aparición de errores.

24. 5. Durante el proceso de evaluación pueden aparecer diversos errores como desbordamiento de la pila, divisiones por cero, etc. que el intérprete debe contemplar.

25. Python >>> i=5 >>> if i>4: ... print "Mayor" ... elif i==4: ... print "Igual" ... else: ... print "Menor" ... Mayor Nota: Programas escritos en lenguajes como C o Pascal prácticamente siempre se compilan, y otros como Perl o Python prácticamente siempre se interpretan.

26. Introducción a lenguajes scripting

27. Son lenguajes interpretados y pueden cumplir aspectos de cualquier paradigmas pueden acompañar un documento HTML o estar contenido en su interior. Las instrucciones del programa se ejecutan cuando se carga el documento, o cuando se produce alguna circunstancia tal como la activación de enlace por parte del usuario.

28. Estos lenguajes no necesitan ser compilados, una maquina es capaz de interpretar el código fuente y ejecutarlo, lo que hace de los lenguajes script la mejor solución para programación en entornos web

29. Ejemplos: Awk Phyton Perl Shell etc Todos los lenguajes tienen sus pros y sus contras por lo que no hay ninguno que sea mejor que el resto.

30. El nombre del lenguaje proviene de la afición de su creador por los humoristas británicos Monty Python Python permite dividir el programa en módulos reutilizables desde otros programas Python. También viene con una gran colección de módulos estándar que proporcionan E/S de ficheros, llamadas al sistema, sockets, interfaces GUI, etc. Se trata de un lenguaje interpretado, lo que permite ahorrar el proceso de compilado.

31.  Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.  Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.  Python fue creado a finales de los ochenta por Guido van Rossumen el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informática), en los Países Bajos como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.

32. Características generales de Python

33. - Lenguaje de programación de alto nivel del tipo scripting. - Diseñado para ser fácil de leer y simple de implementar. - Es código abierto (de libre uso). - Puede ejecutarse en Mac, Windows y sistemas Unix; también ha sido portado a máquinas virtual JAVA y .NET. - Es a menudo usado para desarrollar aplicaciones web y contenido web dinámico. - Se utiliza para crear extensiones tipo plug-ins para programas de 2d y 3d como Autodesk Maya, Inkscape, etc. - Los scripts de Python tienen la extensión de archivo .PY, que pueden ser parseados y ejecutados inmediatamente. - Permite grabar programas compilados con extensión de archivo .PYC, los cuales suelen ser usados como módulo que pueden ser referenciados por otros programas Python.

34. Qué es PERL Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script. Es un lenguaje interpretado que tiene varias utilidades, pero está principalmente orientado a la busqueda, extracción y formateado de ficheros de tipo texto. También es muy usado para manejo y gestión de procesos (estado de procesos, conteo y extracción de parámetros característicos, etc...). Es una combinación de las características de los lenguajes más usados por los programadores de sistemas, como son los shell del sistema operativo UNIX, los utilidad ( que incluye un lenguaje interpretado propio) awk para formateo y tratamiento de texto e incluso caracteristicas de Pascal, aunque su potencia se basa en la similitud con las mejores características del lenguaje estructurado C.

35. Algunas de las ventajas del uso del lenguaje PERL son las siguientes: oConstrucción de pequeños programas que pueden ser usados como filtros para obtener información de ficheros, realizar busquedas, ... oSe puede utilizar en varios entornos, como puede ser Windows 95, OS/2, ..., sin realizar cambios de código, siendo unicamente necesario la introducción del interprete PERL correspondiente a cada sistema operativo. oTambién es uno de los lenguajes mas utilizados en la programación de CGI scripts, que son guiones o scripts que utilizan el interface CGI (Common Gateway Interface), para intercambio de información entre aplicaciones externas y servicios de información. Como ejemplo de ello tenemos los programas de búsqueda usados por el browser Netscape. oEl mantenimiento y depuración de un programa en PERL es mucho más sencillo que la de cualquier programa en C.

36. Una Shell de Unix o también shell, es el término usado en informática para referirse a un intérprete de comandos, el cual consiste en la interfaz de usuario tradicional de los sistemas operativos basados en Unix y similares como GNU/Linux. Mediante las instrucciones que aporta el intérprete, el usuario puede comunicarse con el núcleo y por extensión, ejecutar dichas órdenes, así como herramientas que le permiten controlar el funcionamiento de la computadora. Los comandos que aportan los intérpretes, pueden usarse a modo de guion si se escriben en ficheros ejecutables denominados shell-scripts, de este modo, cuando el usuario necesita hacer uso de varios comandos o combinados de comandos con herramientas, escribe en un fichero de texto marcado como ejecutable, las operaciones que posteriormente, línea por línea, el intérprete traducirá al núcleo para que las realice.

37. En el sentido más genérico del término, shell significa cualquier intérprete que los usuarios usen para escribir comandos. Su etimología proviene del uso natural de consolas en computadores funcionando bajo unix antaño, cuando los usuarios conectaban al computador central, lo hacían mediante consolas, (shells) por las cuales a través de un intérprete, hacían inicio de sesión y manejaban la computadora principal. Posteriormente, con la proliferación de los computadores personales y su filosofía monousuario, un computador por usuario (entiéndase lo contrario de la filosofía inicial de Unix, un computador, muchos usuarios conectados por terminales), se desarrolló un software que emulase las características principales de las consolas físicas, a modo de poder seguir usándolas como clientes en un computador o núcleo que comprendiera la convención estándar usada para configurar y llevar a cabo tareas de administración de emergencia con servidores basados en Unix.

38. Preguntas?

39. Haber si entendieron. ¿Qué es un interprete en programación? Es un programa informático capaz de analizar y ejecutar otros programas en un lenguaje de alto nivel Menciona 3 características de los interpretes. • Son mas fáciles de aprender • Facilita búsqueda de errores • Puede ser interrumpido con facilidad ¿Qué es un compilador? Es un programa que convierte o traduce el código fuente a un programa hecho de alto nivel

40. Menciona 3 características de un compilador • Traduce todo un programa antes de ejecutarlo • informa al usuario de la presencia de errores en el Programa fuente • Poseen un editor integrado con un sistema de coloreado para los comandos. ¿Qué es un lenguaje scripting? Son lenguajes interpretados Es un lenguaje de programación cuya filosofía hace hincapié en una sintaxis Python

41. Menciona 3 características de Python • Es de código abierto • Lenguaje de programación de alto nivel • Se usa para desarrollar aplicaciones web y contenido web dinámico Lenguaje interpretado que tiene varias utilidades, pero eesta principalmente orientado a búsquedas PERL Menciona una ventaja del Lenguaje PERL Construcción de pequeños programas que pueden ser usados como filtros para obtener información de ficheros Lenguaje de programación que significa "cualquier interprete que los usuarios usen para escribir comandos" SHELL

Add a comment

Related pages

Lenguajes de programacion tema 2_compiladores e interpretes

Compiladores e interpretes ... 1. Un compilador es un programa queconvierte o traduce el código fuente deun programa hecho en lenguaje de altonivel, a ...
Read more

Tema 3 - Lenguajes de programación

Tema 3 Objetivos Mostrar la necesidad de los lenguajes de programación. ... Lenguajes de programación. 2. Compiladores e intérpretes. 3.
Read more

Traductores, Compiladores e Intérpretes 1 Tema 3 ...

Tema 3. Análisis Sintáctico. ... pero no sus lenguajes respectivos que coinciden en sus conjuntos. El metacompilador YACC utiliza el análisis LALR(1).
Read more

Tema 6 - Compiladores e Interpretes - Documents

Tema 6: Compiladores e ... Share Tema 6 - Compiladores e Interpretes. ... Lenguajes de programacion tema 2_compiladores e interpretes
Read more

IF1B: 3.2.2. Compiladores, traductores e intérpretes.

Tema 3; 3.2.2. Compiladores, traductores e intérpretes. Informatica I Seccion B. 3.2.2. ... Los lenguajes objeto son igualmente variados; ...
Read more

Compiladores e Intérpretes - Ricardo Ortega

Comprende un estudio de los lenguajes de programación, ... Tema Subtema Horas Minutos Semanas; I: INTRODUCCIÓN: 1.1 Breve Historia: 6: 330: 1.00; 1.2 ...
Read more

Traductores, Compiladores e Intérpretes - Traductores ...

Los traductores son programas que traducen los programas en código fuente, escritos en lenguajes de alto nivel, ... Temas Para Exponer. shynjiz.
Read more