Sie sind auf Seite 1von 16

SSL

Muchnik

6 EJERCICIOS RESUELTOS
(Agradezco la colaboracin de la Prof. Ana Daz Bott) CAP. 1: INTRODUCCIN A AFs Y APLICACIONES * Ejercicio 1 * (pg.7)
(a) SI (b) NO (a) SI (b) SI

* Ejercicio 2 * (pg.7)

* Ejercicio 3 * (pg.10)
(a) T 01+ 2 3+ a 1 3 b 2 -

(b) palabra aba: 0- => a => 1 => b => 2 => a => 3+ RECONOCE palabra a: 0- => a => 1+ RECONOCE cadena abab: 0- => a => 1 => b => 2 => a => 3 => b => ?? RECHAZA (no puede continuar) cadena baa: 0- => b => ?? RECHAZA (no puede continuar) cadena vaca: 0- => => ?? RECHAZA (el estado inicial no es final) cadena ab: 0- => a => 1 => b => 2 RECHAZA (el estado 2 no es final)

* Ejercicio 4 * (pg.11)
ER = 01 + 10 (a)

* Ejercicio 5 * (pg.13)
T a 0- 0 1 2 2+ b 1 1 -

(b) palabra palabra palabra palabra

ba: 0- => b => 1 => a => 2+ RECONOCE abba: 0- => a => 0 => b => 1 => b => 1 => a => 2+ RECONOCE aaba: 0- => a => 0 => a => 0 => b => 1 => a => 2+ RECONOCE aabba: 0- => a => 0 => a => 0 => b => 1 => b => 1 => a => 2+ RECONOCE cadena a: 0- => a => 0 => ?? RECHAZA (el estado incial no es final) cadena ab: 0- => a => 0 => b => ?? RECHAZA (el estado 1 no es final)

* Ejercicio 7 * (pg.14)
(a) T a b c d 0-+ 0 0 0 0 (b) palabra a: 0- => a => 0+ RECONOCE palabra bcda: 0- => b => 0 => c => 0 => d => 0 => a => 0+ RECONOCE palabra ccc: 0- => c => 0 => c => 0 => c => 0+ RECONOCE palabra vaca: 0- => => 0+ RECONOCE

SSL

Muchnik

* Ejercicio 10 * (pg.15) (a) T a b


0- 1 1 2 2 3 3+ 2 (b) palabra aab: 0- => a => 1 => a => 2 => b=> 3+ RECONOCE palabra aabab: 0- => a => 1 => a => 2 => b => 3 => a => 2 => b => 3+ RECONOCE cadena a: 0- => a => 1 => ?? RECHAZA (el estado 1 no es final) cadena ba: 0- => b => ?? RECHAZA (no puede continuar)

* Ejercicio 12 * (pg.18)
DF = ({0, 1, 2, 3}, {a, b,c}, TT, 0, {3}) TT a b c 01 1 1 1 2 2 2 2 3 3 3 3+ 3 3 3 donde la TT es:

* Ejercicio 13 * (pg.20)

(a) DF = ({0,1,2,3}, {a,b,c}, TT, 0, {2,3}) TT a b c 01 4 4 1 4 3 2 2+ 4 4 4 3+ 3 4 4 4 4 4 4 (b) ER = ac + aba* (c) Describa las actividades de este AFD para todos los casos posibles.

* Ejercicio 14 * (pg.21)
(a) Sea: S= {+, -} D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} O = {ASCII (S, D)} TT S D O 01 2 3 1 3 2 3 2+ 3 2 3 3 3 3 3 (b) Recorra el Algoritmo 1 para la cadena 1234;

(c) Recorra el Algoritmo 1 para la cadena 12*34.


(d) Opcional. (e) Opcional.

* Ejercicio 18 * (pg.22)
-123,01234567,+1234123 Son palabras porque son una secuencia de caracteres que reoresentan los nmeros enteros con y sin signo.

* Ejercicio 19 * (pg.23)
No. Porque tienen un significado diferente. fdt marca el fin del texto y # marca el fin de cada cadena que debe ser procesada.

SSL

Muchnik

CAP. 2: AUTMATAS FINITOS CON PILA * Ejercicio 1 * (pg.27)


a) No es un LR porque los caracteres del alfabeto son dependientes entre si; estn en funcin de la variable n. b) Demuestre que las producciones dadas en el Ejemplo 1 generan a L1. Sea la cadena aabb: Sea la cadena ab: Sea la cadena aaabbb: S S S aSb ab Reconoce aSb aabb Reconoce aaSbb aaabbb Reconoce

* Ejercicio 4 *

(pg.28)

El significa que el AFP, estando en el estado 4 y no ley ningn carcter, hace un pop del smbolo Z y pasa al estado 5 haciendo un push, primero de P y luego de R, quedando este ltimo smbolo como nuevo tope de la pila.

* Ejercicio 5 * (pg.28)
Reconocer por fin de la cadena significa que cuando detecta el fdc y la pila est vaca, transita al estado final. Reconocer por pila vaca significa que el conjunto de estados finales es vaco.

* Ejercicio 6 * (pg.28)
S.

* Ejercicio 8 * (pg.30) * Ejercicio 9 *


La 7-upla M = E = {e0, e1, A = {a,b} y A' = {R,$} e0 p0 = $ F = {e3} T es: TM e0,$ | e1,R | e2,R | e2,$ |

Elimina el smbolo que est en el tope de la pila.

(pg.30)

(E, A, A', T, e0, p0, F), donde: e2, e3} fdc para indicar el final de la cadena.

a e1,R$ e1,RR

b e2, e2,

fdc

e3,$

* Ejercicio 10 * (pg.30)
a) e0,$ e1,R e1,R e1,R => => => => a a a b => => => => e1,R$ e1,RR e1,RR e2,

SSL

Muchnik

e2,R => b => e2, e2,R => b => e2, e2,$ => fdc => e3,$ RECONOCE b) e0,$ => a => e1,R$ e1,R => a => e1,RR e1,R => b => e2, e2,R => b => e2, e2,$ => b => ?? (la pila est vaca, ley una b y no tiene, en el tope de la pila, un smbolo R para sacar => RECHAZA

* Ejercicio 12 * (pg.31)
La 7-upla M = (E, A, A', T, e0, p0, F), donde: E = {e0, e1, e2} A = {a,b} y fdc para indicar el final de la cadena. A' = {R,$} e0 p0 = $ F = { } T es: TM a b fdc e0,$ | e1,R$ e1,R | e1,RR e2, e2,R | e2, e2,$ | e2,

* Ejercicio 13 * (pg.31)

a) e0,$ => a => e1,R$ e1,R => a => e1,RR e1,R => a => e1,RR e1,R => b => e2, e2,R => b => e2, e2,R => b => e2, e2,$ => fdc => e2, RECONOCE b) e0,$ => a => e1,R$ e1,R => a => e1,RR e1,R => b => e2, e2,R => b => e2, e2,$ => b => e2, ?? en la pila se hace un pop, por lo tanto, la pila no tiene ningn smbolo, se lee una b, sigue en el estado e2 pero no tiene smbolo para hacer otro pop => RECHAZA

* Ejercicio 15 *

La 7-upla M = (E, A, A', T, e0, p0, F), donde: E = {e0, e1, e2, e3} A = {a,b} y fdc para indicar el final de la cadena. A' = {R,$} e0 p0 = $ F = {e3} T es:

(pg.31)

SSL

Muchnik

TM e0,$ e1,R e2,R e2,$

a | e1,R$ | e1,RR | |

b e2,R e2,

fdc

e3,$

* Ejercicio 16 * (pg.31)

La 7-upla M = (E, A, A', T, e0, p0, F), donde: E = {e0, e1, e2, e3, e4} A = {a,b} y fdc para indicar el final de la cadena. A' = {R,$} e0 p0 = $ F = {e4} T es: TM a b fdc e0,$ | e1,$ e1,$ | e2,R$ e2,R | e2,RR e3, e3,R | e3, e3,$ | e4,$ La 7-upla M = (E, A, A', T, e0, p0, F), donde: E = {e0, e1, e2, e3, e4, e5} A = {a,b} y fdc para indicar el final de la cadena. A' = {R,$} e0 p0 = $ F = {e5 } T es: TM a b fdc e0,$ | e1,R$ e1,R | e1,RR e2,R e2,R | e3, e3,R | e2,R e3,$ | e4,$ e5,$ e4,$ | e4,$ e5,$ La 7-upla M = (E, A, A', T, e0, p0, F), donde: E = {e0, e1, e2} A = {a,b} y fdc para indicar el final de la cadena. A' = {R,Z,$} e0 p0 = $ F = {e2 } T es: TM a b fdc e0,$ | e1,R$ e1,Z$ e1,R | e1,RR e1, e1,Z | e1, e1,ZZ e1,$ | e1,R$ e1,Z$ e2,$

* Ejercicio 17 * (pg.31)

* Ejercicio 18 * (pg.31)

SSL

Muchnik

* Ejercicio 19 * (pg.32)
(Ejemplo 6) La 7-upla M = (E, A, A', T, e0, p0, F), donde: E = {e0, e1, e2, e3} A = {4,+, *, (, )} y fdc para indicar el final de la cadena. A' = {R,$} e0 p0 = $ F = {e3 } T es: _TM______ 4 e0,$ | e1,$ e0,R | e1,R e1,$ | e1,$ e1,R | e1,R e2,$ | e2,R | e3,$ | a) +,* e0,$ e0,R e0,$ e0,R ( e0,R$ e0,RR ) fdc e3,$ e2, e2, e3,$

* Ejercicio 20 * (pg.32)

b) c) d)

e0,$ => ( => e0,R$ e0,R => ( => e0,RR e0,R => 4 => e1,R e1,R => ) => e2, e2,R => ) => e2, e2,$ => fdt => e3,$ RECONOCE 4 + 4 4 + 4 * (4 + (4)) e0,$ => 4 => e1,$ e1,$ => + => e0,$ e0,$ => ( => e0, R$ e0, R => ( => e0,RR e0,R => 4 => e1,R e1,R => ) => e2, e2,R => ) => e2, e2,$ => ) => ?? se lee un ), sigue en el estado e2 , la pila est vaca, por lo tanto no tiene smbolo para hacer un pop => RECHAZA

* Ejercicio 21 * (pg.32)
Porque el lenguaje de las expresiones es un LF Infinito No Regular y, por lo tanto, no es posible encontrar una GR que permita describir a este lenguaje.

SSL

Muchnik

CAP. 3: INTRODUCCIN AL PROCESO DE COMPILACIN * Ejercicio 1 * * Ejercicio 2 * (pg.33) (pg.33)


Es un programa que convierte un programa fuente en otro. La marca de fin de archivo.

* Ejercicio 3 * (pg.33)
Qu realicen la misma tarea.

* Ejercicio 4 * (pg.34)
LEXEMA int WHILE ; while ( WHILE ; > ( 32 ) ) 2.46 ; TOKEN palabraReservada Identificador caracterPuntuacion palabraReservada carcterPuntuacin Identificador carcterPuntuacin operador carcterPuntuacin constante carcterPuntuacin carcterPuntuacin operador constante carcterPuntuacin

* Ejercicio 6 *

Desde la visin del programador, hay dos errores sintcticos: la doble declaracin de la variable a(como int y como double) y el return 12 porque la funcin es void.

(pg.34)

* Ejercicio 7 *
Son tokens.

(pg.35) (pg.35) (pg.36)

* Ejercicio 8 * * Ejercicio 9 *

La doble declaracin de la variable a y el return 12. El alcance de una variable est dado por el contexto en el cual tiene validez. (por ejemplo: una variable local a una funcin, su alcance est limitado a la funcin, es decir, fuera de ella no existe).

* Ejercicio 10 *

a) Expresin es infija por ejemplo, cuando un operador es binario debe estar entre dos operandos. b) ID es un noterminal. c) fin es una palabra reservada; Fin y finn son identificadores.

(pg.37)

SSL

Muchnik

d) Significa que no hay que declarar a los identificadores porque son del nico tipo de dato entero y tienen todos una longitud igual a 323 caracteres.

* Ejercicio 11 *

(pg.37)
LEXEMA inicio leer ( a , b ) ; cc := a + ( b 2 ) ; escribir ( cc , a + 4 ) ; fin TOKEN palabraReservada palabraReservada carcterPuntuacin identificador carcterPuntuacin identificador carcterPuntuacin carcterPuntuacin identificador asignacin identificador operador carcterPuntuacin identificador operador constante carcterPuntuacin carcterPuntuacin palabraReservada carcterPuntuacin identificador carcterPuntuacin identificador operador constante carcterPuntuacin carcterPuntuacin palabraReservada

* Ejercicio 12 *

(pg.38)

a) conjunto de noterminales: <token>, <identificador>, <constante>, <palabraReservada>, <operadorAditivo>, <asignacin>, <carcterPuntuacin>, <identificador>, <letra>, <dgito>, <constante>. conjunto de terminales: a-z A-Z 0-9 inicio fin leer escribir + -:= ( ) , ; conjunto de metasmbolos: < > -> uno de { } o una de b) Se produce un error lxico.

* Ejercicio 13 *
a)

conjunto de noterminales: <programa>, <listaSentencias>, <sentencia>, <identificador>, <expresin>, <listaIdentificadores>, <listaExpresiones>, <primaria>, <operadorAditivo>, <constante> conjunto de terminales: inicio fin leer escribir := ; , ( ) conjunto de metasmbolos: < > -> { } |

(pg.38)

SSL

Muchnik

b)

inicio leer (x,y); escribir (x-9, y +x); fin d) Los smbolos := No representan a un operador porque no pertenece al token asignacin.

* Ejercicio 14 *

(pg.40)

a) una mquina virtual es una mquina que representa lo que hace una computadora y tiene su propio lenguaje de mquina. b) en tiempo de compilacin: durante el proceso de compilacin. c) en tiempo de ejecucin: durante la ejecucin del programa ejecutable. d) se compila el programa fuente. e) se ejecuta el programa objeto escrito en lenguaje de mquina. f) S. Son equivalentes el programa que se compila y el programa que se ejecuta.

* Ejercicio 15 * * Ejercicio 16 *

S. La genera la Gramtica Lxica.

(pg.40) (pg.40)

4 caracteres que puedan actuar como centinelas para un identificador en Micro: - + : , *Ejercicio 18* (pg.41) Porque no pertenece al alfabeto (la gramtica se construye sobre un alfabeto).

* Ejercicio 19 *
abc identificador

* error lxico

(pg.41) (pg.41)

ab

identificador

* Ejercicio 20 *

a) los ignora b) forman parte del literalCadena c) ' ' '\n' son constantes carcter.

* Ejercicio 21 *

a) contenido que queda en la Tabla de Smbolos una vez que el Anlisis Lxico haya finalizado: inicio PR fin PR leer PR escribir PR a ID b ID b) Se fija en la TS.

(pg.42)

* Ejercicio 28 *

(pg.47)

Aclaracin: la numeracin corresponde al orden en el cual se va armando el AAS.

SSL

Muchnik

(1) <objetivo> (2) <programa> (29) FDT (3) INICIO (4) <listaSentencias> (28) FIN (12) <sentencia>

(5) <sentencia>
(6) ID (7) ASIGNACION (8) <expresin> (11) PUNTOYCOMA

(9) <primaria>
(13) ESCRIBIR (14) PARENIZQUIERDO (15) <listaExpresiones> (26)PARENDERECHO(27) PUNTOYCOMA

(10) CONSTANTE (16) <expresin> (19) COMA (20)<expresin>

(17) <primaria> (21)<primaria> (23)OPERADORADITIVO (24)<primaria> (18) ID


(22) ID (25)CONSTANTE

* Ejercicio 29 *

void Programa (void) { /* <programa> -> INICIO <lista Sentencias> FIN */ Match(INICIO); ListaSentencias(); Match(FIN); }

(pg.47)

* Ejercicio 34 * * Ejercicio 35 *

Match(), ProximoToken() y ErrorSintactico().

(pg.50) (pg.50)

a) inicio escribir(4); fin b) Objetivo() Programa() ListaSentencias() Sentencia() ListaExpresiones() Expresion() Primaria()

* Ejercicio 40 *

(pg.54)

En el parmetro: resultado es una variable de tipo puntero a un objeto de tipo REG_EXPRESION.

SSL

Muchnik

En la sentencia: significa que en lo apuntado por resultado (*resultado) guarde el contenido de la variable operandoIzq. Aqu el asterisco corresponde al operador indireccin.

* Ejercicios Adicionales *

(pg.49)

void ListaExpresiones(void) { /* <listaExpresiones> -> <expresin> {COMA <expresin> } */ Expresion(); /* la primera de la lista de expresiones */ while(1) { /* un ciclo indefinido */ switch(ProximoToken()) { case COMA: Match(COMA); Expresion(); /* procesa la secuencia opcional */ default: return; } /* fin-switch */ } /* fin-while */ } void Primaria(void) { /* <primaria> -> ID | CONSTANTE | PARENIZQUIERDO <expresin> PARENDERECHO */ TOKEN tok = ProximoToken(); switch(tok) { case ID: Match(ID); break; case CONSTANTE: Match(CONSTANTE); break; case PARENIZQUIERDO: Match(PARENIZQUIERDO); Expresion(); Match(PARENDERECHO); break; default: ErrorSintactico(tok); break; } /* fin-switch */ } void ListaIdentificadores (void) { /* <listaIdentificadores> -> <identificador> {, <identificador>} */ Match(ID); while (ProximoToken() == COMA) { Match(COMA); Match(ID); } }

SSL

Muchnik

Cap. 4: ANLISIS LXICO, ANLISIS SINTCTICO Y ANLISIS SEMNTICO * Ejercicio 1 * (pg.57)


(XX, funcin, int, 1, double) (a, parmetro,double) (s, arreglo, 1, char, 12) (b, variable, double)

Ejercicio 2 *

(pg.58) (pg.58)

Identificadores, constantes (reales, enteras).

* Ejercicio 3 *
a) b) c) d) a) b) c) d) e) f) g) h) V F F V

* Ejercicio 4 *
SI NO SI SI SI NO SI NO

(pg.58)

* Ejercicio 5 *
El de ANSI C.

(pg.59) (pg.59)

* Ejercicio 6 *

El Scanner lee el primer carcter que es una / (barra), lee el sengundo carcter, si es una barra, entonces lee el tercer carcter, si este ltimo es el smbolo +, entonces detecta el operador //+ y no necesita leer un prximo carcter; en caso de ser cualquier otro carcter, detecta el operador // y si despus de leer el primer carcter (barra), el segundo es cualquier otro carcter, entonces detecta el operador /.

* Ejercicio 7 * * Ejercicio 8 *

Para facilitar el Anlisis Sintctico.

(pg.59) (pg.60)

a) En el primer caso, el Scanner retorna el tipo de constante numrica y la posicin de esa constante guardada como secuencia de caracteres (sin convertir); en cambio, en el 2 caso, el Scanner debe realizar una conversin de la secuencia de caracteres que representan a la constante entera a su valor numrico y entonces retorna el tipo de constante numrica y el valor de la constante. b) por enumeracin o con un nmero entero.

SSL

Muchnik

* Ejercicio 9 * * Ejercicio 10 *
S. S.

(pg.60) (pg.61) (pg.61) (pg.61)

(tipo, valor), o sea: (CONSTANTECARACTER, carcter)

* Ejercicio 11 * * Ejercicio 12 *

a) typedef PR, char PR, strings ID, [ CP (carcterpuntuacin), 200 CONSTANTE, ] CP, [ CP, 32 CONSTANTE, ] CP, ; CP b) (strings, nombredetipo, arreglo, 2, char, 200, 32) Aclaracin: nombredetipo ser un valor que indique que strings no es el nombre de una variable sino el nombre de un tipo de dato.

* Ejercicio 13 * * Ejercicio 14 *
a) b) c) d) e)

(pg.61) (pg.62)
const. * 60

En literalCadena y como carcter constante. noterminales: inst. asignacin identif. expr. terminales: posicion = inicial + velocidad axioma falta el ; (punto y coma) posicion = inicial + velocidad * 60; inst. asignacin identif. = expr. ; posicion = expr. ; posicion = expr. + expr. ; posicion = identif. + expr. ; posicion = inicial + expr. ; posicion = inicial + expr. * expr. ; posicion = inicial + identif. * expr. ; posicion = inicial + velocidad * expr. ; posicion = inicial + velocidad * const. ; posicion = inicial + identif. * 60;

* Ejercicio 17 *
NO.

(pg.66) (pg.66)

* Ejercicio 18 *

En Pascal: variable no declarada, variable declarada con dos tipos distintos.. En ANSI C: funcin no definida, cuando en el lado izquierdo de una asignacin aparece un valor constante (ejemplos: 1 = 3; 4++;).

* Ejercicio 19 *

(pg.66)
trmino factor

a) noterminales: listaExpresiones expresin terminales: num + * ; ( ) metasmbolos: : |

* Ejercicio 20 *

Ejemplo: S -> aTbRba

(pg.68)
|

aTbc

SSL

Muchnik

* Ejercicio 21 *

(pg.69)
es

if ( <condicin> ) <sentencia> 1 else <sentencia> 2

* Ejercicio 22 *
S -> aTbS S -> Rba | c T -> a | Ta R -> cR R -> | Rb

(pg.69)

* Ejercicio 23 *

(pg.70)

<listaExp> -> <operando> <listaExp> <listaExp> -> | <operador> <operando> <listaExp>

* Ejercicio 24 *

(pg.70)

GIC 2: listaExpresiones: expresin listaExpresiones listaExpresiones: | ; expresin listaExpresiones expresin: trmino expresin expresin: | + trmino expresin trmino: factor trmino trmino: | * factor trmino factor: num | ( expresin )

* Ejercicio 25 *

(pg.71)
U U U U U U Primero(B) Primero(bBe) U Primero(C) {b} U Primero(cCe) U {c} U Primero(C) Primero(cCe) U Primero(d) {c} U {d} Primero(d) {d} Primero(d) {d}

Primero(S) = Primero (aSe) {a} Primero(B) = Primero(bBe) {b} Primero(C) = Primero(cCe) {c}

* Ejercicio 26 *

Primero(S) = Primero(ABc) como A es un noterminal, por (2), entonces hay que calcular los conjuntos Primero para cada lado derecho de A: A -> a| esto implica que Primero(a) = {a} U Primero() = {} pero como A puede generar , por (3), entonces Primero(S) depende de B (X2) y como B es un noterminal, por (2), hay que calcular los conjuntos Primero para cada lado derecho de B: B -> b| esto implica que Primero(b) = {b} U Primero() = {} pero como B puede generar por (3), entonces Primero(S) depende de c, y como c es un terminal, por (1), Primero(c) = {c}. Por lo tanto: Primero(S) = {a,b,c}

(pg.71)

SSL

Muchnik

* Ejercicio 27 * (pg.72) b) Porque no est descripto en la GIC. c) Porque no existe. * Ejercicio 28 * (pg.73)
Predice (E1 -> T1 E2) = Primero(T1 E2) = {(, num} porque no contiene a y, por lo tanto, Predice coincide con Primero(T1 E2).

* Ejercicio 29 *
Dos.

(pg.74) (pg.76)

* Ejercicio 31 *

a) noterminales: listaParntesis, plista terminales: ( ) b) listaParntesis plista ( listaParntesis ) ( plista ) ( ) ( ) c) listaParntesis plista ( listaParntesis ) ( plista listaParntesis ) ( ( listaParntesis ) listaParntesis ) ( ( plista) listaParntesis )

* Ejercicio 33 * (pg.78)
1) no es recursiva a izquierda; 2) no tiene prefijo comn.

* Ejercicio 37 *

(pg.83)

a) Detecta cada lexema y retorna el token correspondiente, en la medida que el Parser se lo solicita. b) Realiza el Anlisis Sintctico de la expresin en base a la GIC. c) Detecta que la primera constante es entera (int) y que la segunda constante es real (double), y realiza la conversin a double para poder hacer la operacin de suma.

* Ejercicio 38 *

(pg.84)

a) Anlisis Lxico: Detecta cada lexema y retorna el token correspondiente, en la medida que el Parser se lo solicita. No hay errores lxicos. b) Anlisis Sintctico: Analiza sintcticamente el bloque y no detecta errores sintcticos. c) Anlisis Semntico: 1) detecta que la variable a es entera (int); 2) detecta que el valor constante 2 no es un valorL en la sentencia de asignacin deteccin del 1er. error; 3) detecta que despus de la sentencia de asignacin hay una declaracin de la variable b como real (double) y que la misma est fuera de lugar -detecta el 2 error; 4) detecta que la variable b, en la sentencia de asignacin, es un valorL (correcto) y que en la expresin 4++, 4 es un valor constante y se le aplica el operador incremento -detecta el 3er. error porque el operando debe ser un valorL.

SSL

Muchnik

* Ejercicio 39 *

(pg.84)

a) Anlisis Lxico: Detecta cada lexema y retorna el token correspondiente, en la medida que el Parser se lo solicita. No hay errores lxicos. b) Anlisis Sintctico: Analiza sintcticamente el bloque y no detecta errores sintcticos. c) Anlisis Semntico: Detecta que las variables a y b son enteras (int) y que c es una variable real (double); realiza la conversin correspondiente a double para poder hacer la operacin de suma, luego quedar el resultado truncado (porque la suma se realiza double pero el resultado es int).

Das könnte Ihnen auch gefallen