Sintaxis y Semantica de Lenguajes

78
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 1 UTN - FRM: Fundamentos de sintaxis y semántica 1 ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ____________________________________________________________

Transcript of Sintaxis y Semantica de Lenguajes

Page 1: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 1 

 

UTN - FRM: Fundamentos de sintaxis y semántica 1 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 2: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 2 

 

Introducción Lenguajes de programación◦ Programas◦ Lenguajes de alto nivel y de máquina◦ Traductores Especificaciones gramaticales y semánticas

Lenguajes formales◦ Alfabeto◦ Palabras

Sintaxis◦ Reglas de formación de palabras

Semántica◦ Significado de las palabras

UTN - FRM: Fundamentos de sintaxis y semántica 2 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 3: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 3 

 

Reconocimiento del código fuente de un programa

UTN - FRM: Fundamentos de sintaxis y semántica 3

Texto del programa(caracteres)

Lenguaje de máquina

Léxico

Sintáctico

Semántico

tokens

(palabras)

árboles

(frases)

Análisis

alfabeto

gramática

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 4: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 4 

 

Conceptos sobre lenguajes

SímbolosAlfabeto: = {a, b, c, ...}

Cadenas o palabrasn con n >= 0

0 = {} (vacío , , , )

* = 0 1 2 ...

+ = 1 2 ... = * - {}

Universo de un alfabeto W()Todas las palabras formadas con símbolos de

Lenguaje sobre un alfabeto L() W()

UTN - FRM: Fundamentos de sintaxis y semántica 4 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 5: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 5 

 

Conceptos sobre lenguajes

Operaciones con palabrasConcatenación: X.Y

Potencia: Xi

Reflexión: X, X‐1

Operaciones con lenguajesUnión: L1  L2 Intersección: L1  L2

Resta:L1 – L2 Concatenación: L1  L2

Potencia: Li Clausura: L+ = U∞i=1 Li

Cierre: L* = L+ U {} Reflexión: L‐1

UTN - FRM: Fundamentos de sintaxis y semántica 5 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 6: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 6 

 

Conceptos sobre lenguajes

Derivación◦ Regla de producción: x y : x, y *

◦ Derivación directa: v w

◦ Derivación: v v1 v2 … w

◦ Derivación por izquierda y por derecha

◦ Ejemplo:

01  11

00  10

¿Derivaciones para la palabra?

00011

◦ Regla compresora: x y si |y| < |x|

UTN - FRM: Fundamentos de sintaxis y semántica 6 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 7: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 7 

 

Gramáticas formales

DefiniciónG = {t, n, S, P}t: conjunto de símbolos terminalesn: conjunto de no-terminales (=t n y t n=)S: axioma : S nP: reglas de producción

Lenguaje generadoL(G) es el conjunto de todas las palabras o cadenas generadas

por la gramática.

EquivalenciaL(G1) = L(G2)

UTN - FRM: Fundamentos de sintaxis y semántica 7 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 8: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 8 

 

Gramáticas formales Sea P = { S -> a S b, S -> a S b b, S -> b }

¿ t = ? ¿ n = ? ¿ S = ? ¿Qué genera?

UTN - FRM: Fundamentos de sintaxis y semántica 8

Sea G = ({A}, {a, b, c}, P, S) ¿ conjunto P que genera L1 = {wcw / w E {a, b}*} ?

Sea ∑ = {a, b} y la palabra “aaba” ¿ dos reglas para obtener “aaab” por derecha ?

Sea ∑t = {a, b} ¿ gramática que genera { ar b / r > 0 } ?

Sea ∑t={a,b,c} ¿ gramática que genera { ar b cr/r≥0 } ?

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 9: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 9 

 

Jerarquía de ChomskyTipo 0 (sin restricciones) u v

u = x A yu (∑n ∑t)+

v, x, y (∑n ∑t)*

A ∑n

Tipo 1(sensible al contexto)x A y x v y

x, y (∑n ∑t)*

v (∑n ∑t)+

A ∑nS λ (regla compresora)

UTN - FRM: Fundamentos de sintaxis y semántica 9

0

1

2

3

Tipo 2 (independiente del contexto)A v

A ∑nv (∑n ∑t)*

Notación BNF, Pascal

Tipo 3 (regular a dcha. o izq.)A aBA aA λ

A, B ∑na ∑t

Expresiones regulares

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 10: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 10 

 

G3 (regulares)

Regular x derechaS 1A

A 1A | 0B | 0

B 0B | 0

UTN - FRM: Fundamentos de sintaxis y semántica 10

Regular x izquierdaS C0

C C0 | D1 | 1

D D1 | 1

Ambas generan11000

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 11: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 11 

 

G2 (independientes de contexto)

UTN - FRM: Fundamentos de sintaxis y semántica 11

G1 (no estricta)S AB

A 0A1 | λ

B 2B | λ

G2 (estricta)S AB | A | B | λ

A 0A1 | 01

B 2B | 2

G1 no es estricta ya que incluye reglas nulas asociadas a símbolos que no son el axioma

Ambas generan0n1n2m con n, m ≥ 0

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 12: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 12 

 

Árbol de derivación Sea G = { t, n, S, P }t: { 0, 1, [, ], +, * }n: { E }S: EP: { E[EE+], E[EE*], E0, E1 }

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

UTN - FRM: Fundamentos de sintaxis y semántica 12 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 13: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 13 

 

Árbol de derivación: ambigüedad Sea: S  S a S | S b S | c

¿ Qué pasa para cbcac ?

Sea: E E+E | E*E | E^E | id | (E)

◦ Necesidad de reglas de precedencia

* (izq a dcha) + (izq a dcha) ^ (dcha a izq)

E  E + E  |  E E E * E  |  E

E  E ^ E  |  E E id  |  (E)

Ejemplo en lenguaje Fortran:

x + algo(3, 4)

¿‘algo’ es un arreglo o una función?

UTN - FRM: Fundamentos de sintaxis y semántica 13 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 14: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 14 

 

<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 semántica 14

Árbol de derivación: ambigüedad

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 15: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 15 

 

Notación BNF y EBNF Es un meta-lenguaje Símbolos no terminales (abstractiones BNF) Símbolos terminales (lexemas)

BNF (John Bakus, Peter Naur Normal Form - 1959)Notación <símbolo> ‘a’ ‘+’ ::= ( ) |Ejemplo <dígito> ::= ‘0’ | ‘1’ | … | ‘9’

<número> ::= <dígito> <número>

<número> ::= <dígito>

EBNF (Extended BNF)Notación { }* o {} { }+ [ ]Ejemplo <dígito> ::= ‘0’ | ‘1’ | … | ‘9’

<número> ::= <dígito> {<dígito>}*

UTN - FRM: Fundamentos de sintaxis y semántica 15 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 16: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 16 

 

Diagramas sintácticos

UTN - FRM: Fundamentos de sintaxis y semántica 16 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 17: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 17 

 

BNF – EBNF – Diagramas BNF:

<expr> ::= <expr> ‘+’ <term> |

<expr> ‘-’ <term> | <term>

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

Diagrama sintáctico

UTN - FRM: Fundamentos de sintaxis y semántica 17

expr term

+

-term

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 18: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 18 

 

Notaciones para expresiones

UTN - FRM: Fundamentos de sintaxis y semántica 18

Infija Postfija Prefija

a + d * g - h a d g * + h - - + a * d g h

C

a = a + b

PostScript

/a a b add def

Lisp

(setf a (+ a b))

Infija: operadores entre los operandos

Postfija: operadores posteriores a los operandos

Prefija: operadores anteriores a los operandos

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 19: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 19 

 

UTN - FRM: Fundamentos de sintaxis y semántica 19 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 20: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 20 

 

Autómatas Permiten simular procesos para tratar información◦ la información se codifica en cadenas de símbolos◦ son “dispositivos” que manipulan cadenas de símbolos◦ procesan cadenas de entrada y producen cadenas de salida◦ reciben los símbolos de entrada secuencialmente

El símbolo de salida, en un instante dado depende de◦ el último símbolo de entrada◦ la secuencia o cadena, que ha recibido hasta ese instante◦ el estado en que se encuentra

Estado de un autómata◦ en un instante de tiempo dado, sólo puede estar en un estado◦ estado inicial y estados finales

Formas de descripción: gráfica, matricial, funcional Se usan como reconocedores de lenguajes Existen distintos tipos de autómatas

UTN - FRM: Fundamentos de sintaxis y semántica 20 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 21: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 21 

 

Máquina de Mealy

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 símbolo de entrada

◦ y es el símbolo de salida

La salida depende del estado actual y de la entrada

UTN - FRM: Fundamentos de sintaxis y semántica 21 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 22: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 22 

 

Máquina de Moore

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

La salida depende sólo del estado actual Para el mismo proceso, suelen tener más estados

que las máquinas de Mealy

UTN - FRM: Fundamentos de sintaxis y semántica 22 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 23: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 23 

 

Autómata finito determinista

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

Q: estados F: estados finales Qf: Q x Q Representaciones

UTN - FRM: Fundamentos de sintaxis y semántica 23

Habitualmente sólo se representan las transiciones que conducen al reconocimiento de alguna cadena, considerándose implícito un "estado

de captación global", donde se supone que llegan los arcos omitidos.

Notación funcionalf(1, a) 2f(1, b) 3f(2, a) 2f(3, b) 2f(3, $) 4f(4, $) 4f(4,2) 3

Notación matricial

a b $ 2

1 2 3 - -

2 2 - - -

3 - 2 4 -

4 - - 4 3

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 24: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 24 

 

q0

q1

q2 q3

1

0,10

λ,1

λ

Autómata finito no-determinista

AFND = (, q0, Q, F, f): alfabeto de entrada q0: estado inicial Q

Q: estados F: estados finales Qf: Q x ( {}) P(Q)

UTN - FRM: Fundamentos de sintaxis y semántica 24

1 0 1 0 0 …1

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 25: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 25 

 

Gramáticas G3 y autómatas Gramática regular

T = {0, 1}

N = {A, B, S}

P = { S ‐> 0A, A ‐> 0S, A ‐> 1B, B ‐> 1, B ‐> 0 }

Autómata

Expresión regular0.(0.0)*.1.(1|0)

UTN - FRM: Fundamentos de sintaxis y semántica 25 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 26: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 26 

 

Expresiones regulares

Introducidas en 1956 por Kleene◦ Describen AEF

Operadores

Unión | V +

Concatenación .

Cierre (Kleene) *

Cierre (positivo) +

Sea a.(b|c*).d ¿cuál es el AEF y la gramática?

UTN - FRM: Fundamentos de sintaxis y semántica 26 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 27: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 27 

 

Propiedades de las ER

UTN - FRM: Fundamentos de sintaxis y semántica 27

Sea L = {a, b, c}*¿ Son equivalentes: c*.c | c* = c* ?

1)

2)

3)

4)

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 28: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 28 

 

Expresiones regulares y AEF

UTN - FRM: Fundamentos de sintaxis y semántica 28

qi qk qfa ba.bqi qf

a

ba|b

qi qk qf

E E

a

a*

Se pueden transformar aplicando reglas de la forma:

Existen algoritmos formales◦ Algoritmo de McNaughton-Yamada-Thompson

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 29: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 29 

 

Algoritmo de transformación

UTN - FRM: Fundamentos de sintaxis y semántica 29

Por ejemplo sea (1 | 0)*1 se obtiene un AFND

luego se lo convierte a

un AFD

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 30: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 30 

 

Equivalencia de autómatas

UTN - FRM: Fundamentos de sintaxis y semántica 30

AFND AFD Un AFD es un caso particular de AFND Sean N=(∑, q0, Q, F, f) y D=(∑, {q’0}, Q’, F’, f ’)

◦ N = D / L(D)=L(N)◦ Si se cumple: Q’ = 2|Q| (conjunto potencia P(Q) ) q’i = [qi , …, qf ] => {qi , …, qf} Q’

q’0 = {q0} F’ = { q’ Q’ / q’ ∩ F ≠ } (al menos uno sea final)

f ’(q’, a) = { qq’ f(q, a)} / q Q ^ a ∑

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 31: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 31 

 

Equivalencia de autómatas Se basa en la construcción de subconjuntos La idea general es que cada estado del AFD

le corresponde un conjunto de estados del AFND

Algoritmo:◦ Para cada estado del AFND y cada símbolo de

entrada, analizar cuáles estados son alcanzables◦ Agrupar esos estados en estados compuestos◦ Hacer lo mismo con los estados compuestos◦ Finalmente, eliminar los estados que no son

alcanzables (menos inicial y final)

UTN - FRM: Fundamentos de sintaxis y semántica 31 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 32: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 32 

 

Equivalencia de autómatas

AFND

AFD: estados alcanzables desde {q0}

UTN - FRM: Fundamentos de sintaxis y semántica 32 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 33: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 33 

 

Minimización de autómatas

UTN - FRM: Fundamentos de sintaxis y semántica 33

Sean AFD=(∑, q0, Q, F, f) =AFDM=(∑, q’0, Q’, F’, f ’) / L(AFD)=L(AFDM)a) Eliminar los estados no alcanzables desde el estado inicialb) Eliminar los estados desde los que no se alcanza un estado finalAlgoritmo:

1. partición inicial P en dos grupos G’(F), G’’(Q – F)2. G de P (|G| > 1) obtener nueva Pn de modo que:

1. qi, qj Gi <=> ∑ / f(qi, ), f(qj, ) Gi

2. sustituir G en Pn por el nuevo conjunto de subgrupos3. si Pn= P (indistinguibles) entonces Pfinal := P e ir a (5)4. sino P := Pn e ir a (2)5. elegir en cada grupo de Pfinal, un qi como representante del

grupo6. se eliminan estados pasivos (que no son finales y hay transiciones

hacia ellos, pero no desde ellos hacia otros estados)

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 34: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 34 

 

Minimización de autómatas

Sea el AFD que reconoce L = (a|b)*abb

Minimización:1. P := G1{Q5} + G2{Q1,Q2,Q3,Q4}

2. Pn := {Q5} y (Q1, Q2, Q3) x b G2 y Q4 x b G1

3. Pn := G1{Q5} + G2{Q1, Q2, Q3} + G3{Q4}

4. si Pn ≠ P entonces P := Pn y repite

5. Pn := {Q5} + {Q4} y {Q1, Q3} x b G2 y Q2 x b G3

6. Pn := G1{Q5} + G2{Q4} + G3{Q1, Q3} + G4{Q2}

7. como Pn ≠ P entonces P := Pn y repite

pero se obtiene la misma P

1. luego Pn = P entonces

Pfinal := P

1. Q1 representa a G3

UTN - FRM: Fundamentos de sintaxis y semántica 34 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 35: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 35 

 

Conceptos

UTN - FRM: Fundamentos de sintaxis y semántica 35

Lenguajes regulares

Gramáticas regulares (G3)

Expresiones regulares

Autómatas de estado finito

Lema del bombeoSi Lr∞ => xyz є L / y ≠ λ, xynz є L para n > 0

Exp. Reg. Y AEF

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 36: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 36 

 

Casos AEFND AEFD

Minimizar

UTN - FRM: Fundamentos de sintaxis y semántica 36 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 37: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 37 

 

Autómatas de pila

UTN - FRM: Fundamentos de sintaxis y semántica 37

Autómata de PilaAP = ( Σ, , Q, a0, q0, F, f ) Σ: alfabeto de entrada: alfabeto de pila q0: estado inicialQ: conjunto de estados F: estados finalesa0: símbolo inicial pila f: Q ({ε}) Q

Controlpila

cinta

Para cada gramática G independiente del contexto, existe un autómata de pila M tal que L(G)=L(M)

Los símbolos en la pila se ordenan en sentido cima base (convención)

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 38: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 38 

 

Gramáticas G2 y AP

UTN - FRM: Fundamentos de sintaxis y semántica 38

Descripción instantánea: terna (q, h / w) donde: q = estado actualh = símbolo leído de la cima de la pilaw = símbolo escrito en la pila

Gramática libre de contexto

T = {a, b} N = {S}

P = { S -> aSb| λ }

L1 = {anbn / n >= 0}

Autómata de Pila

Σ: {a, b} q0: e0

: {#, $} F: {e3}

Q: {e0,e1,e2,e3} a0:

q0 q2q1 q3,

a, a

b, a

b, a

, $ $

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 39: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 39 

 

Autómatas de pila Descripción funcional

f: e0 x ε x ε e1 x $e1 x ε x ε e2 x εe1 x 0 x ε e1 x #e2 x ε x $ e3 x εe2 x 1 x # e2 x ε

Descripción tabular

UTN - FRM: Fundamentos de sintaxis y semántica 39

Estado Entrada Pila Transición

e0 ε ε e1,$

e1 ε ε e2,ε

e1 0 ε e1,#

e2 ε $ e3,ε

e2 1 # e2,ε

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 40: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 40 

 

Autómatas de pila

Reconocimiento por vaciado de pilaLvp(M)= {w Σ* / (q0, w, a0) (p, ε, ε), p Q}

Reconocimiento por estado finalLef(M)={w Σ*/ (q0, w, a0) (p, ε, h), p F, h *}

Lvp puede ser diferente de Lef

UTN - FRM: Fundamentos de sintaxis y semántica 40 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 41: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 41 

 

Autómatas de pila 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

Construcción de un AP (Σ, Γ, 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 semántica 41 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 42: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 42 

 

Autómatas de pila y gramáticas

Representar G2 con AP◦ AP ( Σ, , Q, a0, q0, F, f ) entonces construir

APND=(Σ, Σ N, {q}, S, q, fi, f) sea A→w P entonces (q, w) f(q, ε, A) sea a Σ entonces (q, ε)  f(q, a, a)◦ El reconocimiento es por vaciado de pila◦ Sea P = { S→0S1, S→c } entonces f(q, ε, A)= {(q, 0S1), (q, c)}

f(q, 0, 0)= f(q,1,1)= f(q, c, c)= {(q, ε)}

UTN - FRM: Fundamentos de sintaxis y semántica 42 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 43: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 43 

 

Algoritmo para convertir G2 en AP

UTN - FRM: Fundamentos de sintaxis y semántica 43

Dada una gramática G independiente del contexto, se construye un autómata de pila M de la siguiente forma:

1. Designar el alfabeto de M como los símbolos terminales de G; y los símbolos de pila de M como los símbolos terminales y no terminales de G, junto con # (si # no es un símbolo terminal o no terminal a G)

2. Designar los estados de M como i, p, q y fi; donde i es el estado inicial y fi es el único estado de aceptación

3. Agregar la transición (i, ,; p, #)

4. Agregar una transición (p, ,; q, S) donde S es el símbolo inicial de G

5. Agregar una transición de la forma (q, ,N; q,w) para cada regla de reescritura Nw en G, donde w puede ser una cadena de cero o mas símbolos, incluyendo terminales y no terminales

6. Agregar una transición de la forma (q, x, x; q, ) para cada terminal x de G (para cada símbolo del alfabeto de M)

7. Agregar la transición (q, , #; fi, )

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 44: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 44 

 

Algoritmo para convertir G2 en AP

SzMNzMaMaMzNbNbNz

UTN - FRM: Fundamentos de sintaxis y semántica 44

Σ = {a, b, z} = {a, b, z, S, M, N, #}Q = {i, p, q, fi}a0 = #q0 = iF = fi

G2: AP:

Comportamiento

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 45: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 45 

 

Autómata Linealmente AcotadoALA= (Q, ∑, , , e0, b, F) donde b = blanco

longitudcinta = longitudcadena

Q: conjunto finito estados∑ : alfabeto de entrada; ∑ (input) : ∑ {b} otros símbolos, b ∑ (output)

: Q x Q x x {D, I, N}e0: estado inicial QF: estados finales Q

UTN - FRM: Fundamentos de sintaxis y semántica 45

cinta

Controlestados

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 46: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 46 

 

Máquinas de TuringAP = (, Σ, b, Q, q0, F, f)Σ: alfabeto de entrada Σc: alfabeto de la cintab: blanco Σc, ΣeQ: conjunto de estadosq0: estado inicial QF: estados finales Qf: Q x Σc Q x Σc x {I, D, P}

UTN - FRM: Fundamentos de sintaxis y semántica 46

cinta

Controlestados

… …

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 47: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 47 

 

Máquinas de Turing

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 situación para la que no hay definido

movimiento (se detiene rechazando la entrada)◦ ante determinada entrada, la máquina 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 semántica 47 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 48: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 48 

 

Máquinas de Turing

Máquina que acepta el lenguaje de palabras sobre {0, 1} que comienzan y terminan con el mismo símbolo

UTN - FRM: Fundamentos de sintaxis y semántica 48 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 49: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 49 

 

Máquinas de Turing

UTN - FRM: Fundamentos de sintaxis y semántica 49

0q 1q 2q

3q

R,1$

L,1

L,

R$,1 L,11 R,11

R,

Concatenador

Duplicador

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 50: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 50 

 

Gramáticas y autómatas

UTN - FRM: Fundamentos de sintaxis y semántica 50

3: lenguajes regulares

autómatas finitos

2: lenguajes independientes del contexto autómatas de pila1: lenguajes sensibles al contexto

autómatas linealmente acotados

0: lenguajes irrestrictos máquinas de Turing

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 51: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 51 

 

UTN - FRM: Fundamentos de sintaxis y semántica 51 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 52: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 52 

 

Análisis léxico Scanner◦ agrupar caracteres de entrada en tokens◦ detectar algunos significados y errores a veces debe realizar una doble función: identificar el token y

“evaluar” el token

◦ introducir información adicional algunos tokens requieren algo más que su propia identificación constantes: su valor, identificadores: el string, etc.

◦ eliminar separadores innecesarios ◦ sustituir macros

UTN - FRM: Fundamentos de sintaxis y semántica 52 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 53: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 53 

 

Análisis léxico

UTN - FRM: Fundamentos de sintaxis y semántica 53 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 54: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 54 

 

Análisis léxico

UTN - FRM: Fundamentos de sintaxis y semántica 54

lexema

• secuencia de caracteres, que se asocia a un token

token

• nombre de cada componente léxico

patrón

• conjunto de lexemas

Enunciado

index = 2 * count + 17

Lexemasindex=2*count+17;

Tokensidentifierequal_signint_literalmult_opidentifierplus_opint_literalsemicolon

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 55: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 55 

 

Análisis sintáctico Parser◦ agrupar los tokens suministrados por el scanner

para reconocer frases determinar si son sintácticamente correctas establecer la estructura subyacente

◦ recibir tokens y agruparlos de acuerdo a producciones especificadas por la G3◦ detectar errores sintácticos◦ generar árboles sintácticos

UTN - FRM: Fundamentos de sintaxis y semántica 55 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 56: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 56 

 

Análisis sintáctico

UTN - FRM: Fundamentos de sintaxis y semántica 56

Proceso de análisis

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 57: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 57 

 

Análisis sintáctico

UTN - FRM: Fundamentos de sintaxis y semántica 57

Árboles de sintaxis◦ Concreta: sirve para el análisis sintáctico◦ Abstracta: sirve para el análisis semántico

Sea: S if expr then A endif ;

Concreta Abstracta (AST)

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 58: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 58 

 

Análisis sintáctico Analizadores recursivos cada no-terminal tiene asociada una rutina de análisis,

creada a partir de las reglas gramaticales scan de izquierda a derecha

Estrategias de análisis◦ DESCENDENTE(Top-Down) construye el árbol desde la raíz (S) hacia las hojas problemas con recursividad a izquierda

◦ ASCENDENTE(Bottom-Up) construye el árbol desde las hojas hacia la raíz (S) se basa en encontrar una derivación por la derecha

UTN - FRM: Fundamentos de sintaxis y semántica 58 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 59: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 59 

 

Analizador por izquierda (a)

UTN - FRM: Fundamentos de sintaxis y semántica 59

Sea la gramática 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

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 60: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 60 

 

Analizador por izquierda (b)

UTN - FRM: Fundamentos de sintaxis y semántica 60

Sea la gramática 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

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 61: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 61 

 

Recursividad a izquierda

Analizador top-down no puede procesarla RI Inmediata

A A |

Para eliminarla◦ Se trabaja con el término (que no es RI)

A BB B |

UTN - FRM: Fundamentos de sintaxis y semántica 61 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 62: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 62 

 

Eliminación recursividad izq. Sea

S Aa | b

A Ac | Sd | f

◦ Reemplazar: A Sd por A Aad | bd

◦ Queda: A Ac | Aad | bd | f

◦ Eliminar recursividad inmediata:

A bdA’ | fA’

A’ cA’ | adA’ | ◦ Finalmente:

S Aa | b

A bdA’ | fA’

A’ cA’ | adA’ |

UTN - FRM: Fundamentos de sintaxis y semántica 62

Resolver:S a B | cB B a | c

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 63: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 63 

 

Analizador descendente Problema del retroceso, sea: G = (N, T, S, P)N = {<PROGRAMA>, <DECLARACIONES>, <PROCEDIMIENTOS> }

T = {module, d, p, ;, end}

S = <PROGRAMA>

P = {

<PROGRAMA> ::= module <DECLARACIONES>; <PROCEDIMIENTOS> end

<DECLARACIONES> ::= d | d; <DECLARACIONES>

<PROCEDIMIENTOS> ::= p | p; <PROCEDIMIENTOS> }

Analizar aplicando derivaciones Leftmost module d ; d ; p ; p end

UTN - FRM: Fundamentos de sintaxis y semántica 63

_

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 64: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 64 

 

Análisis sintáctico Gramáticas LL(k) y analizadores◦ subconjunto de las gramáticas libres de contexto◦ permiten un análisis descendente sin retroceso◦ L = reconocimiento de la cadena de entrada de

izquierda a derecha ◦ L = toman las derivaciones más hacia la izquierda

("Leftmost") con sólo mirar los k tokens situados a continuación de donde se halla si k=1 se habla de gramáticas LL(1)◦ permiten construir un analizador determinista

descendente sólo examinan en cada momento el símbolo actual de la

cadena de entrada para saber que producción aplicar

UTN - FRM: Fundamentos de sintaxis y semántica 64 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 65: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 65 

 

Análisis sintáctico

Gramáticas LR(k) y analizadores◦ Analizadores LR L = lee entrada de izquierda a derecha (Left-to-right) R = analiza aplicando derivaciones más a la derecha

en sentido inverso (Rightmost) k = número de símbolos de entrada por delante

(lookaheads) que lee el analizador (gramática LR(k)) eficiente análisis ascendente sin retroceso detectan errores sintácticos rápidamente pueden construirse para la mayoría de las G2 complicados de construir

UTN - FRM: Fundamentos de sintaxis y semántica 65 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 66: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 66 

 

Analizador ascendente Sean◦ Producción: E→E+E | E*E | (E) | -E | id◦ Enunciado: id+id*id◦ Derivaciones:

UTN - FRM: Fundamentos de sintaxis y semántica 66 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 67: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 67 

 

Analizador ascendente

Esquema del algoritmo

UTN - FRM: Fundamentos de sintaxis y semántica 67 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 68: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 68 

 

Analizador ascendente

UTN - FRM: Fundamentos de sintaxis y semántica 68

Pila Árbol Entrada Regla

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 69: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 69 

 

UTN - FRM: Fundamentos de sintaxis y semántica 69 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 70: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 70 

 

análisis léxico

UTN - FRM: Fundamentos de sintaxis y semántica 70

sup = alto*ancho;

Fases de análisis

(id,sup)(asignador)(id,alto)(opMult)(id,ancho)(separador)

análisis sintáctico

análisis semántico

(asignador)

(id,sup) (opMult)

(id,alto) (id,ancho)

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 71: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 71 

 

Semántica La sintaxis no es suficiente para describir un

lenguaje. La semántica:◦ Define “qué hacen” los enunciados de un lenguaje.◦ Posibilita implementar correctamente el lenguaje.◦ Sirve para desarrollar técnicas y herramientas de: Análisis y Optimización Depuración Verificación Transformación

◦ Ayuda a “razonar sobre el funcionamiento” de un programa (recursos usados, corrección, …)

UTN - FRM: Fundamentos de sintaxis y semántica 71 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 72: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 72 

 

Semántica estática Se calcula en tiempo de compilación◦ Tipología de datos De la signatura de funciones Accesos a variables deben coincidir con su declaración Identificadores y expresiones deben ser evaluables Left-side debe ser asignable Expresiones, funciones y operadores compatibles

◦ Flujo de control Accesibilidad de las variables para su uso

◦ Unicidad Uso de identificadores únicos

Ejemplovar A: integer; Significado almacenamiento para A

UTN - FRM: Fundamentos de sintaxis y semántica 72 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 73: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 73 

 

Semántica dinámica Ciertos significados se pueden detectar durante

la ejecución◦ Punteros con referencias nulas◦ Valores límites de subíndices de arreglos◦ Consistencia en el pasaje de argumentos◦ Otros: x := z / y ¿si y == 0?

Otros no es posible◦ Errores de “lógica” cambian la semántica de un

enunciado, pero no son estrictamente, errores semánticos de los enunciadosx := z / y si lo que se quería escribir era x := z * y

Ejemplos = “hola”; s = 45.78; “25” + 5 “255”

UTN - FRM: Fundamentos de sintaxis y semántica 73 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 74: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 74 

 

Especificación de la semántica La especificación sintáctica, en notación BNF es prácticamente

universal, en tanto que para la semántica, existen diversas técnicas sin que ninguna sea universal.

Es deseable satisfacer características tales como:◦ No ambigüedad: facilitar la creación de descripciones rigurosas.◦ Demostración: permitir la posterior demostración de propiedades de

los programas escritos en el lenguaje especificado.◦ Prototipado: posibilitar obtener prototipos ejecutables de los lenguajes

que se diseñan de forma automática.◦ Modularidad: realizar la especificación de forma incremental.◦ Reusabilidad: facilitar la reutilización de descripciones en diferentes

lenguajes.◦ Legibilidad: ser legibles por personas con formaciones heterogénea. ◦ Flexibilidad: adaptarse a la variedad de lenguajes existentes.◦ Experiencia: ser capaz de describir lenguajes reales, no sólo sencillos o

experimentales.

UTN - FRM: Fundamentos de sintaxis y semántica 74 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 75: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 75 

 

Metodologías para especificar Lenguaje Natural: con restricciones. Operacional: se especifican las transiciones elementales

de un programa mediante reglas de inferencia definidas por inducción sobre su estructura.

Denotacional: se describe modelando los significados mediante entidades matemáticas básicas.

Axiomática: se definen una serie de reglas de inferencia que caracterizan las propiedades de las diferentes construcciones del lenguaje.

Algebraica: permite definir una estructura matemática de forma abstracta junto con las propiedades que debe cumplir.

UTN - FRM: Fundamentos de sintaxis y semántica 75 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 76: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 76 

 

Metodologías para especificar

UTN - FRM: Fundamentos de sintaxis y semántica 76

Máquina de Estado Abstracto: se definen algoritmos mediante una abstracción del estado sobre el que se trabaja y una serie de reglas de transición entre elementos de dicho estado.

Semántica de Acción: se definen acciones, que expresan computaciones.

Monádica Modular: se definen mónadas y transformadores de ellas (una mónada separa una computación del valor devuelto por la misma).

Monádica Reutilizable: añade conceptos de programación genérica a la anterior.

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 77: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 77 

 

Resumen de características

UTN - FRM: Fundamentos de sintaxis y semántica 77

NAM MOD REU DEM PRO LEG FLE EXP

Nat. S S Reg S S

Oper. S Reg Reg Reg S S

Deno. S S Reg S Reg

Axio. Reg S Reg S

Alge. S Reg S S Reg Reg R

Estad. S S Reg Reg S Reg S

Acc. S S Reg Reg S Reg Reg

Modu. S S S Reg S

Reuti. S S S S S S

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________ 

   

Page 78: Sintaxis y Semantica de Lenguajes

UTN – FRM: Sintaxis y Semántica de Lenguajes  Diapositiva 78 

 

Implementación de la semántica

UTN - FRM: Fundamentos de sintaxis y semántica 78

Hardware

Lenguaje de máquina

Lenguaje ensamblador o pseudolenguajes

Implementación de la semántica

Atr

ibut

os

Ope

raci

onal

Den

otat

iva

Axi

omát

ica

...

Nat

uralEspecificaciones

semánticas

Estructuras de datos + algoritmos

Construircompilador(traductor)

Construirenlazador o intérprete

Intérprete en hardware

C, C++, Java, Ruby, JS, PHP, Ada, Pascal, Cobol, Fortran, …

 

 

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

____________________________________________________________