Compiladores e intérpretes

Solo disponible en BuenasTareas
  • Páginas : 9 (2180 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de noviembre de 2010
Leer documento completo
Vista previa del texto
INGENIERIA EN SISTEMAS COMPUTACIONALES

Compiladores e intérpretes

Al igual que ocurre en el caso del lenguaje simbólico, los programas escritos en lenguajes de alto nivel no pueden ejecutarse directamente y deben traducirse al lenguaje de máquina. Para ello se emplean programas especiales, "traductores de lenguajes", más complejos que los ensambladores, de los que existen dos tiposdiferentes:  Compiladores.  Intérpretes.

Compilador.
Un compilador acepta programas escritos en un lenguaje de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede ejecutarse tantas veces como se quiera. En un compilador hay que distinguir tres lenguajes diferentes:  El de los programas de partida (LA)  El de los programas equivalentes traducidos(LB), normalmente el lenguaje de máquina  El lenguaje en que está escrito el propio compilador (LC), que puede ser igual o diferente a uno de los otros dos. Los programas interpretados suelen ser más lentos que los compilados, pero los intérpretes son más flexibles como entornos de programación y depuración. Comparando su actuación con la de un ser humano, un compilador equivale a un traductorprofesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.

Intérprete.
Parte fundamental de un sistema operativo encargada de ejecutar las órdenes básicas para el manejo del sistema. También se denomina shell. Suelen incorporancaracterísticas tales como control de procesos, redirección de entrada/salida y un lenguaje de órdenes para escribir programas por lotes o (scripts).

Los principales intérpretes de comandos son:      command.com: perteneciente a los sistemas MS-DOS y derivados como las sucesivas versiones de Microsoft Windows. ksh: El korn shell de UNIX. C Shell (csh): similar en sintáxis al lenguaje C.Bourne Shell GNU Bourne Again Shell (bash): variante del Bourne Shell clásico para Linux con características avanzadas como control de procesos, historial de ordenes y edición similar a Emacs entre otras. Tcsh: versión de C Shell para Linux con funcionalidades similares a bash. Zsh: pequeño intérprete similar al Bourne Shell.

 

Un archivo fuente es el que contiene el texto del código delprograma que ha sido escrito por el equipo de programadores. Las computadoras solamente pueden ejecutar instrucciones que estén en código máquina, así que los programas en código fuente no se pueden ejecutar directamente en la computadora. Un compilador debe, en primer lugar, convertir el archivo fuente en un archivo intermedio que se llama archivo objeto o archivo código objeto. El archivo objetocontiene una traducción del código del programa en lenguaje máquina, pero aún no se considera un programa ejecutable.

Una división común para describir los compiladores, como menciona Torben AEgidius Mogensen en [5], es como se describe enseguida, aunque el orden puede cambiar, algunas fases se pueden combinar o dividir en otras fases o aún otras fases se pueden insertar, pero en general, loscompiladores siguen estas tareas:

 Análisis léxico. Es la parte inicial de leer y analizar el código fuente. El texto es leído y dividido en tokens, cada uno de los cuales corresponde a un símbolo en el lenguaje de programación, por ejemplo, el nombre de una variable, una palabra reservada o un número.

 Análisis sintáctico. En esta fase se toma una lista de tokens producida por el análisisléxico y los acomoda en una estructura de árbol llamada árbol sintáctico que refleja la estructura del programa. Esta fase también se llama parsing.

 Verificación de tipos. En esta parte se analiza el árbol sintáctico para determinar si el programa viola ciertos requerimientos de consistencia, es decir, si una variable se utiliza pero no se declara, o si se usa en un contexto que no tiene...
tracking img