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

EXTRUCTURA DE UN COMPILADOR UN COMPILADOR SE DIVIDE EM DOS FASES:

UNA PARTE QUE ANALIZA LA ENTRADA Y GENERA ESTRUCTURAS INTERMEDIAS Y OTRA


PARTE QUE SINTETIZA LA SALIDA
ANALIZIS: LIXECOGRAFICO- SINTAXTICO-SEMANTICO
SINTESIS: GENERACION DE CODIGO INTERMEDIO- OPTIMIZACION DE CODIGO -
GENERACION DE CODIGO MAQUINA

COMPILADOR


FUENTE-----ANALIZIS------SINTETIZA------DESTINO


MENSAJE DE ERROR


bsicamente los objetivos de la fase de analizis son controlar la correccin del programa
fuente
generear estructuras necesarias para comenzar la sintesis
el analizis consta de las siguientes tareas
analizis lexicografico: divide el programa fuente en los componentes basicos : numeros ,
identificadores de usuarios ( variables, constantes,tipos, nombres de procedimientos. )
palabras reservadas signos de puntuacion
analizis sintaxtico : comprueba que la extructura de los componentes basiscos sea correcta
segun ciertas reglas gramaticales
analizis semantico: compurueba todo lo demas posible, es decir, todo lo relacionado con el
significado , chequeo de tipos , rango de valores,
existencia de variables etc.


el objetivo de la fase de sisntesis consiste en : construir el programa objeto deseado a partir
de las estructuras generadas por la fase de analizis. para ello realiza tres tareas
fundamentales la primera: generacion de codigo intermedio: genera un codigo
independiente de la maquina
generacion de codigo maquina: crea un fichero .exe direcatamente o un fichero .obj
fase de optimizacion: la optimizacion pede realizarse durante las fases de generas acciones
de codigo intermedio y/o generacion de codigo maquina

analizis del programa fuente :
se encarga de buscar los componentes lexicos o palabras segun las reglas o patrones
la entrada del analizador lexico podemos definirla como una secuencia de caracteres

secuencia de caracateres --------lexico_--------secuencia terminales
sintaxticos------arbol sintaxtico
usa una gramatica (n,t,p,s)

gramatica
N--- SMBOLO NO TERMINALES
T----SIMBOLO NO TERMINALES
P-----REGLAS DE PRODUCCIN
S---AXIMA INICIAL

Funciones del analizador lxico
El analizador lxico es la primera fase de un compilador. Su principal funcin consiste en leer
los caracteres de entrada y elaborar como salida una secuencia de componentes lxicos que
utiliza el analizador sintctico para hacer el anlisis. Esta interaccin suele aplicarse
convirtiendo al analizador lxico en una sub rutina o co rutina del analizador sintctico



Dame el siguiente componente lxico
Comprende texto
Programa fuente----analizador lxico toma el componente lxico--- analizador sintctico

Tabla de smbolo



EJEMPLO : SE CONSIDERA LA GRAMATICA QUE ERECONOCE LAS OPERACIONES ARIMETICAS
E-----E+T
I T
T----T*F
IF
F---ID
I NUM
I (E)

EN EL QUE: N=








E

E + E

E * E Id3

Id 1 id2

Ll 1 a este tipo de anlisis se le denomina ll (k).la primera L representa la forma de
exploracin de la sentencia : de izq. A derecha (L: LEF THO READE) LA SEGUNDA (L) POR LA
FORMA DE CONSTRUCCION DEL ARBOL(DESCENDENTE ) , UTILIZANDO LA DERIVACION DEL
NO TERMINAL MAS A LA IZQUIERDA, EN CADA PASO (L: lest most). El smbolo K representa la
cantidad de tokens o componentes lxicos de la sentencia que se tendrn en cuenta, para
que el analizador sepa, predictivamente, que regla aplicar. Generalmente k = 1

Una gramatica LL (1) DEBE CUMPLIR CON LAS SIGUIENTES CONDICIONES
DEBE SER UNA GRAMATICA LIMPIA
NO DEBE SER AMBIGUA
NO DEBE TENER RECURSIVIDADES POR IZQUIERDA EN SUS REGLAS

TOKENS: SIMBOLOS TERMINALES DE UNA GRAMATICA
IDENTIFICADORES: PALABRAS RESERVADAS, OPERADORES
VARIOS SIGNOS PUEDEN FORMAR EL MISMO TOKENS
ATRIBUTOS: INFORMACION ADICIONAL QUE TIENE EL TOKENS
DE UTILIDAD PARA EL ANALISIS SEMANTICO Y SINTAXTICO
COMPONENTES LEXICOS: ( TOKENS) :


UNIDAD MINIMA DE INFORMACION QUE SIGNIFICA ALGO A LA HORA DE COMPILAR
CONCEPTO DEM PALABRA LAS FASES DEL LENGUAJE CONSTAN DE CADENAS DE
COMPONENTES LEXICOS
LEXCEMA: UNA SECUENCIA DE CARACTERES DE ENTRADA QUE COMPRENDE UN SOLO
COMPONENTE LEXICO SE LLAMA LEXCEMA
CADENA DE CARACTERES QUE EXTRAE EL COMPONENTE ABSTRACTO DEL COMPONENTE
LEXICO
PATRON: DESCRIPCION DE LA FORMA QIE HAN DE TOMAR LOS LEXCEMAS PARA AJUSTARSE
A UN CONPONENTE LEXICO


TABLA DE SIMBOLOS
LA TABLA ALMACENA LA INFORMACIONQUE EN CADA MOMENTO SE NECESITA SOBRE LAS
VARIABLES DEL PROGRAMA , I.NFORMACION TAL COMO: NOMBRE, TIPO , DIRECCION DE
LOCALIZACION TAMAO , ETC
LA GESTION DE LA TABLA DE SIMBOLOS ES MUY IMPORTANTE YA QUE CONSUME GRAN
PARTE DEL TIEMPO DE COMPILACION , DE AH QUE SU EFICIENCIA SE CRITICA














ANALIZIS LEXICO
FUNCION DEL ANALIZADOR LEXICOS:
EL ANALIZADOR LEXICO ES LA PRIMERA FASE DE UN COMPILADOR. SU PRINCIPAL FUNCION
CONSISTE EN LEER LOS CARACTERES DE ENTRADA Y ELABORAR COMO SALIDA UNA
SECUENCIA DE COMPONENTEXS LEXICOS QUE UTILIZA EL ANALIZADOR SINTAXTICO PARA
HACER EL ANALISIS EL ANALIZADOR LEXICO RECONOCE LAS PALABRAS EN FUNCION DE UNA
GRAMATICA REGULAR DE MANERA QUE SUS SENTENCIAS SE CONVIERTEN EN LOS
ELEMENTOS DE ENTRADA DE FASES POSTERIORES

COMPONENTES LEXICOS, PATRONES Y LEXEMAS
LEXEMAS: REPRESENTAN CADENAS DE CARACTERES EN EL PROGRAMA FUENTE QUE SE
PUEDEN TRATAR JUNTOS COMO UNA UNIDAD LEXICA. UN LEXEMA ES UNA SECUENCIA DE
CARACTERES EN EL PROGRAMA FUENTE CON LA QUE CONCUERDA EL PATRON PARA UN
COMPONETE LEXICO
SE CONSIDERA COMPONENTES LEXICOS LAS SGTS. CONSTRUCCIONES: PALABRA CLAVE,
OPERADORES , IDENTIFICADORES, CONSTANTES,CADENAS LITERALES Y SIGNOS DE
PUNTUACION COMO PARENTESIS, COMA Y PUNTO, Y COMA.
PATRON
ES UNA REGLA QUE DESCRIBE EL CONJUNTO DE LEXEMAS QUE PUEDEN REPRESENTAR A UN
DETERMINADO COMPONENTE LEXICO DE LOS PROGRAMAS FUENTES
ATRIBUTOS DE LOS COMPONENTES LEXICOS
CUANDO CONCUERDA CON UN LEXEMA MAS DE UN PATRON, EL ANALIZADOR LEXICO DEBE
PROPORCIONAR INFORMACION ADICIONAL SOBRE EL EXCEMA CONCRETO QUE
CONCORDO CON LAS SGTS. FASES DEL COMPILADOR










<id, apuntador a la entrada de la atabla de smbolos para E>
< op-asig, >
<id, apuntador a la entrada de la tabla del smbolo para M>
<op-mult, >
<
Id,apuntadora la entrada de la tabla de smbolos dara C>
<op-exp, >
<num,valor entero 2>

ERRORES LXICOS
SON POCOS LOS ERRORES QUE SE PUEDEN DETECTAR SIMPLEMENTE EN EL NIVEL LXICO
PORQUE UN ANALIZADOR LXICO TIENE UNA MISIN MUY RESTRINGIDA DE UN PROGRAMA
FUENTE
MANEJO DE LOS BUFER DE ENTRADA
BUFER: AREA DEL ALMACENAMIENTO PRIMARIO DESTINADA A CONTENER DATOS
DURANTE TRANSFERENCIA DE ENTRADA SALIDA DURANTE LA ENTRADA LOS DATOS SON
CARGADOS EN EL BUFER AL TERMINAR LA TRANSFERENCIA YA SE PUEDE TRABAJAR CON
ELLOS
TCNICA DE PAREJA DE BUFER
EN LA TCNICA DE PAREJA DE BUFER SE UTILZA UN BUFER DIVIDIDO EN DOS MITADES DE N
CARACTERES CADA UNO DONDE: N= NUMERO DE EN UN BLOQUE DE DISCO
EOF= MARCA EL FINAL DEL ARCHIVO FUENTE
AL PRINCIPIO , LOS DOS APUNTADORES APUNTAN AL PRIMER CARCTER DEL PROXIMO
LEXEMA Y HAY QUE ENCONTRAR:
EL APUNTADOR DELANTERO EXAMINA HACIA DELANTE HASTA ENCONTRAR UNA
CONCORDANCIA CON UN PATRON . UNA VEZ DETERMINADO EL SIGUIENTE LEXEMA, EL
APUNTADOR DELANTERO SE COLOCA EN EL CARCTER DE SU EXTREMO DERECHO.
EL APUNTADOR DE LEXEMA SE QUEDA AL INICIO DEL LEXEMA Y LO PROCESA.


DESPUES DE HABER PROCESADO EL LEXEMA AMBOS APUNTADORES SE COLOCAN EN EL
CARCTER SITUADO INMEDIATAMENTE DESPUES DEL LEXEMA
DELANTERO

E= M *

C * * 2 EOF
COMIENZA LEXEMA

TECNICAS DE CENTINELAS
SI SE UTILIZA LA PAREJA DE BUFER, CADA VEZ QUE SE MUEVE EL APUNTADOR DELANTERO
SE DEBE COMPROBAR SI SE HA SALIDO DE UNA MITAD DEL BUFER SI ASI OCURRIERA SE
DEBERA CARGAR LA SEGUNDA MITAD ES DECIR , PARA HACER AVANZAR EL APUNTADOR SE
REALIZAN DOS PRUEBA SE PUEDEN REDUCIR ESTAS DOS PRUEBAS A UNA SI SE AMPLIA
CADA MITAD DEL BUFER PARA ADMITIR UN CARCTER CENTINELA ( CARCTER ESPECIAL
QUE NO PUEDE SER PARTE DEL PROGRAMA FUENTE EOF ) AL FINAL.
ESPECIFICACION Y RECONOCIMIENTO DE COMPONENTES LEXICOS
EXPRESIONES REGULARES: SON UNA NOTACION IMPORTANTE PARA ESPECIFICAR
PATRONES CADA PATRON CONCUERDA CON UNA SERIE DE CADENAS, DE MODO QUE LAS
EXPRESIONES REGULARES SERVIRAN COMO NOMBRES PARA CONJUNTO DE CADENAS
CADENAS Y LENGUAJE:
EL TERMINO ALFABETO A CLASE DE CARACTER DENOTA CUALQUIER CONJUNTO FINITO de
SMBOLOS EJEMPLOS TPICOS DE SMBOLOS SON LAS LETRAS Y LOS CARACTERES
UNA CADENA SOBRE ALGUN ALFABETO ES UNA SECUENCIA FINITA DE SIMBOLOS
TOMADOS DE ESE ALFABETO
EL TERMINO LENGUAJE SE REFIERE A CUALQUIER CONJUNTO DE CADENAS DE UN ALFABETO
FIJO
TRMINOS DE PARTE DE UNA CADENA
Prefijo de s: una cadena que se obtiene eliminando O o mas smbolos de la cadena ejemplo
band
Sufijo de s: una cadena que se forma suprimiendo O o mas smbolos desde la izquierda de
una cadena S ej: era


sub cadena de S: una cadena que se obtiene suprimiendo un prefijo y un sufijo de S ej:
ande
sub secuencia de S: cualquier cadena formada mediante la eliminacin de O o mas smbolos
no necesariamente contiguos a S Ej: bada

OPERACIONES APLICADAS AL LENGUAJE
HAY VARIAS OPERACIONES IMPORTANTES QUE SE PUEDEN APLICAR A LOS LENGUAJES PARA
EL ANALIZIS LEXICO, INTEREZAN PRINCIPALMENTE LA UNION, LA CONCATENACION Y LA
CERRADURA




OPERACION DEFINICION
- UNION DE L Y M QUE SE ESCRIBE
LUM
- CONCATENACION DE L Y M QUE
SE ESCRIBE LM
- CERRADURA DE KLEENE DE L,
QUE SE ESCRIBE L *
- CERRADURA POSITICA DE L, QUE
SE ESCRIBE L +
LUM= ( S/S ES EN L O S ESTA EN M)
LM= ( ST I ESTA EN L Y T ESTA EN M)
L* DENOTA * CERO O MAS
CONCATENACIONES DE L
L + DENOTA UNA O MAS
CONCATENACIONES DE L

SEA L EL CONJUNTO ( A,B,C,DZ.a,b,c,d,.z)
D el conjunto (0,1,2,.9)
1- LUD: ES EL CONJUNTO DE LETRAS Y DIGITOS
2- LD: ES EL CONJUNTO DE CADENAS DE CONSTA DE UNA LETRA SEGUIDA DE UN
DIGITO
3- L4: ES EL CONJUNTO DE TODAS LAS CADENAS DE CUATRO LETRAS
4- L* ES EL CONJUNTO DE TODAS LAS CADENAS DE LETRAS, INCLUYENDO LA CADENA
VACIA L
5- ( LUD)*/ ES EL CONJUNTO DE TODAS LAS CADENAS DE LETRAS D Y DIGITOS QUE
COMIENZAN CON UNA LETRA
6- D+ ES EL CONJUNTO DE TODAS LAS CADENAS O MAS DIGITOS




Sea A= (a,b) , determinar posibles cadenas para las sgts ER ( expresin regulares)
1- A I B = a,b
2- A I B = A I B = AA ,AB,BA,BB
3- A* = (E/,a,aa,aaa,aaaa,.)
4- A/B)*= (E,a,aa,aaa,aaaab,bb,bbb,bbbb,)
5- a/ a*b= ( a,b, ab ,aab aaab,

AUTMATAS FINITOS
UN AUTOMATA FINITO (A F ) O MAQUINA DE ESTADO FINITO ES UN MODELO
COMPUTACIONAL QUE REALIZA COMPUTOS EN FORMA AUTOMATICA SOBRE UNA
ENTRADA PARA PRODUCIR UNA SALIDA.
ESTE MODELO ESTA CONFORMADO POR UN ALFABETO UN CONJUNTO DE ESTADOS Y UN
CONJUNTO DE TRANSICIONES ENTRE DICHOS ESTADOS. SU FUNCIONAMIENTO SE BASA EN
UNA FUNCION DE TRANSICION, QUE RESIBE A PARTIR DE UN ESTADO INICIAL UNA CADENA
DE CARACTERES PERTENECIENTES AL ALFABETO (LA ENTRADA) , Y QUE VA LEYENDO DICHA
CADENA A MEDIDA QUE EL AUTOMATA SE DESPALAZA DE UN ESTADO A OTRO , PARA
FINALMENTE DETENERSE EN UN ESTADO FINAL O DE ACEPTACION QUE REPRESENTA LA
SALIDA

AUTMATAS FINITOS DETERMINISTA AFD
REPRESENTACION FORMAL
AFD (K,VT,M,S,Z)
K= ESTADOS
VT=SMBOLOS TERMINALES
M= FUNCIONES DE TRANCICION
S= ESTADO INICIAL
Z= ESTADO FINAL




< Z > ::= < U > 0 < V > 1 = A--- BU
< U >::= < Z > 1 I 1 = A---u
< V >::=< Z >0I 0 =Au
Definimos la gramtica
K= ( z,uv,s)
Vt=(0,1)
S=(s)
Z= (z)
DETERMINACIN DE LAS FUNCIONES DE TRANSICIN
REGLA 1 : PARA CADA REGLA DE LA GRAMTICA CON EL FORMATO EXISTE UNA
TRANSICIN CON EL NOMBRE ( U) DESDE EL ESTADO INICIAL HASTA EL ESTADO A
REGLA 2: PARA CADA REGLA DE LA GRAMTICA CON EL FORMATO A---BU EXISTE UNA
TRANSICIN CON EL NOMBRE DESDE EL ESTADO B AL ESTADO A
M: (S,0)= V
M: (S,1)= U
M: (U,0)= Z
M: (U,1)= FALLO
M: (V,0)= FALLO
M: (V,1)= Z
M: (Z,0)= V
M: (Z,1)= U








GRAFICAMOS EL DIAGRAMA DE ESTADO

























S
V
U
Z
FALLO


RECONOCIMIENTO PASO A PASO CON AFD
ENTRADA 101001

PASO ESTADO ACTUAL RESTO CADENA
1
2
3
4
5
6
7
S
U
Z
U
Z
V
Z
101001
01001
1001
001
01
1
0

SE INICIA EL RECONOCIMIENTO DEL ESTADO INICIAL S TOMANDO EL SIMBOLO + HACIA LA IZQUIERDA DE LA
CADENA DE ENTRADA , SE REPITE EL PASO 2 HASTA ALCANZAR EL FINAL DE LA CADENA DE ENTRADA .
SE EXPLORA EL SIGUIENTE CARCTER O SIMBOLO DE LA CADENA DE ENTRADA .AVANZAR POR UN ARCO
(SEGN EL DIAGRAMA DE ESTADO. )QUE LLEVE EL NOMBRE DEL SIMBOLO EXPLORADO CON LO QUE PASAMOS
DEL ESTADO ACTUAL AL SIGUIENTE ESTADO.SI EN CUALQUIER INTERACCION DEL PASO 2 NO HAY UN ARCO O
TRANSICION CON EL NOMBRE DEL SIMBOLO EXPLORADO, LA CADENA DE ENTRADA ES RECHAZADA Y SEPARA
EL ANALIZIS .SI LLEGAMOS AL FINAL DE LA CADENA DE ENTRADA ENTONCES ESTA ES UNA SENTENCIA
RECONOCIDA SI Y SOLO SI EL ULTIMO ESTADO ACTUAL ES UN ESTADO FINAL


AUTOMATA FINITO NO DETERMINISTICO (AFND)
CUANDO EXISTAN DOS O TRES REGLAS DEL TIPO ABu C---Cu un autmata es
determinstica finita, cuando existe solo una transicin
Es no determinstica cuando existe varias transiciones

REPRESENTACION FORMAL
AFND (K, VT, S, M, Z)
K=ESTADO
VT= SIMBOLOS TERMINALES
S=CONJUNTO DE ESTADO INICIAL
M=CONJUNTO DE ESTADO DE TRANSICION


Z=CONJUNTO DE ESTADOS FINALES


< Z > ::= < U > 1 I < V > 0 I < Z > 0 I < Z > 1 A----bu C----Cu
<U > ::= < Q> 1 I 1
<V > ::= < Q > 0I 0
<Q > ::= < Q > O KQ>1 I 0I1


Definimos la gramtica
K= (Z,U,V,Q,S)
VT= (0,1)
S= (S)
Z=(Z)















DETERMINACION DE LAS FUNCIONES DE TRANCICION
M(Z,0)= Z
M( Z,1)= Z
M(V,0)Z
M(V,1)= FALLO
M(U,O)=FALLO
M(U,1)= Z
M(Q,O)=Q,V
M(Q,1)=Q,U
M(S,O)= Q,V
M(A,1)=Q,U

ANALIZADORES SINTACTICOS
EL ANALIZIS SINTACTICO (PARSER)RESIDE EN LA CADENA DE TOKENS QUE LE ENVIA EL
ANALIZADOR LEXICO Y COMPRUEBA SI CON ELLOS SE PUEDE FORMAR ALGUNA SENTENCIA
VALIDA GENERADA POR LA GRAMATICA DEL LENGUAJE FUENTE .
LA SINTAXIS DE LOS LENGUAJES DE PROGRAMACION HABITUALMENTE SE DESCRIBE
MEDIANTE GRAMATICAS LIBRE DE CONTEXTO
FUNCIONES DEL ANALIZADOR SINTAZTICO
- COMPROBAR SI LA CADENA DE TOKENS PROPORCIONADA POR EL ANALIZADOR
LEXICO PUEDE SER GENERADA POR LA GRAMATICA QUE DEFINE EL LENGUAJE
FUENTE
- CONSTRUIR EL ARBOL DE ANALIZIS SINTACTICO QUE DEFINE LA ESTRUCTURA
GERARQUICA DE UN PROGRAMA Y OBTENER LA SERIE DE DERIVACIONES PARA
GENERAR LA CADENA DE TOKENS
- INFORMAR DE LOS ERRRES SINTACTICOS DE FORMA PRECISA Y SIGNIFICATIVA
DEBERA CONTENER UN MECANISMO DE RECUPERACION DE ERRORES PARA
CONTINUAR CON EL ANALISIS





GRAMATICA LIBRE DE CONTEXTO
(ELC)
UNA GRAMATICA DESCRIBE DE FORMA NATURAL LA ESTRUCTURA GERARQUICA DE
MUCHAS CONSTRUCCIONES DE LOS LENGUAJES DE PROGRAMACION LA GRAMATICA DE
LIBRE CONTEXTO PERMITEN DESCRIBIR LA MAYORIA DE LOS LENGUAJES DE
PROGRAMACION , DE HECHO ,LA SINTAXIS DE LA MAYORIA DEL LENGUAJE DE
PROGRAMACION ESTA DEFINIDA MEDIANTE GRAMATICA LIBRES DE CONTEXTO POR
OTRO LADO ESTAS GRAMATICAS SON SUFICIENTEMENTE SIMPLES COMO PARA
PERMITIR EL DISEO DE MANERA DE DEFICIENTES ALGORITMOS DE ANALIZIS
SINTACTICO QUE , PARA UNA CADENA DE CARACTERES DADA DETERMINE COMO
PUEDE SER GENERADA DESDE LA GRAMATICA .
CONSTA DE :
- TERMINALES : SIMBOLOS BASICOS CON QUE SE FORMAN LAS CADENAS . PARA UN
LENGUAJE DE PROGRAMACION, CADA PALABRA CLAVE /RESERVADA ES UN
TERMINAL
- NO TERMINALES : SON VARIABLES SINTACTICAS QUE DENOTAN CONJUNTOS DE
CADENAS (IDENTIFICADORES O VARIABLES) LOS NO TERMINALES DEFINEN
CONJUNTOS DE CADENAS QUE AYUDAN A DEFINIR EL LENGUAJE GENERADO POR LA
GRAMATICA . IMPONEN UNA ESTRUCTURA GERARQUICA SOBRE LENGUAJE QUE
UTIL TANTO PARA EL ANALIZIS SINTACTICO COMO PARA LA TRADUCCION
- UN SIMBOLO INICIAL: ES UNA GRAMATICA , ES UN NO TERMINAL QUE REPRESENTA
UN CONJUNTO DE CADENAS
- PRODUCCIONES : ESPECIFICA COMO SE PUEDEN COMBINAR LOS TERMINALES Y NO
TERMINALES PARA FORMAR CADENAS . CADA PRODUCCION CONSTA DE UN NO
TERMINAL (SIMBOLO INICIAL), SEGUIDO POR UNA FLECHA O SIMBOLO DE
ASIGNACION, SEGUIDA POR UNA CADENA DE NO TERMINALES Y TERMINALES
ARBOLES DE ANALIZIS SINTACTICO
- LOS NODOS CORRESPONDEN A SIMBOLOS NO TERMINALES
- LA HOJAS CORRESPONDEN A SIMBOLOS TERMINALES Y NO TERMINALES
- LA RAMIFICACION DESCRIBE UNA PRODUCCION P: A----aAb A-----nodo
RAMIFICACIONES---HOJAS b) Aa





DERIVACION DE ARBOLES SINTACICOS
- SUCECION DE ARBOLES DE ANALIZIS SINTACTICO
- EL PRIMER ARBOL REPRESENTA EL SIMBOLO INICIAL
- CADA ARBOL SE DIFERENCIA DE LA ANTERIOR EN LA EXPANSION DE UNA HOJA NO
TERMINAL POR MEDIO DE UNA PRODUCCION
- LAS HOJAS DDEL ARBOL FINAL SON TODAS SIMBOLOS TERMINALES
- LAS FORMAS SENTENCIALES SE OBTIENEN LEYENDO LAS HOJAS DE IZQUIERDA A
DERECHA



+


ID
ID ID

GRAMATICA
E---E+E
E---E*E
E----(E)
E---ID
SENTENCIA ID+ID*ID





E
E E
E
E



+


*

ID ID ID



AMBIGEDAD
UNA GRAMATICA ES AMBIGUA SI EXISTE ALGUNA CADENA A LA QUE SE PUEDE ASOCIAR
DOS ARBOLES DE ANALIZIS SINTACTICO DIFERENTE
LAS GRAMATICAS AMBIGUAS NO SON ADECUADAS PARA ESPESIFICAR LENGUAJES DE
PROGRAMACION, YA QUE ARBOLES SINTACTICOS DIFERENTES GENERAN UN CODIGO
DIFERENTE
DEMOSTRAR QUE UNA GRAMATICA NO ES AMBIGUA ES MUY DIFICIL
EXISTEN CONSTRUCCIONES GRAMATICALES QUE PRODUCEN AMBIGEDAD
SI SE USAN ESTAS CONSTRUCCIONES ES FACIL DEMOSTRAR QUE UNA GRAMATICA ES
AMBIGUA
RECURSIBIDAD
UNA GRAMATICA ES RECURSIVA SI APARTIR DE UN SIMBOLO NO TERMINAL SE PUEDE
OBTENER UNA FORMA SENTENCIAL QUE INCLUYA EL MISMO SOMBOLO NO TERMINAL
UNA GRAMATICA ES RECURSIVA ALA IZQUIERDA SI EN ALGUNA RECURSIVIDAD EL SIMBOLO
NO TERMINAL APARESE A LA IZQUIERDA DE LA FORMA SENTENCIAL
UNA GRAMATICA ES RECURSIVA A LA DERECHA SI EN ALGUNA RECURSIVADAD, EL SIMBOLO
NO TERMINAL APARESE A LA DERECHA DE LA FORMA SENTENCIAL
ANALIZIS SINTACTICO DESCENDENTE
E
E E
E
E


SE CONSIDERA UN INTENTO DE ENCONTRAR UNA DERIVACION POR LA IZQUIERDA PARA
U8NA CADENA DE ENTRADA TAMBIEN SE PUEDE CONSIDERAR COMO UN INTENTO DE
CONSTRUIR UN ARBOL DE ANALISIS SINTACTICO PARA LA ENTRADA COMENZANDO DESDE
LA RAIZ Y CREANDO NODOS DEL ARBOL EN ORDEN PREVIO



T E
+ T E
ID EI
ID

ANALISIS SINTACTICO ASCENDENTE
EL ANALIZIS SINTACTICO ASCENDENTE INTENTA CONSTRUIR UN ARBOL PARA LA
CADENA DE ENTRADA QUE COMIENZA POR LAS HOJAS (EL FONDO) Y AVANZA HACIA LA
RAIZ ( LA CIMA) . ESTE PROCESO REQUIERE LA EJECUCION DE LA OPERACIN DE
REDUCCION SECUENCIAL RECORDEMOS QUE UNA REDUCCION IMPLICA SUSTITUIR EN LA
PILA DE ANALISIS UN PIVOT O PARTE DERECHA DE UNA REGLA DE PRODUCCION POR SU
ANTECEDENTE O PARTE IZQUIERDA
REDUCIR : ES LA INVERSA DE LA DERIVACION SUSTITUIR EL CONSECUENTE DE UNA
PRODUCCION POR SU ANTECEDENTE
- DESPLAZAR: SE REFIERE A LA ACCION DE CARGAR ELEMENTOS DE LA ENTRADA QUE
SE ANALIZA A LA PILA AUXILIAR DEL ANALIZADOR
- PIVOT O MANDO: DE UNA CADENA ES UNA SUB CADENA QUE CONCUERDA CON EL
LADO DERECHO DE UNA PRODUCCION Y CUYA REDUCCION A NO TERMINAL DE
LADO IZQUIERDO DE LA PRODUCCION, REPRESENTA UN PASO A LO LARGO DE LA
INVERSA DE UNA DERIVACION POR LA DERECHA




E


ANALISIS SINTACTICO ASCENDENTE
P: E---E+E I E*E I(E) I ID
ANALISIS PARA LA SENTENCIA ID + ID * ID
PILA ENTRADA ACCION
$
$ ID
$ E
$ E +
$E + ID
$E + E
$ E
$ E *
ID+ID*ID$
+ ID *ID $
+ ID * ID$
ID*ID$
*ID $
*ID$
*ID$
ID $
DESPLAZAR
REDUCIR
DESPLAZAR
DESPLAZAR
REDUCIR
REDUCIR
DESPLAZAR
DESPLAZAR




















PILA ENTRADA ACCIN
$
$id
$ E
$E +
$ E + ID
$ E+E
$E+E*
$ E+E*ID
$E+E*E
$E+E
$E
ID+ID*ID
+ID*ID
+ID*ID
ID*ID
*ID
*ID
ID
$
$
$
$
DESPLAZAR
REDUCIR e= id
DESPLAZAR
DESPLAZAR
REDUCIR
DESPLAZAR
DESPALZAR
REDUCIR
REDUCIR
REDUCIR
ACEPTAR

ANALISIS SINTACTICO ASCENDENTE
E----E+E
E---E*E
E----( e )
eid
sentencia id + id*id














AUTMATA FINITO
< z> ::= < u > 0 I < V>1
< U>::= < z> 1 I 1
< V>::= < z>0 I O

1- DEFINIR LA GRAMATICA
2- DETERMINAR LA FUNCIONES DE TRANSICION
3- GRAFICAR SU DIAGRAMA DE ESTADO
4- RECONOCER LA ENTRADA 101001


DEFINIR LA GRAMATICA
K= (Z,U,V,S)
VT=(0,1)
S= (S)
Z= (Z)









S

DETERMINAR LA FUNCIONES DE TRANSICION
M (S , 0) =V
M (S , 1)= U
M (U , 0)=Z
M (U , 1)= FALLO
M (V,0)= FALLO
M (V,1)= Z
M (Z,0)=V
M (V,1)=U

GRAFICAR SU DIAGRAMA DE ESTADO














U
V Z
FALLO


RECONOCER LA ENTRADA 101001
PASO ENTRADA ACTUAL RESTO CADENA
1
2
3
4
5
6
7
S
U
Z
U
Z
V
Z
101001
01001
1001
001
01
1
EXIT



TEMA TRABAJA PRACTICO
AUTOMATA FINITO NO DETERMINISTA AFND
ENTREGA 11 JUNIO
GRUPO DE A 2
CARATULA CONCLUSION INTRODUCCION


Z---P1 I VOI V1
P---V O I 0
V Q 1 I 1
Q---V1 I 1


DEFINIR EL AFND
K= ( )
VT= ( )
S ( )


Z ( =

REALIZAR LA FUNCION DE TRANSICION
DIAGRAMAR LAS TRANSICIONES DE LOS ESTADOS RECONOCER LA CADENA 1110

PARTE TEORICA PARA EL EXAMEN
- QUE ES UN COMPILADOR
- FASES DEL COMPILADOR
- EN QUE CONSISTE EL ANALISIS LEXICO
- FUNCION PRINCIPAL DE ANALISIS LEXICO
- DEFINE LEXEMAS
- CITA CUATRO COMPONENTES LEXICOS
- DEFINA QUE ES UN PATRON
- EN QUE CONSISTE EL ANALISIS SINTACTICO
- FUNCIONES DEL ANALIZADOR SINTACTICO
- DEFINE LA GRAMATICA LIBRE DE CONTEXTO
- DEFINIR EL TIPO DE GRAMATICA QUE ACEPTA UN ANALIZADOR SINTACTICO
- EJ: GRAMATICA G (NT,T,P,S) NT= NO TERMINAL T= TERMINALES P= REGLAS DE
PRODUCCION S= SIMBOLO INICAL
- CUALES SON LOS TIPOS DE DERIVACIONES DERIVA. IZQ-- DERIVACION DERECHA