Diferencia entre un traductor y un compilador.pdf

Instituto Tecnológico Superior de Jerez Jerez de García Salinas a 06 de febrero del 2019 Ricardo Benjamín Viramontes Ju

Views 348 Downloads 32 File size 217KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Instituto Tecnológico Superior de Jerez

Jerez de García Salinas a 06 de febrero del 2019 Ricardo Benjamín Viramontes Juárez [email protected] S17070162 INGENIERÍA EN SISTEMAS COMPUTACIONALES Lenguajes y Autómatas. 6to. SEMESTRE. Tema 1 Investigación Diferencia entre Traductor y Compilador. M.C.C. Vanessa Saldívar Quezada.

Diferencias entre un Traductor y un Compilador. ¿Qué es un traductor? Se define como un programa que puede traducir o convertir desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa equivalente escrito en un lenguaje destino lanzado, si es necesario, mensajes de error. Los traductores engloban tanto a los compiladores (en los que el lenguaje destino suele ser código máquina) como a los intérpretes (en los que el lenguaje destino está constituido por las acciones atómicas que puede ejecutar el intérprete). Generalmente el lenguaje de entrada es de más alto nivel que el lenguaje de salida. Algunos ejemplos de traductores son los compiladores y los intérpretes.

Estructura de un traductor. Un traductor divide su labor en dos etapas: una que analiza la entrada y genera estructuras intermedias y otra que sintetiza la salida a partir de dichas estructuras. Básicamente los objetivos de la etapa de análisis son: •

controlar la corrección del programa fuente.



generar las estructuras necesarias para comenzar la etapa de síntesis.

Para llevar esto a cabo, la etapa de análisis consta de las siguientes fases: •

Análisis lexicográfico. Divide el programa fuente en los componentes básicos del lenguaje a compilar. Cada componente básico es una subsecuencia de caracteres del programa fuente, y pertenece a una categoría gramatical: números, identificadores de usuario (variables,

constantes, tipos, nombres de procedimientos, ...), palabras reservadas, signos de puntuación, etc. •

Análisis sintáctico. Comprueba que la estructura de los componentes básicos sea correcta según las reglas gramaticales del lenguaje que se compila.



Análisis semántico. Comprueba que el programa fuente respeta las directrices del lenguaje que se compila (todo lo relacionado con el significado): chequeo de tipos, rangos de valores, existencia de variables, etc.

Cualquiera de estas tres fases puede emitir mensajes de error derivados de fallos cometidos por el programador en la redacción de los textos fuente. Mientras más errores controle un compilador, menos problemas dará un programa en tiempo de ejecución.

¿Qué es un compilador? Por otro lado, un compilador es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa.

Características Principales. •

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.

Ventajas •

Generan analizadores eficientes, incluso más que los que se pudiera hacer de manera manual.



Los analizadores ascendentes reconocen la mayor parte de los lenguajes

Desventajas •

Las acciones semánticas asociadas con las producciones de los no terminales de las gramáticas son difíciles de depurar



Mezcla las especificaciones sintácticas con las semánticas



Incrementos en la dificultad del trabajo de depuración de puesto que los errores que cometen el fichero de especificación con solo visibles en el analizador generado.

Diferencias. Una vez que se tiene claro que es un compilador y que es un traductor, es muy sencillo identificar sus cualidades, sus semejanzas y sus diferencias. Algunas de las diferencias más notables que hay entre un compilador y un traductor son: •

El compilador mezcla las especificaciones sintácticas con las semánticas mientras que el traductor las separa en tres fases y las analiza individualmente.



En el traductor, en cualquiera de sus tres fases puede emitir un error dependiendo del tipo mientras que en el compilador será un error general.



Un compilador traduce el programa, no lo ejecuta.



Si el lenguaje fuente es un lenguaje de alto nivel y el lenguaje objetivo es un lenguaje de bajo nivel o lenguaje máquina, el traductor es un compilador.



El traductor debe de realizar 3 análisis (lexicográfico, sintáctico y semántico) mientras que el compilador debe de realizar 2 análisis (léxico y sintáctico).

Referencias Bibliográficas. EcuRed.

(N.E.).

Compilador.

05-02-2020,

de

EcuRed

Sitio

web:

https://www.ecured.cu/Compilador Sergio Gálvez Rojas, Miguel Ángel Mora Mata. (2005). Java a tope. Dpto. de Lenguajes y Ciencias de la Computación: DEPÓSITO LEGAL: MA-185-2005.