Introducción A Compiladores
-
Upload
nestor-trana -
Category
Documents
-
view
2.562 -
download
0
Transcript of Introducción A Compiladores
INTRODUCCIÓN 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).
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.
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.
COMPOSICIÓN DE UNG PROGRAMA
ESTRUCTURA DE UN COMPILADOR
¿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
¿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.
¿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.
GRACIAS
Si una persona es perseverante, aunque sea dura deentendimiento, se hará inteligente; y aunque sea débil setransformará en fuerte."(Leonardo Da Vinci)