Está en la página 1de 2

Tarea 1

Compilador:
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de
programación a otro lenguaje de programación, generando un programa equivalente que la
máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero
también puede ser un código intermedio, o simplemente texto. Este proceso de traducción se
conoce como compilación.

Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje


de alto nivel, a otro lenguaje de nivel inferior. De esta manera un programador puede diseñar un
programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para
luego compilarlo a un programa más manejable por una computadora.

Interprete:
En ciencias de la computación, intérprete o interpretador es un programa informático capaz de
analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel

Diferencias Compilador e Interprete:


Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa
desde su descripción en un lenguaje de programación al código de máquina del sistema, los
intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por
instrucción, y normalmente no guardan el resultado de dicha traducción.

Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en
sistemas sumamente diferentes. Usando un compilador, un solo archivo fuente puede producir
resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de
traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos
de programación y de puración, y permiten ofrecer al programa interpretado un entorno no
dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete, lo que se
conoce comúnmente como máquina virtual.

Lenguajes de programación compilados:


1. C

2. C++

3. Go

Lenguajes de programación interpretados:


1. JavaScript

2. Python

3. Ruby

Análisis Léxico:
Es la primera fase de un compilador. El analizador de léxico lee el flujo de caracteres que
componen el programa fuente y los agrupa en secuencias significativas, conocidas como lexemas.
Para cada lexema, el analizador léxico produce como salida un token que pasa a la fase siguiente,
el análisis de la sintaxis. En el token, el primer componente nombre-token es un símbolo abstracto
que se utiliza durante el análisis sintáctico, y el segundo componente valor-atributo apunta a una
entrada en la tabla de símbolos para este token. La información de la entrada en la tabla de
símbolos se necesita para el análisis semántico y la generación de código.

Análisis Sintáctico:
La segunda fase del compilador es el análisis sintáctico o parsing. El parser utiliza los primeros
componentes de los tokens producidos por el analizador de léxico para crear una representación
intermedia en forma de árbol que describa la estructura gramatical del flujo de tokens. Una
representación típica es el árbol sintáctico, en el cual cada nodo interior representa una operación
y los hijos del nodo representan los argumentos de la operación.

Las fases siguientes del compilador utilizan la estructura gramatical para ayudar a analizar el
programa fuente y generar el programa destino.

Análisis Semántico:
El analizador semántico utiliza el árbol sintáctico y la información en la tabla de símbolos para
comprobar la consistencia semántica del programa fuente con la definición del lenguaje. También
recopila información sobre el tipo y la guarda, ya sea en el árbol sintáctico o en la tabla de
símbolos, para usarla más tarde durante la generación de código intermedio. Una parte
importante del análisis semántico es la comprobación de tipos, en donde el compilador verifica
que cada operador tenga operandos que coincidan.

También podría gustarte