Sunteți pe pagina 1din 20

Lenguajes Formales y de Programacin

Estructura de los Traductores


Evander Flores (evanderex@gmail.com)

Contenidos
Objetivos Alcance Tema de la Presentacin Resumen Preguntas

Objetivos
Describir las fases de Anlisis Describir las fases de Sntesis Conceptos bsicos: Tabla de smbolos, Token, Lexema, Patrn Manejo de errores

Alcances
Anlisis Lxico
Token Lexema Patrn (Expresion Regular)

Anlisis Sintctico

Anlisis Semntico
Generacin de cdigo intermedio Optimizacin de cdigo Generacin de cdigo objeto

Estructura de los traductores


Estructura, fases y funcionamiento

Fase de Anlisis

Fase de Anlisis

Anlisis Lxico

scanner

Se toman los elementos del programa fuente, agrupando cada

uno de los caracteres para formar Tokens o componentes lxicos Primera fase de la parte de anlisis Recibe como entrada un flujo de datos y saca una lista de Tokens, y una lista de los errores lxicos encontrados.

Token
Un token o tambin llamado componente lxico es una cadena de

caracteres que tiene un significado coherente en cierto lenguaje de programacin. Ejemplos de tokens, podran ser: o Palabras reservadas (if, while, int, ...) o identificadores o nmeros o signos, etc. Son los elementos ms bsicos sobre los cuales se desarrolla toda traduccin de un programa, surgen en la primera fase, llamada anlisis lxico, sin embargo se siguen utilizando en las siguientes fases (anlisis sintctico y anlisis semntico) antes de perderse en la fase de sntesis.
8

Lexema
Un lexema es un conjunto de caracteres que concuerda con

el patrn de un Token especifico.

Id1=10;
Lexema de Identificador

Patrn(Expresion Regular)
Es una regla que describe el conjunto de lexemas que puede

representar a un conjunto lxico Los componentes lxicos se tratan como terminales de la gramtica del lenguaje fuente El patrn concuerda con una serie de cadenas

10

Anlisis Sintctico

Fase de Anlisis parsing

Con los Tokens se establece la estructura de las sentencias

del programa a travs de clases sintcticas. Construye un rbol sintctico a partir de unas reglas llamadas gramtica. Este anlisis puede ser ascendente o descendente.

11

Anlisis Semntico

Fase de Anlisis

En esta fase del anlisis se verifica el contexto en el que se encuentra cada sentencia sintctica, por lo general se realiza simultneamente con el anlisis sintctico, se verifican: Chequeo de unicidad y multiplicidad Comprobacin de tipos Alcance de variables

12

Fase de Sntesis

13

Fase de Sntesis

Generacin de Cdigo Intermedio


La generacin de cdigo intermedio permite generar cdigo que es portable e independiente de la mquina, ya que es entendible solamente por una mquina abstracta.

14

Fase de Sntesis

Optimizacin de Cdigo
La optimizacin de cdigo es la verificacin que se hace del cdigo ya generado para mejora la velocidad al momento de la ejecucin. Existen algunas reglas para optimizar: elimina la reescritura de cdigo eliminacin de cdigo inalcanzable optimizacin de temporales

15

Fase de Sntesis

Generacin de Cdigo
Traduce el cdigo intermedio a cdigo ensamblador,

cdigo de mquina o para el funcionamiento dentro de una pila. Cada una de las instrucciones pasa a ser instrucciones en cdigo de mquina donde se involucran posiciones reales de memoria por medio de los registros.

16

Tabla de Smbolos
Es una estructura de datos que usa el proceso de traduccin de

un lenguaje de programacin, por un compilador o un intrprete, donde cada smbolo en el cdigo fuente de un programa est asociado con informacin tal como la ubicacin, el tipo de datos y el mbito de cada variable, constante o procedimiento, etc. La tabla almacena la informacin que en cada momento se necesita sobre las variables del programa, informacin tal como: nombre, tipo, direccin de localizacin, tamao, etc. La gestin de la tabla de smbolos es muy importante, ya que consume gran parte del tiempo de compilacin La tabla de smbolos puede ser almacena en una tabla de hash, un rbol binario o cualquier otra estructura que permita hacer bsquedas rpidas.
17

Manejador de Errores
El manejador de errores permite establecer si el programa fuente posee algn error ya sea de tipo: lxico (caracteres no definidos), sintctico (estructura inadecuada) o semntico (contexto no apropiado)

18

RESUMEN
Un traductor es un programa que recibe un cdigo fuente y

lo traduce a otro cdigo. Estructura de los traductores


Fase de anlisis: Anlisis lxico, Anlisis sintctico y Anlisis

semntico Tabla de smbolos Manejador de errores Fase de sntesis: Generacin de cdigo intermedio, Optimizacin de cdigo, Generacin de cdigo.

19

PREGUNTAS
Qu realiza la fase de Anlisis lxico? En que fase se hace la comprobacin de tipos? Qu es un Token?

Qu almacena la tabla de smbolos?

20

S-ar putea să vă placă și