22
UNIVERSIDAD NACIONAL DE LOJA ÁREA DE LA ENERGÍA, LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES. CARRERA DE INGENIERIA EN SISTEMAS MODULO IX “PROYECTOS FINAL” TEMA: Análisis semántico INTEGRANTES: Catalina Cobos Carla Espinosa LOJA 2010

Ejercicio De Analisis Semantico

Embed Size (px)

DESCRIPTION

Ejercio de análisis semántico

Citation preview

Page 1: Ejercicio De Analisis Semantico

UNIVERSIDAD NACIONAL DE LOJA

ÁREA DE LA ENERGÍA, LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO

RENOVABLES.

CARRERA DE INGENIERIA EN SISTEMAS

MODULO IX

“PROYECTOS FINAL”

TEMA:

Análisis semántico INTEGRANTES:

Catalina Cobos Carla Espinosa

LOJA 2010

Page 2: Ejercicio De Analisis Semantico

GRAMATICAS CON ATRIBUTOS

Page 3: Ejercicio De Analisis Semantico

Antes de empezar a desarrollar el ejercicio debemos tener bien claro lo siguienteDebido a que nuestro ejercicio es de tipo heredado debemos saber

que:

• Los atributos heredados tienen dependencias que fluyen ya sea de

padre a hijos en el árbol de análisis gramatical (a lo que deben su

nombre) o de hermano a hermano.

• La razón para que él atributo sea heredado es su algoritmo, la

herencia entre hermanos a menudo se implementa de tal manera

que los valores de atributo se pasen de hermano a hermano u a

través del padre.

Page 4: Ejercicio De Analisis Semantico

EXPLICACIÓN

• Determinar para que vamos a utilizar la

gramática. Declaración de variables de tipo C

• Identificar el tipo de dato del atributo o el valor

de la expresión.

• Determinar las ecuaciones con respecto a los

atributos.

• Analizar bien el enunciado que nos presenta este

ejercicio

Page 5: Ejercicio De Analisis Semantico

TABLA CON LAS REGLASA continuación presentamos el formato que debe tener la tabla para resolver el ejercicio:

Page 6: Ejercicio De Analisis Semantico

• Ejercicio : Considere la siguiente gramática simple para declaraciones de variable en una sintaxis tipo C:

Gramática

Gramáticas con atributos

Page 7: Ejercicio De Analisis Semantico

Enunciado del Ejercicio

• Queremos definir un atributo de tipo de datos

para las variables dadas por los identificadores

en una declaración y escribir ecuaciones que

expresen cómo está relacionado el atributo de

tipo de datos con el tipo de la declaración.

Hacemos esto construyendo una gramática con

atributos para un atributo dtype (utilizamos el

nombre dtype para distinguir el atributo del no

terminal type).

Page 8: Ejercicio De Analisis Semantico

• En primer lugar, los valores de dtype son del

conjunto (integer, real) que corresponde a los

tokens int y float. El no terminal type tiene un

dtype dado por el token que representa. Este

dtype corresponde al dtype de la var-list entera,

por la ecuación asociada con la regla gramatical

para decl. Cada id en la lista tiene este mismo

dtype, por las ecuaciones asociadas con var-list.

Advierta que no hay ecuación que involucre el

dtype del no terminal decl. En realidad, una

decl no necesita tener un dtype: no es necesario

especificar el valor de un atributo para todos los

símbolos gramaticales.

Page 9: Ejercicio De Analisis Semantico

Desarrollo del Ejercicio

Para una mejor comprensión y

elaboración de las reglas semánticas

comenzaremos construyendo un árbol a

partir de una cadena valida.

Cadena Float x , y

Para irnos ayudando podemos ir realizando las

derivaciones como se muestra a continuación

Page 10: Ejercicio De Analisis Semantico

CONSTRUIMOS EL ARBOL ….

Page 11: Ejercicio De Analisis Semantico

Decla Type Var-List

decl var-listtype

2. Construimos el árbol a partir de la cadena: Float x , y

1. Partimos de la gramática

Page 12: Ejercicio De Analisis Semantico

Dtype =real

Decla

Type Var-List

Float

decl id, var-list

float

type

id var-list

var-listtype

, dtype type = int Integer

type = float Real

Page 13: Ejercicio De Analisis Semantico

Dtype =real

Decla

Type Var-List

Float

Necesita encontrar este valor

Tomamos el valor del

hermano Type

Dtype =real

decl id, var-list

float

type

id var-list

var-listtype

,

Page 14: Ejercicio De Analisis Semantico

Dtype =real

Decla

Type Var-List

Float

Necesita encontrar este valor

Tomamos el valor del

hermano Type

decl id, var-list

float

type

id var-list

id id

var-listtype

float

,

,

Dtype =real

Page 15: Ejercicio De Analisis Semantico

Dtype =real

Decla

Type Var-List

Float

Dtype =real

decl id, var-list

float

type

id var-list

id id

var-listtype

float

,

,

Page 16: Ejercicio De Analisis Semantico

Dtype =real

Decla

Type Var-List 1

Float

id , Var-list2

Necesita encontrar estos valores

Heredamos del atributo padre

Var-list

Dtype =real

Page 17: Ejercicio De Analisis Semantico

Dtype =realDtype =real

Decla

Type Var-List 1

Float

id , Var-list2

Dtype =realDtype =real

Page 18: Ejercicio De Analisis Semantico

Dtype =realDtype =real

Decla

Type Var-List 1

Float

id , Var-list2

decl id, var-list

float

type

id var-list

id id

var-listtype

X Y

float

float

,

,

,

Page 19: Ejercicio De Analisis Semantico

Dtype =real

Dtype =realDtype =real

Dtype =realDtype =real

Decla

TypeVar-List 1

Float id ,Var-list2

id

Page 20: Ejercicio De Analisis Semantico

Dtype =real

Dtype =realDtype =real

Dtype =realDtype =real

Decla

Type Var-List 1

Float id , Var-list2

id

Float x , y

Page 21: Ejercicio De Analisis Semantico

Finalmente la tabla nos quedaría así:

Regla Gramatical Reglas Semánticas

decl type var-listtype inttype floatvar-list 1 id, var-list2

var-list id

var-list.dtype = type.dtypetype.dtype = integertype.dtype = realid.dtype = var-list1.dtypevar-list2.dtype = var-list1.dtypeid.dtype = var-list.dtype

Page 22: Ejercicio De Analisis Semantico

Gracias