Está en la página 1de 74

Diapositiva1

UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva2

El problema de la traduccin
MOVE 3 to A
(Cobol)

A := 3;
(Ada,Pascal)

A=3
(Fortran)

3 A !
(Forth)

MOV AX, 3
A =3;
(C/C++, JS,
Java)

01010111
11101010
00000101

UTN - FRM, SSL: Proceso de traduccin

/A 3 def
(Postscript)

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva3

Reconocimiento de cdigo fuente


Programa
escrito en
algn
lenguaje

Anlisis
Lxico
tokens
Unidad I

Anlisis
Sintctico
rboles

Anlisis
Semntico

Traductor

Programa en
lenguaje de
mquina

Unidad II
UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva4

Descripcin de lenguajes
y

Lenguajes de programacin

Programas
Lenguajes de alto nivel y de mquina
Traductores
x Especificaciones gramaticales y semnticas

Lenguajes formales
Alfabeto
Palabras

Sintaxis

Reglas de formacin de palabras y frases

Semntica

Significado de las palabras y frases

UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva5

Conceptos sobre lenguajes


y
y

y
y

Smbolos
Alfabeto: = {a, b, c, ...}
Cadenas o palabras
n con n >= 0
(vaco , , , )
0 = {}
0
1
* = 2 ...
+ = 1 2 ... = * - {}
Universo de un alfabeto W()
Lenguaje sobre un alfabeto
L() W()
UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva6

Operaciones
y

Con palabras
Concatenacin:X.Y
Potencia:Xi
Reflexin:X1 oXR

Con lenguajes
Unin:L1 L2
Interseccin:L1 L2
Resta:L1 L2
Concatenacin:L1 L2
Potencia:Li
Clausura:L+ =Ui=1 Li
Cierre:L*=L+ U{}
Reflexin:L1

UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva7

Reglas de produccin
NR
N (elemento a definir)
R (patrn de generacin)

Sean: v w

donde v, w *

Derivacin directa: v w
Derivacin: v v1 v2 w

Derivacin por izquierda y por derecha


Sea la palabra 00011 y las reglas a) 01 11 b)00 10
Por izq: 00011-> 10011-> 11011-> 11111
b
b
a
Por dcha: 00011-> 00111-> 01111-> 11111
a
a
a
UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva8

Gramticas formales
y

Definicin: G = {, t, S, P}
alfabeto (t U n)
n = variables
t conjunto de smbolos terminales
S axioma S n
P conjunto finito de reglas de produccin

Lenguaje generado: L(G) conjunto de


todas las palabras o cadenas generadas
por la gramtica

Equivalencia: L(G1) = L(G2)

UTN - FRM: Fundamentos de sintaxis y semntica

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva9

Gramticas formales
P = { S -> aSb, S -> aSbb, S -> b }
t = { S }
n = { a, b }
Qu genera?
Dados t = {S, T} n = {a, b}
Obtener P para L = { ar b / r > 0 }

S -> aS
S -> b

S -> aS
S -> aT
T -> b

S -> aT
T -> aT
T -> b

Dados t = {S, T} y n = {a, b, c}


Obtener P para
S -> aSc
L = { ar b cr / r > 0 }
S -> b

UTN - FRM: Fundamentos de sintaxis y semntica

S
aSb
aSbb
b
aabbbb

S -> aSc
S -> T
T -> b

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva10

Jerarqua de gramticas (Chomsky)


Irrestrictas
(G0)

Restriccin: N R donde N
Ejemplo: S aSBC | aBC, CB BC, aB ab
bB bb, bC bc, cC cc, A bc

Sensibles al
contexto
(G1)

Restriccin: N R donde |N|< |R|, N = A, R =


tal que , , V* con V = (t n)* y A = n
Ejemplo: S abc | aAbc, Ab bA, Ac Bbcc,
bB Bb, aB aa | aaA
Regla compresora
N R |N| > |R|

Libres de
contexto
(G2)

Restriccin: N R donde N = n, R = sin restriccin


Ejemplo: S aSb | ab |

Regulares
(G3)

Restriccin: N R donde V =n, R = (t n) t


Ejemplo: A aB | a |

UTN - FRM: Fundamentos de sintaxis y semntica

10

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva11

G3 (regulares)
Regular x izquierda

Regular x derecha
S > 1A
A > 1A | 0B | 0
B > 0B | 0

S > C0
C > C0 | D1 | 1
D > D1 | 1

Ambas generan
11000

UTN - FRM: Fundamentos de sintaxis y semntica

11

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva12

G2 (independientes de contexto)
G1 (no estricta)

G2 (estricta)

S > AB
A > 0A1 |
B > 2B |

S > AB | A | B |
A > 0A1 | 01
B > 2B | 2

Ambas generan
0n1n2m con n, m 0
G1 no es estricta ya que incluye reglas nulas
asociadas a smbolos que no son el axioma

UTN - FRM: Fundamentos de sintaxis y semntica

12

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva13

rbol de derivacin
Sea G = { t, n, S, P }
t
n
S=
P=

= { 0, 1, [, ], +, * }
= { E }
E
{E[EE+],E[EE*],E0, E1}

Para la cadena: [0[01*]+]

UTN - FRM: Fundamentos de sintaxis y semntica

13

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva14

rbol de derivacin y ambigedad


y
y

Sea:S SaS|SbS|c
Qupasaparacbcac ?
Necesidaddereglasdeprecedencia
Sea:E E+E|E*E|E^E|id|(E)
Expresin: x + y ^ z ^ v * w

Jerarqua: 1) ^
2) *
3) +
Asociatividad: *+(izqdcha) ^ (dchaizq)
y

Ambiguedad enlenguajeFortran
z=x+algo(3,4)arregloofuncin?

UTN - FRM: Fundamentos de sintaxis y semntica

14

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva15

rbol de derivacin y ambigedad


<assign> <id> := <expr>
<id> A | B | C
<expr> <expr> + <expr>
| <expr> * <expr>
| ( <expr> )
| <id>
Para ? B := B + A * C (ambigua)

Para ? B := B + ( A * C )

Para ? C := (B + C) * (A := B)
UTN - FRM: Fundamentos de sintaxis y semntica

15

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva16

Notacin BNF y EBNF


Es un meta-lenguaje, para especificacin sintctica
de uso casi universal
BNF (John Bakus, Peter Naur Normal Form - 1959)
<no terminal> a
+
::=
()
Ejemplo
<dgito> ::= 0 | 1 | | 9
<nmero> ::= <dgito> <nmero>
<nmero> ::= <dgito>

EBNF (Extended BNF)


{ }* o {}
{ }+
[]
Ejemplo
<dgito> ::= 0 | 1 | | 9
<nmero> ::= <dgito> {<dgito>}*
UTN - FRM: Fundamentos de sintaxis y semntica

16

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva17

Diagramas sintcticos

UTN - FRM: Fundamentos de sintaxis y semntica

17

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva18

BNF EBNF Diagramas


y

BNF:
<expr> ::= <expr> + <term> |
<expr> - <term> | <term>

EBNF:
<expr> ::= <term> { (+ | -) <term> }

Diagrama sintctico
expr
term
+

term

UTN - FRM: Fundamentos de sintaxis y semntica

18

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva19

Notaciones para expresiones


y
y
y

Infija
ms usual (requiere parntesis)
Postfija
Evaluacin muy eficiente
Prefija
notacin funcional
Infija

Postfija

Prefija

a+d*g-h

adg*+h-

-+a*dgh

C
a=a+ b

PostScript
/a a b add def

Lisp
(setf a (+ a b))

UTN - FRM: Fundamentos de sintaxis y semntica

19

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva20

UTN - FRM: Fundamentos de sintaxis y semntica

20

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva21

Autmatas
y

Permiten simular procesos para tratar informacin

la informacin se codifica en cadenas de smbolos


son dispositivos que manipulan cadenas de smbolos
procesan cadenas de entrada y producen cadenas de salida
reciben los smbolos de entrada secuencialmente

El smbolo de salida, en un instante dado depende de

el ltimo smbolo de entrada


la secuencia o cadena, que ha recibido hasta ese instante
el estado en que se encuentra

Estados de un autmata
en un instante de tiempo dado, slo puede estar en un estado
estados iniciales y estados finales

y
y
y

Formas de descripcin: grfica, matricial, funcional


Se usan como reconocedores de lenguajes
Existen distintos tipos de autmatas

UTN - FRM: Fundamentos de sintaxis y semntica

21

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva22

Mquina de Mealy
y

M = (e, s, Q, f, g)
e: alfabeto de entrada
s: alfabeto de salida
Q: conjunto de estados
f: Q x e Q
g: Q x e s

Transiciones x/y donde


x es el smbolo de entrada
y es el smbolo de salida

La salida depende del estado actual y de la entrada

UTN - FRM: Fundamentos de sintaxis y semntica

22

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva23

Mquina de Moore
00

M = (e, s, Q, f, g)
e: alfabeto de entrada
s: alfabeto de salida
Q: conjunto de estados
f: Q x e Q
g: Q s

10

10/0
A

10/1

C/
0

0/11

00/0

1/11

00/0

00

B/
1

0/00

10
A/
0

A/11
1/01

B/00

C/01

La salida depende slo del estado actual


Para el mismo proceso, suelen tener ms estados
que las mquinas de Mealy

UTN - FRM: Fundamentos de sintaxis y semntica

23

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva24

Autmata finito determinista


AFD = (, q0, Q, F, f)
: alfabeto de entrada ??

q0: estado inicial Q ??

Q: estados ??

F: estados finales Q ??

f: Q x Q ??

Notacin
Notacin
matricialfuncional
f(1,
a
b a) $ 2 2
f(1, b) 3
1
2
3 a)
- 2 f(2,

$, 2

a b, $, 2

a, 2

1
b

a, b

f(3,
- b) - 2 f(3,
2 $) 4 4 f(4, $) 4
4 3 3

f(4,2)

Algoritmo de implementacin

Habitualmente slo se representan las transiciones que conducen al reconocimiento de alguna cadena,
considerndose implcito un "estado de captacin global", donde se supone que llegan los arcos omitidos.
UTN - FRM: Fundamentos de sintaxis y semntica

24

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva25

Autmata finito no-determinista


AFND = (, q0, Q, F, f)
: alfabeto de entrada ??
Q: estados ??
f: Q x ( {}) P(Q) ??

q0: estado inicial Q ??


F: estados finales Q ??

1
q1

1
q0

0,1
,1

1 0 1 0 0
0

q2

UTN - FRM: Fundamentos de sintaxis y semntica

q3

25

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva26

Gramticas G3 y autmatas
y

Gramtica regular
T ={0,1}
N ={A,B,S}
P={S>0A,A>0S,A>1B,B>1,B>0 }

Autmata

Expresin regular
0.(0.0)*.1.(1|0)

UTN - FRM: Fundamentos de sintaxis y semntica

26

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva27

Expresiones regulares
y

Introducidas por Kleene (1956)


Describen mquinas de estados finitos

Operadores
Unin

| V

Concatenacin

Cierre (Kleene)

Cierre (positivo)

Sea a.(b|c*).d cul es el AEF y la gramtica?


UTN - FRM: Fundamentos de sintaxis y semntica

27

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva28

Propiedades de las ER
SeaL={a,b,c}*
Sonequivalentes: c*.c|c*= c*?
4)
3)

2)
1)

UTN - FRM: Fundamentos de sintaxis y semntica

28

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva29

Expresiones regulares y AEF


y

Reglas de transformacin
a|b

a.b

Sea: (x | y*).z*.w

qi

qf

b
a

qi

qk

qf

a
a*

qi

qk

qf

Algoritmos formales
McNaughton-Yamada-Thompson
UTN - FRM: Fundamentos de sintaxis y semntica

29

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva30

Algoritmo de transformacin

r.s

a
r*
r|s
ER vs AEF

Por ejemplo sea (1|0)*1seobtieneunAFND


Luego se lleva
a un AFD y se
minimiza

UTN - FRM: Fundamentos de sintaxis y semntica

30

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva31

Equivalencia de autmatas
y
y
y

AFND AFD
Un AFD es un caso particular de AFND
N=(, q0, Q, F, f) equivale a D=(, {q0}, Q, F, f)
Es decir N = D / L(D)=L(N)
Si se cumple:
x Q = 2|Q| (conjunto potencia P(Q) )
x qi = [qi , , qf ] => {qi , , qf} Q

x q0 = {q0}
x F = { q Q / q F ( } al menos uno sea final)
x f(q, a) = {qq f(q, a)} / q Q ^ a
UTN - FRM: Fundamentos de sintaxis y semntica

31

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva32

Equivalencia de autmatas
y
y
y

Se basa en la construccin de subconjuntos


A cada estado del AFD le corresponde un
conjunto de estados del AFND
Algoritmo:
Para cada estado del AFND y cada smbolo de
entrada, analizar cules estados son alcanzables
Agrupar esos estados en estados compuestos
Hacer lo mismo con los estados compuestos
Finalmente eliminar los estados
No alcanzables (menos inicial y final)
Alcanzables que han sido eliminados en el paso anterior

UTN - FRM: Fundamentos de sintaxis y semntica

32

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva33

Equivalencia de autmatas
y

AFND

AFD: estados alcanzables desde {q0}

Cmo se obtiene ?
UTN - FRM: Fundamentos de sintaxis y semntica

33

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva34

Algoritmo de minimizacin
Sean AFD=(, q0, Q, F, f) = AFDM=(, q0, Q, F, f) / L(AFD)=L(AFDM)
y Eliminar los estados no alcanzables desde el estado inicial
y Eliminar los estados desde los que no se alcanza un estado final
y Luego:
1. Hacer particin inicial P en dos grupos G(F) y G(Q F)
2. G de P (|G| > 1) obtener nueva Pn de modo que:
x qi, qj Gi <=> / f(qi, ), f(qj, ) Gi
x sustituir G en Pn por el nuevo conjunto de subgrupos
3. si Pn= P entonces Pfinal := P e ir a (4) sino P := Pn e ir a (2)
4. Finalmente
x
elegir en cada grupo un qi como representante del grupo
x
eliminar estados pasivos (sumideros no finales)

UTN - FRM: Fundamentos de sintaxis y semntica

34

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva35

Minimizacin de autmatas
AFD que reconoce L = (a|b)*abb

Q1aaQ3
Q2aabQ2
Q4bbQ4
Q5abaQ2
Q5 bbQ4bbQ5

Mtodo
P1:= G1{Q5} + G2{Q1,Q2,Q3,Q4}
P := {Q5} y (Q1, Q2, Q3) x b G2 y Q4 x b G1
P2 := G1{Q5} + G2{Q1, Q2, Q3} + G3{Q}

Otro enfoque

si Pn P entonces P := Pn y repite el proceso


P := {Q5} + {Q4} y {Q1, Q3} x b G2 y Q2 x b G3
P3 := G1{Q5} + G2{Q4} + G3{Q1, Q3} + G4{Q2}
Luego P := Pn, pero Pn = P entonces Pfinal := P y se elige Q1 representa G3
UTN - FRM: Fundamentos de sintaxis y semntica

35

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva36

Autmatas de pila
AP = ( , , Q, a0, q0, F, f )
: alfabeto de entrada
: alfabeto de pila
q0: estado inicial
Q: conjunto de estados
F: estados finales
a0: smbolo inicial pila
f: Q ( {}) Q
Transicin (x, h / w) donde:
x = estado actual
h = smbolo ledo de la cima de la pila
w = smbolo escrito en la pila

x, h /w

Para cada gramtica G independiente del contexto, existe un autmata de


pila M tal que L(G)=L(M)
Los smbolos en la pila se ordenan en sentido cima base (convencin)
UTN - FRM: Fundamentos de sintaxis y semntica

36

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva37

Descripcin de autmatas de pila


0, #

q0

, $

1, #
,

q1

q2

, $

q3

Descripcin funcional Descripcin tabular


f(q0 x x ) q1 x $
f( q1 x x ) q2 x
f( q1 x 0 x ) q1 x #
f( q2 x x $) q3 x
f( q2 x 1 x #) q2 x

UTN - FRM: Fundamentos de sintaxis y semntica

Estado

Entrada

Pila

Transicin

q0

e1,$

q1

e2,

q1

e1,#

q2

e3,

q2

e2,
37

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva38

Formas de reconocimiento
y

Reconocimiento por vaciado de pila


Lvp(M)= {w * / (q0, w, a0) (p, ,),p Q}

Reconocimiento por alcanzar el estado final


Lef(M)={w */ (q0, w, a0) (p, , h),p F, h *}

Lvp y Lef reconocidos pueden ser diferentes

UTN - FRM: Fundamentos de sintaxis y semntica

38

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva39

Autmatas de pila determinista


y

Es determinista si cumple

(q Q A ) si |f(q, ,A)|>0 a , f(q, a, A)=


(q Q A a { } ), |f(q, a, A)|<2
y

Construccin de un APD (, , Q, a0, q0, f, F)


Dados: ={a, b, c}, ={#, $, }, a0 = #, q0=X, Q={X,Y, Z}, F= {Z}

f ? para reconocer: L = { an b cn+1 / n > 0 }

AP <=> G2

UTN - FRM: Fundamentos de sintaxis y semntica

39

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva40

Autmatas de pila y gramticas


Gramtica libre de contexto Autmata de Pila
T = {a, b}

N = {S}

: {a, b}

q0: e0

P = { S -> aSb| }

: {#, $, a}

F: {e3}

L1 = {anbn / n >= 0}

Q: {e0,e1,e2,e3}

a0: $

a, a

e0

, $ $

b, a
b, a

e1

e2

, $ $

e3

Ejemplo
UTN - FRM: Fundamentos de sintaxis y semntica

40

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva41

Autmatas de pila y gramticas


Representar G2 con AP
Si AP ( , , Q, a0, q0, F, f ) entonces
construir APND=(, N, {q}, S, q, fi, f)
x sea Aw P entonces (q, w) f(q, , A)
x sea a entonces (q, ) f(q, a, a)
El reconocimiento es por vaciado de pila
Sea P = { S0S1, Sc } entonces
x f(q, , A)= {(q, 0S1), (q, c)}
x f(q, 0, 0)= f(q,1,1)= f(q, c, c)= {(q, )}
UTN - FRM: Fundamentos de sintaxis y semntica

41

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva42

Algoritmo para convertir G2 en AP


Gramtica G2
t = {a, b, z}
n = {S, M, N}, S, P)
SzMNz
MaMa
Mz
NbNb
Nz
Autmata de pila
= {a, b, z}
= {a, b, z, S, M, N, #}
Q = {i, p, q, fi}
a0 = #
q0 = i
F = fi

Definir
1) con t
2) con t + n + #
3) Q como i, p, q y fi
Agregar transiciones
4) (i, , ; p, #)
5) (p, , ; q, S)
6) (q, ,N; q,w) n
7) (q, x, x; q, ) t
8) (q, , #; fi, )

UTN - FRM: Fundamentos de sintaxis y semntica

Ejemplo

42

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva43

Autmatas Linealmente Acotados


ALA= (Q, , , , e0, b, F)
donde b = blanco
longitudcinta = longitudcadena
Q: conjunto finito estados
: alfabeto de entrada;
: {b} otros smbolos, b
: Q x Q x x {D, I, N}
e0: estado inicial Q
F: estados finales Q
estados

UTN - FRM: Fundamentos de sintaxis y semntica

(input)
(output)

cinta

Control

43

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva44

Mquinas de Turing
AP = (, , b, Q, q0, F, f)
: alfabeto de entrada c
: alfabeto de la cinta
b: blanco c, e
Q: conjunto de estados
q0: estado inicial Q
F: estados finales Q
f: Q x c Q x c x {I, D, P}
cinta

estados

Control

UTN - FRM: Fundamentos de sintaxis y semntica

44

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva45

Mquinas de Turing
y

Los movimientos se repiten hasta que:


llega al estado final (se detiene aceptando la entrada)
intenta acceder a la celda a la izquierda de la celda
inicial (se detiene rechazando la entrada)
entra en una situacin para la que no hay definido
movimiento (se detiene rechazando la entrada)
ante determinada entrada, la mquina siga realizando
movimientos indefinidamente sin aceptar ni rechazar
dicha entrada

Palabra y lenguaje aceptado


x L(M) q0x 1q2 : 1,2 , q F
L(M) = { x * | q0x 1q2 : 1,2 , q F }

UTN - FRM: Fundamentos de sintaxis y semntica

45

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva46

Mquinas de Turing
Mquina que acepta el lenguaje de palabras sobre {0, 1}
que comienzan y terminan con el mismo smbolo

UTN - FRM: Fundamentos de sintaxis y semntica

46

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva47

Mquinas de Turing
Concatenador

1 $, R

1 1, L

1 1, R

q0 , L q1 $ 1, R

Duplicador

, R
q3

UTN - FRM: Fundamentos de sintaxis y semntica

q2

1, L

47

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva48

Lenguajes, gramticas y autmatas

UTN - FRM: Fundamentos de sintaxis y semntica

48

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva49

UTN - FRM: Fundamentos de sintaxis y semntica

49

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva50

Anlisis lxico
y

Scanner
Recibir caracteres de entrada
Agruparlos segn la G3 para reconocer lexemas
y generar tokens
Detectar algunos significados y errores
x identificar los tokens y evaluarlos

Introducir informacin adicional descriptiva


Eliminar separadores innecesarios
Sustituir macros

UTN - FRM: Fundamentos de sintaxis y semntica

50

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva51

Anlisis lxico

UTN - FRM: Fundamentos de sintaxis y semntica

51

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva52

Anlisis lxico
lexema

token

secuencia de
caracteres,
que se
asocia a un
token

nombre de
cada
componente
lxico

Lexemas
index
=
2
*
count
+
17
;

Enunciado
index = 2 * count + 17

UTN - FRM: Fundamentos de sintaxis y semntica

patrn
conjunto de
lexemas

Tokens
identifier
equal_sign
int_literal
mult_op
identifier
plus_op
int_literal
semicolon
52

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva53

Anlisis sintctico
y

Parser
Recibir tokens suministrados por el scanner
Agrupar tokens
x de acuerdo a producciones especificadas por la G2 para
reconocer frases
x determinar si son sintcticamente correctas
x establecer la estructura subyacente

Detectar errores sintcticos


Generar rboles sintcticos

UTN - FRM: Fundamentos de sintaxis y semntica

53

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva54

Anlisis sintctico
y

Proceso de anlisis
Tokenizado

rbol

Analizador
lxico

Analizador
sintctico
Reglas de
produccin
UTN - FRM: Fundamentos de sintaxis y semntica

54

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva55

Anlisis sintctico
y

rboles de sintaxis
Concreta: sirve para el anlisis sintctico
Abstracta: sirve para el anlisis semntico

Sea: S if expr then A endif ;


Abstracta (AST)

Concreta

UTN - FRM: Fundamentos de sintaxis y semntica

55

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva56

Anlisis sintctico
y

Analizadores recursivos
cada no-terminal tiene asociada una rutina de anlisis,
creada a partir de las reglas gramaticales
y scan de izquierda a derecha
y

Estrategias de anlisis
DESCENDENTE(Top-Down)
x construye el rbol desde la raz (S) hacia las hojas
x problemas con recursividad a izquierda

ASCENDENTE(Bottom-Up)
x construye el rbol desde las hojas hacia la raz (S)
x se basa en encontrar una derivacin por la derecha
UTN - FRM: Fundamentos de sintaxis y semntica

56

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva57

Analizador por izquierda (a)


y

Sea la gramtica G = (N,T, S, P) con


N = {A, S}, T = {a, b, c},
P = {S aAc, A Ab | }
L = {a bn c / n > 0}.

Se quiere reconocer: abbc

UTN - FRM: Fundamentos de sintaxis y semntica

57

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva58

Analizador por izquierda (b)


y

Sea la gramtica G = (N,T, S, P) con


N = {A, S}, T = {a, b, c},
P = {S aAc, A | Ab}
L = {a bn c / n>=0}.

Se quiere reconocer: abbc

UTN - FRM: Fundamentos de sintaxis y semntica

58

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva59

Analizador top-down
y

Recursividad por izquierda


No puede procesarla
Se debe eliminar

Recursividad por izquierda inmediata


A A |

Eliminacin de recursividad por izquierda


Se trabaja con el trmino (que no es RI)
AB
BB |

UTN - FRM: Fundamentos de sintaxis y semntica

59

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva60

Eliminacin recursividad izquierda


y

Sea por ejemplo el siguiente caso


S Aa | b
A Ac | Sd | f
Reemplazar: A Sd por A Aad | bd
Queda: A Ac | Aad | bd | f
Eliminar recursividad inmediata:
A bdB | fB
B cB | adB |
Finalmente:

S Aa | b
A bdB | fB
B cB | adB |
UTN - FRM: Fundamentos de sintaxis y semntica

60

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva61

Problema del retroceso


Sea: G = (N, T, S, P) donde
N = {<PROGRAMA>, <DECLARACIONES>, <PROCEDIMIENTOS> }
T = {module, d, p, ;, end}

S = <PROGRAMA>

El conjunto P de reglas de produccin es:


<PROGRAMA> ::= module <DECLARACIONES>; <PROCEDIMIENTOS> end
<DECLARACIONES> ::= d | d; <DECLARACIONES>
<PROCEDIMIENTOS> ::= p | p; <PROCEDIMIENTOS>

Anlisis aplicando derivaciones Leftmost:module d ; d ; p ; p end

UTN - FRM: Fundamentos de sintaxis y semntica

61

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva62

Gramticas LL(k) y analizadores


y

Caractersticas de los analizadores LL

Permiten el anlisis descendente sin retroceso,


usando un subconjunto de las G2
L = reconocimiento de la cadena de entrada de
izquierda a derecha
L = toman las derivaciones ms hacia la izquierda
("Leftmost") con slo mirar los k tokens situados a
continuacin de donde se halla
x si k=1 se habla de gramticas LL(1)

Posibilitan la construccin de analizadores


deterministas descendentes (slo examinan el
smbolo actual de la cadena de entrada, para
saber que produccin aplicar)
UTN - FRM: Fundamentos de sintaxis y semntica

62

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva63

Gramticas LR(k) y analizadores


y

Caractersticas de los analizadores LR

Eficiente anlisis ascendente sin retroceso


Detectan errores sintcticos rpidamente
L = lee entrada Left-to-right
R = aplican derivaciones Rightmost en sentido
inverso
x k = nmero de smbolos de entrada por delante
(lookaheads) que lee el analizador (gramtica LR(k))

Pueden construirse para la mayora de las G2


Complicados de construir
UTN - FRM: Fundamentos de sintaxis y semntica

63

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva64

Analizador ascendente
y

Sean

Produccin: EE+E|E*E|(E)|-E|id
Enunciado: id+id*id
Derivaciones por izquierda y por derecha

UTN - FRM: Fundamentos de sintaxis y semntica

64

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva65

Analizador ascendente
Pila

rbol

Entrada

UTN - FRM: Fundamentos de sintaxis y semntica

Regla

65

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva66

UTN - FRM: Fundamentos de sintaxis y semntica

66

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva67

Fases de anlisis
sup = alto*ancho;
anlisis lxico
(id,sup)(asignador)(id,alto)(opMult)(id,ancho)(separador)
anlisis sintctico
(asignador)
(id,sup)

(opMult)
(id,alto)

(id,ancho)

anlisis semntico

UTN - FRM: Fundamentos de sintaxis y semntica

67

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva68

Semntica
y

La sintaxis no es suficiente para describir un


lenguaje

Utilidad de las semnticas

int A;

lxica y sintcticamente correcto pero qu significa?

Definir qu deben hacer los enunciados de un


lenguaje
Implementar correctamente el lenguaje
Desarrollar tcnicas y herramientas de
x Anlisis y optimizacin, depuracin, verificacin, etc.

Ayudar a razonar sobre el funcionamiento de los


programas (recursos usados, correccin, )
UTN - FRM: Fundamentos de sintaxis y semntica

68

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva69

Semntica esttica
Se calcula en tiempo de compilacin
y Ejemplos de aspectos que controla
y

Correspondencia de la signatura de funciones


Accesos a variables consistentes con su
declaracin
Que identificadores y expresiones sean
evaluables
Que el Left-side sea asignable
Compatibilidad de expresiones y operadores
Accesibilidad de las variables segn su alcance
Uso de identificadores nicos
UTN - FRM: Fundamentos de sintaxis y semntica

69

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva70

Semntica dinmica
y

Ciertos significados se detectan en la ejecucin

Punteros con referencias nulas


Valores lmites de subndices de arreglos
Consistencia en el pasaje de argumentos
Otros: x := z / y si y == 0?

Errores de lgica que cambian la semntica de un


enunciado, NO SON DETECTABLES

Ejemplo de semntica dinmica en JS

x := z / y si lo que se quera escribir era x := z * y


Si z = 45;
Si z = 45;

entonces
entonces

UTN - FRM: Fundamentos de sintaxis y semntica

z + 5 = 455
z + 5 = 50
70

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva71

Especificacin de la semntica
y

Es deseable satisfacer caractersticas como:


No ambigedad: facilitar la creacin de descripciones rigurosas
Demostracin: permitir la posterior demostracin de
propiedades de los programas escritos en el lenguaje
especificado
Prototipado: posibilitar obtener prototipos ejecutables de los
lenguajes que se disean de forma automtica
Modularidad: realizar la especificacin de forma incremental
Reusabilidad: facilitar la reutilizacin de descripciones para
diferentes lenguajes
Legibilidad: ser legibles por personas con formaciones
heterogneas
Flexibilidad: adaptarse a la variedad de lenguajes existentes
Experiencia: ser capaz de describir lenguajes reales, no slo
quellos sencillos o experimentales

UTN - FRM: Fundamentos de sintaxis y semntica

71

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva72

Metodologas para especificar


y
y
y
y
y
y
y
y
y

Lenguaje Natural: con restricciones


Operacional: especifica las transiciones elementales de un programa
mediante reglas de inferencia
Denotacional: describe modelando los significados mediante
entidades matemticas bsicas
Axiomtica: define reglas de inferencia que caracterizan las
propiedades de las construcciones del lenguaje
Algebraica: define una estructura matemtica de forma abstracta
junto con las propiedades que debe cumplir
Mquina de Estado Abstracto: define algoritmos mediante una
mquina de estado y reglas de transicin
Semntica de Accin: define acciones que expresan computaciones
Mondica Modular: define mnadas y transformadores de ellas
Mondica Reutilizable: aade conceptos de programacin genrica

UTN - FRM: Fundamentos de sintaxis y semntica

72

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva73

Metodologas para especificar


Mquina de Estado Abstracto: se definen algoritmos
mediante una abstraccin del estado sobre el que se
trabaja y una serie de reglas de transicin entre
elementos de dicho estado.
y Semntica de Accin: se definen acciones, que expresan
computaciones.
y Mondica Modular: se definen mnadas y
transformadores de ellas (una mnada separa una
computacin del valor devuelto por la misma).
y Mondica Reutilizable: aade conceptos de
programacin genrica a la anterior.
y

UTN - FRM: Fundamentos de sintaxis y semntica

73

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

Diapositiva74

Resumen de caractersticas

R
R

Denotacional

Axiomtica

Algebrica

De estado abstacto

experiencia

flexibe

legible

prototipar

demostrar

Operacional

reusable

Lenguaje natural

Modular

No
ambigua

Semntica

De accin

Mondica modular

Mondica reutilizable

UTN - FRM: Fundamentos de sintaxis y semntica

74

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________

También podría gustarte