Introducción A Compiladores

10
INTRODUCCIÓN COMPILADORES

Transcript of Introducción A Compiladores

Page 1: Introducción A Compiladores

INTRODUCCIÓN COMPILADORES

Page 2: Introducción A Compiladores

¿QUÉ ES UN LENGUAJE DE

PROGRAMACIÓN?

Un lenguaje de programación puede definirse como: “Notación formal para describir

algoritmos o funciones que serán ejecutados por una computadora”, o bien, un lenguaje para

comunicar instrucciones a la computadora.

Los lenguajes de programación según su grado de independencia de la máquina pueden

ser:

Lenguaje máquina (representación binaria o hexadecimal.).

Lenguaje ensamblador o de bajo nivel (versión simbólica de un lenguaje máquina).

Lenguaje de medio nivel (lenguaje C).

Lenguaje de alto nivel (FORTRAN, COBOL, Pascal).

Page 3: Introducción A Compiladores

PROCESADORES DE LENGUAJES

Traductor: Un traductor es un programa que procesa un texto fuente y genera un texto

objeto o lenguaje objeto (p. e.: lenguaje máquina, ensamblador, alto nivel).

Compiladores: Un traductor que transforma textos fuente de lenguajes de alto nivel a

lenguajes de bajo nivel se le denomina compilador.

El tiempo que se necesita para traducir un lenguaje de alto nivel a lenguaje objeto se

denomina tiempo de compilación.

El tiempo que tarda en ejecutarse un programa objeto se denomina tiempo de

ejecución

Intérpretes: Los intérpretes son programas que simplemente ejecutan las instrucciones que

encuentran en el texto fuente. En muchos casos coexisten en memoria el programa fuente y

el programa intérprete.

Page 4: Introducción A Compiladores

OTROS CONCEPTOS…

Programación de Sistemas: Conjunto de reglas para crear soluciones a problemas

computables. Conjunto de herramientas que nos permiten crear software de base que son de

utilidad para interactuar con la máquina.

Software de Base: Compilador, Querys, Sistema Operativo, Cargador.

Autómata: Son las cadenas posibles que aceptan un lenguaje.

Expresiones Regulares: Conjunto de símbolos que aceptan una palabra reservada.

Gramática: Reglas para escribir las sentencias del lenguaje.

Page 5: Introducción A Compiladores

COMPOSICIÓN DE UNG PROGRAMA

Page 6: Introducción A Compiladores

ESTRUCTURA DE UN COMPILADOR

Page 7: Introducción A Compiladores

¿Qué es lo que hacen los componentes de un compilador en sus fases, cuando tiene

que analizar la siguiente preposición?

Preposición: Suma= var1+var2+10

Análisis Léxico: El analizador léxico lee los caracteres del programa fuente, y verifica que

correspondan a una secuencia lógica (identificador, palabra reservada etc.). Esta secuencia

de caracteres recibe el nombre componente léxico o lexema. En este caso el analizador

léxico verifica si el identificador id1 (nombre interno para "suma") encontrado se halla en la

tabla de símbolos, si no esta produce un error porque todavía no fue declarado, si la

preposición hubiese sido la declaración del identificador "suma" en lenguajes C, C++ (int

suma;) el analizador léxico agregaría un identificador en la tabla de símbolos, y así

sucesivamente con todos los componentes léxicos que aparezcan.

id1= id2+ id3 * 10

Page 8: Introducción A Compiladores

¿Qué es lo que hacen los componentes de un compilador en sus fases, cuando tiene

que analizar la siguiente preposición?

Preposición: Suma= var1+var2+10

Análisis Sintáctico: El analizador sintáctico impone una estructura jerárquica a la cadena de

componentes léxicos, generada por el analizador léxico, que es representada en forma de un

árbol Sintáctico.

Análisis Semántico: El analizador semántico verificara en este caso que cada operador

tenga los operandos permitidos.

Page 9: Introducción A Compiladores

¿Qué es lo que hacen los componentes de un compilador en sus fases, cuando tiene

que analizar la siguiente preposición?

Preposición: Suma= var1+var2+10

Generador de Código Intermedio: Esta etapa se lleva la preposición a una representación

intermedia como un programa para una maquina abstracta.

Optimización de Código: El código intermedio obtenido es representado de una forma más

óptima y eficiente.

Page 10: Introducción A Compiladores

GRACIAS

Si una persona es perseverante, aunque sea dura deentendimiento, se hará inteligente; y aunque sea débil setransformará en fuerte."(Leonardo Da Vinci)