Compiladores
Compiladores
Compiladores
Investigación I
ALUMNOS:
Luis Arturo Hernandez Ruiz
Manuel Alejandro Gomez
Jazmin del Rosario de la Cruz Osorio
Raymundo Rafael Verra García
Cunduacán, Tabasco
05/07/2023
Contenido
¿Qué es un compilador?..................................................................................................3
¿Qué es un intérprete?....................................................................................................3
Estructura general de un compilador...............................................................................3
Clasificación de compiladores:........................................................................................5
Cadena............................................................................................................................ 6
Alfabetos.......................................................................................................................... 6
Lenguaje:......................................................................................................................... 7
¿Qué es un compilador?
Un compilador es un software que traduce programas escritos en lenguajes de
programación de alto nivel a lenguaje de máquina. Un intérprete, por otro lado,
ejecuta programas fuente sin generar código de máquina directamente. Los
compiladores generan código eficiente y compacto, mientras que los intérpretes
procesan y ejecutan declaraciones de programas en tiempo real. Ambos están
escritos en lenguajes de programación de alto nivel y se traducen a código de
máquina.
¿Qué es un intérprete?
Un intérprete lee y ejecuta un programa fuente escrito en un lenguaje de
programación de alto nivel, junto con los datos correspondientes, para producir
resultados. Un ejemplo de esto es el intérprete de shell de Unix, que ejecuta
comandos del sistema operativo de forma interactiva.
Es importante tener en cuenta que tanto los intérpretes como los compiladores se
escriben en un lenguaje de programación de alto nivel (que puede ser diferente del
lenguaje que interpretan) y se traducen a código máquina.
Por ejemplo, un intérprete de Java puede estar completamente escrito en C o
incluso en Java. El programa fuente del intérprete no depende de la máquina en la
que se ejecute, ya que no genera código máquina directamente.
Un intérprete suele ser más lento que un compilador porque procesa e interpreta
cada declaración de un programa tantas veces como sea necesario. Por ejemplo,
al interpretar un bucle for, las declaraciones dentro del cuerpo del bucle se
analizarán y evaluarán en cada iteración del bucle. Algunos lenguajes, como Java
y Lisp, vienen con un intérprete y un compilador. Los programas fuente de Java
(clases Java con extensión .java) se traducen mediante el compilador javac en
archivos de código de bytes (con extensión .class).
El intérprete de Java, llamado Java Virtual Machine (JVM), puede interpretar
directamente los códigos de bytes o compilarlos internamente en código máquina
y luego ejecutar ese código.
Cadena
En el contexto de los compiladores, una cadena se refiere a una secuencia de
caracteres que forma parte del programa fuente. Una cadena puede consistir en
letras, dígitos, símbolos y otros caracteres, y se utiliza para representar valores de
texto en el código fuente.
Alfabetos
En el contexto de los compiladores, un alfabeto se refiere a un conjunto finito de
símbolos que se utilizan para construir las palabras o tokens de un lenguaje de
programación. Estos símbolos pueden ser caracteres individuales, como letras,
dígitos y otros caracteres especiales.
Lenguaje:
En el contexto de los compiladores, un lenguaje se refiere a un conjunto de reglas
y estructuras que definen cómo se deben escribir y organizar las instrucciones y
expresiones en un programa de computadora. Un lenguaje de programación es un
lenguaje formal diseñado para expresar algoritmos y procesos de manera que
puedan ser entendidos por una computadora.
Existen diferentes lenguajes de programación, cada uno con su propia sintaxis y
semántica. Algunos ejemplos de lenguajes de programación populares son C/C++,
Java, Python, JavaScript, entre otros.
El lenguaje de programación proporciona un conjunto de palabras clave, símbolos
y estructuras de programación que permiten al programador escribir instrucciones
que serán interpretadas o compiladas para que la computadora las ejecute.
En el contexto de los compiladores, el lenguaje de programación es el lenguaje en
el que se escribe el programa fuente que será procesado por el compilador. El
compilador se encarga de analizar y traducir ese programa fuente escrito en un
lenguaje de alto nivel a un programa ejecutable en lenguaje de máquina, que la
computadora puede entender y ejecutar. El compilador se asegura de que el
programa fuente cumpla con la sintaxis y las reglas del lenguaje de programación
específico durante el proceso de compilación.