Ejercicio De Analisis Semantico

  • View
    2.958

  • Download
    2

  • Category

    Business

Preview:

DESCRIPTION

Ejercio de análisis semántico

Citation preview

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

GRAMATICAS CON ATRIBUTOS

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.

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

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

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

Gramática

Gramáticas con atributos

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).

• 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.

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

CONSTRUIMOS EL ARBOL ….

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

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

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

,

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

Dtype =real

Decla

Type Var-List

Float

Dtype =real

decl id, var-list

float

type

id var-list

id id

var-listtype

float

,

,

Dtype =real

Decla

Type Var-List 1

Float

id , Var-list2

Necesita encontrar estos valores

Heredamos del atributo padre

Var-list

Dtype =real

Dtype =realDtype =real

Decla

Type Var-List 1

Float

id , Var-list2

Dtype =realDtype =real

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

,

,

,

Dtype =real

Dtype =realDtype =real

Dtype =realDtype =real

Decla

TypeVar-List 1

Float id ,Var-list2

id

Dtype =real

Dtype =realDtype =real

Dtype =realDtype =real

Decla

Type Var-List 1

Float id , Var-list2

id

Float x , y

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

Gracias