Вы находитесь на странице: 1из 18

MTI EDUARDO VAZQUEZ ZAYAS

MTI EDUARDO VAZQUEZ ZAYAS

1.1 Alfabeto
Se llama alfabeto a un conjunto finito, no
vaco, cuyos elementos se denominan letras o
smbolos.
Se definen los alfabetos por la enumeracin de
los smbolos que contiene.
Ejemplos:
A1={a, b, c, d, e, f , g, ..., z}
A2={0,1}
A3={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
MTI EDUARDO VAZQUEZ ZAYAS

1.2 cadenas
Se denomina palabra o cadena a toda secuencia finita de
letras formada con los smbolos de un alfabeto.
Palabras sobre A1: jose, ana, rredf, abacza
Palabras sobre A2: 01, 110011,001111
Palabras sobre A3: 129,0,656,7890
Se usarn letras minsculas para representar las palabras
de un alfabeto:
x = jose(sobre A1)
z = 123456(sobre A3)
Longitud de una palabra: nmero de smbolos (letras)
que la componen:
|x|=4
|z|=6
Se define la palabra vaca como aquella cuya longitud es
cero. Se representa mediante la letra
MTI EDUARDO VAZQUEZ ZAYAS

Forma de representar informacin basada en


un conjunto finito de signos o smbolos
Conjunto de cadenas que incluyen smbolos
de un alfabeto

MTI EDUARDO VAZQUEZ ZAYAS

Lenguaje Formal: lenguajes de programacin,


lenguajes matemticos: algebra y lgica de
proposiciones.

Lenguaje natural: ingles, espaol, alemn,


etc.

MTI EDUARDO VAZQUEZ ZAYAS

Generadores de analizadores lxicos.-esta


herramientas
generan
automticamente
analizadores lxicos, por lo general a partir de
una especificacin basada en expresiones
regulares.
LEX, FLEX, JAVACC

MTI EDUARDO VAZQUEZ ZAYAS

Generadores de analizadores sintcticos.- estos


generadores producen analizadores sintcticos,
normalmente a partir de una entrada
fundamental en una gramtica independiente
del contexto, y utilizan poderosos algoritmos
de anlisis sintctico.
YACC, JAVACC, BISON

MTI EDUARDO VAZQUEZ ZAYAS

Los traductores son programas que permiten pasar


de un programa fuente a un programa objeto.
Generalmente el lenguaje de entrada es de ms alto
nivel que el de salida. Ejemplos de traductores son
los ensambladores y los compiladores.

En los lenguajes de bajo nivel los programas que


permiten pasar de un programa fuente a un
programa objeto se llaman programas
ensambladores, mientras en los lenguajes de alto
nivel estos programas se denominan compiladores e
intrpretes
MTI EDUARDO VAZQUEZ ZAYAS

INTRPRETES
Un intrprete es un traductor que toma un
programa fuente, lo traduce a un programa objeto
instruccin por instruccin, al mismo tiempo que
ejecuta el programa.
COMPILADORES
Los Compiladores son programas que traducen
los programas fuentes a programas objetos.
El compilador traduce sentencia a sentencia cada
una de las instrucciones del programa fuente a
cdigo mquina y posteriormente ejecuta el
programa.

MTI EDUARDO VAZQUEZ ZAYAS

PROGRAMA
FUENTE

ANALIZADOR
LEXICO

ANALIZADOR
SINTACTICO

GENERADOR
DE
CDIGO

MTI EDUARDO VAZQUEZ ZAYAS

PROGRAMA
OBJETO

En el llamado anlisis lexicogrfico o lxico, el


compilador revisa y controla que las "palabras"
estn bien escritas y pertenezcan a algn tipo
de token (cadena) definido dentro del lenguaje,
como por ejemplo que sea algn tipo de
palabra reservada, o si es el nombre de una
variable que este escrita de acuerdo a las
pautas de definicin del lenguaje.

MTI EDUARDO VAZQUEZ ZAYAS

En esta etapa se crea la tabla de smbolos, la


cual contiene las variables y el tipo de dato al
que pertenece, las constantes literales, el
nombre de funciones y los argumentos que
reciben etc.
Ejemplo:
suma = var1 + var2 * 10;
id1= id2+ id3 * 10

MTI EDUARDO VAZQUEZ ZAYAS

En el anlisis sintctico como su nombre lo


indica se encarga de revisar que los tokens
estn ubicados y agrupados de acuerdo a la
definicin del lenguaje. Dicho de otra manera,
que los tokens pertenezcan a frases
gramaticales validas, que el compilador utiliza
para sintetizar la salida.

MTI EDUARDO VAZQUEZ ZAYAS

Por lo general las frases gramaticales son


representadas por estructuras jerrquicas, por
medio de rboles de anlisis sintctico. En esta
etapa se completa la tabla de smbolos con la
dimensin de los identificadores y los atributos
necesarios etc.
=
/ \
id1 +
/ \
id2 *
/ \
id3 tipo entero
10
MTI EDUARDO VAZQUEZ ZAYAS

Etapa de generacin de cdigo, se lleva el


cdigo intermedio final a cdigo maquina o
cdigo objeto, que por lo general consiste en
un cdigo maquina relocalizable o cdigo
ensamblador. Se selecciona las posiciones de
memoria para los datos (variables) y se
traduce cada una de las instrucciones
intermedias a una secuencia de instrucciones
de maquina puro.

MTI EDUARDO VAZQUEZ ZAYAS

temp1= tipo_ent(10)
temp2= id3 * temp1
temp3= id2 + tem2
id1= temp3

temp1= id3 * 10.0


id1= id2 + temp1

MTI EDUARDO VAZQUEZ ZAYAS

MTI EDUARDO VAZQUEZ ZAYAS

MTI EDUARDO VAZQUEZ ZAYAS

Вам также может понравиться