Sei sulla pagina 1di 5

Taller 1: Compiladores Desarrollo: 1. En qu otras disciplinas tiene sus races la teora de autmatas y lenguajes formales?

R// Se podra decir que los autmatas tiene sus races en otras disciplinas como la matemtica y la lgica adems del desarrollo de la computacin y el modelado de sistemas ya que son de estas reas donde se hace necesario crear modelos matemticos que permitan describir o simular procesos para el tratamiento de la informacin. Los lenguajes formales tiene su origen en ciencias como la computacin debido a la creacin de lenguajes de alto nivel se hacen necesarias reglas sintcticas y semnticas rgidas que este bien definidas recordando su gran relacin con los autmatas ya que cada lenguaje formal, le corresponde un tipo de maquina abstracta capaz de reconocer la descripcin de un lenguaje. 2. Explica la utilidad de un preprocesador: R// La utilidad de un preprocesador radica en la ayuda que le presta al propio compilador antes de que este ejecute su funcin. El preprocesador se encargara de la eliminacin de comentarios, incluir archivos de encabezamiento de texto entre otras funciones que le quitan carga de trabajo al compilador cuando este realiza su proceso. El compilador recibe un texto enriquecido que le permitir realizar con mayor rapidez la compilacin. 3. En que se diferencias los lenguajes ensambladores de los autocodes: El lenguaje ensamblador, es un lenguaje de bajo nivel orientado a una programacin de cercana a la maquina lo que permite un uso correcto de recursos como la memoria y el procesador. Sin embargo se presentan casos donde se necesitan programar dispositivos con limitaciones considerables en sus recursos y es ah donde ente el autocodes el cuales mucho ms rpido que el lenguaje ensamblador adems de encontrarse en un punto intermedio en ensamblador y lenguajes de alto nivel como C. Otras caractersticas con las que cuanta autocodes es que sabe aprovechar mucho mejor los recursos ofrecidos por el dispositivo que no necesariamente tiene que ser una computadora 4. Explique la diferencia entre compilacin e interpretacin: La compilacin es un proceso donde el compilador recibe el cdigo fuente generalmente de alto nivel y lo traduce a cdigo mquina y tiene como salida un fichero ejecutable. Los intrpretes, leen el cdigo fuente, lo reconoce y ejecuta esa instruccin sin un resultado fsico si no lgico, una ejecucin lo que permite una fcil depuracin. 5. En qu consiste el proceso de compilacin cruzada:

La complicacin cruzada es el proceso por el cual se generan cdigos ejecutables para una arquitectura distinta a la que estamos utilizando para compilar. Esto permite por ejemplo construir un SO para una nueva computadora aun cuando esta no disponga de un compilador. Tambin es muy utilizado en sistemas empotrados. 6. Seleccione un compilador conocido que venga empacado con un ambiente de desarrollo, y haga una lista de todos los programas acompaantes que se encuentran disponibles con el compilador junto con una breve descripcin de sus funciones. R// Para el desarrollo de este punto me baso en la IDE DEV C++ la cual cuenta con las siguientes partes relacionadas con el compilador: Compilador MinGW: es una implementacin de los compiladores GCC para la plataforma de Windows de 32 bits. Este es capaz de compilar lenguajes de alto nivel como los lenguajes C y C++ Depurador GDB: s el depurador estndar para el compilador GNU. Es un depurador portable que se puede utilizar en varias plataformas Unix y funciona para varios lenguajes de programacin como C, C++ y Fortran. GDB ofrece la posibilidad de trazar y modificar la ejecucin de un programa. El usuario puede controlar y alterar los valores de las variables internas del programa. Preprocesador: Es el primer programa invocado por el compilador y procesa directivas como #include, #define y #if. Enlazador: este es llamado por el compilador MinGW y se encarga de las referencias cruzadas, es decir la utilizacin por parte del programa de objetos externos.

Otro componente es el editor el cual se encarga de procesar el texto plano de cdigo y resaltar palabras reservadas e identificadores. 7. Indique los lexemas de la siguiente expresin y como quedara estructurada la tabla de smbolos

A [i+1] = a[i] + 2 R// A [ i + 1 ] = a [ i ] + 2

ID < [> ID <+> NUM <]> ASIG ID < [> ID <]> <+> NUM Lexemas: A, [, I, +,], =, a, 2.

Tabla de smbolos: A a i array array Integer

No se puede dar una tabal ms detallada alno conocer posiciones memoria y menos longitud de los array. 8. Los errores de compilacin pueden dividirse aproximadamente en dos categoras: errores sintcticos y errores semnticos. Los errores sintcticos incluyen tokens olvidados o manera incorrecta, tal como el parntesis derecho olvidado en la expresin aritmtica (2+3. Los errores semnticos incluyen tipos incorrectos en expresiones y variables no declaradas (en la mayora de los lenguajes), tal como la asignacin x:= 2, donde x es una variable de tipo arreglo. Proporcione dos ejemplos ms de errores de cada clase en un lenguaje de su eleccin.

Ejemplos de errores sintcticos son: 1. Int x Falta del punto y como caracterstico del lenguaje c 2. For (i=0; i<10, i++) {} el lexema coma tiene un uso correcto en el ciclo for. Ejemplos de errores semnticos son: 1. Int x; x=2.4; Error de conversin de doble a entero 2. X++; donde X no ha sido declarado Seleccione un compilador con el que est familiarizado y determine si se enumeran todos los errores sintcticos antes de los errores semnticos o si los errores de sintaxis y de semntica estn entremezclados. Cmo influye esto en el nmero de pasadas?

En el caso del compilador MinGW este muestra dos tipos errores intercalados segn su orden de aparicin en el cdigo. Esto ocasiona que el compilador haga una sola pasada revisando el cdigo fuente por lo cual pienso que es ms eficiente si hace una pasada por todo el cdigo segn cada tipo de error.

9. Cree una aplicacin de ejemplo en Java y utilice la herramienta JProfiler (Perfilador) para monitorear el trabajo de la CPU, la memoria y otras caractersticas. Muestre los resultados. De acuerdo con el perfilador incluido en la IDE Netbeans se tiene los siguientes resultados de la ejecucin de un programa en JAVA:

Imagen1: Hilos del proceso de ejecucin.

Imagen2: Uso del procesador

Imagen3: Uso dela memoria

10. Realice una lista de lenguajes intrpretes y de lenguajes compilados. Compilados Fortran Ada Algol C C++ Objective C Delphi Interpretados ASP JavaScript Lips Perl PHPProlog Phyton Prolog Ruby VBScript

Potrebbero piacerti anche