Está en la página 1de 6

Instituto Tecnológico Superior de Jerez

Jerez de García Salinas a 06 de febrero del 2019


Ricardo Benjamín Viramontes Juárez
benja120599@gmail.com
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.