Está en la página 1de 40

Unidad I: Análisis semántico

Lenguajes y Autómatas II
MTI. Rosa Imelda García Chi

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


1.2 Acciones semánticas de
un analizador sintáctico

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Análisis semántico
• Que es la semántica?
Se refiere a los aspectos del significado, sentido o
interpretación del significado de un determinado
elemento, símbolo, palabra, expresión o representación
formal.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Análisis semántico
• Se trata de determinar el tipo de los resultados
intermedios,
• comprobar que los argumentos que tiene un operador
pertenecen al conjunto de los operadores posibles, y si
son compatibles entre sí.

En definitiva, comprobará que el significado


de lo que se va leyendo es válido.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


El análisis semántico se
realiza posteriormente al La salida “teórica” de la fase
sintáctico y mucho más de análisis semántico sería
difícil de formalizar que un árbol semántico.
éste.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Análisis semántico

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


¿Qué es un árbol semántico?
• Es una estructura jerárquica en la cual se registran las
operaciones que implica u operan dentro del programa
fuente

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


¿Qué es un árbol semántico?
En cada una de las ramas del
árbol semántico se registra el
valor o significado que este
debe tener, y el análisis semántico
se encarga de terminar cual de
los valores registrados en las
ramas es aplicable.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Ejemplo:
Suponiendo que tenemos esta línea de código en C:

res=valor1+valor2; En C el símbolo (+) implica una suma


de valores o una unión de las cadenas

El análisis semántico se va a encargar que tanto el valor1


como el valor2 tengan datos que son compatibles en
común y que además se les pueda aplicar dicho
operador.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Tabla de símbolos

Un compilador necesita guardar y usar la


información de los objetos que se va
encontrando en el texto fuente, como
variables, etiquetas, declaraciones de
tipos, etc.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Tabla de símbolos
Esta información se almacena en una estructura
de datos interna conocida como tabla de
símbolos.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Tabla de símbolos
El compilador debe desarrollar una serie de
funciones relativas a la manipulación de
esta tabla como insertar un nuevo
elemento en ella, consultar la información
relacionada con un símbolo, borrar un
elemento, etc.
Como se tiene que acceder mucho a la tabla
de símbolos los accesos deben ser lo más
rápidos posible para que la compilación
sea eficiente.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Objetivo de la Tabla de Símbolos

Delimitar el contexto de un conjunto de frases o instrucciones de un


lenguaje libre de contexto.

Desde el punto del analizador sintáctico, lo único que se necesita identificar


es que determinadas palabras (pertenecientes a un COMPONENTE
SINTÁCTICO) deben aparecer precedidas o seguidas por otras palabras.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Utilidad de la Tabla de Símbolos
A
y
u
d
a
n
Si
em
p
n
lai
cf
ica
o
n
m
ela
p
rn
o
ális
b
si
aci
n
o
tác
n
est
SEic
o
M
.
Á
N
TI
C
A
S.

A
y
u
d
a
n

e
n

l
a

g
e
n
e
r
a
c
i
ó
n

d
e

c
ó
d
i
g
o
.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Contenido de la tabla de símbolos
Esencialmente la información que aparece en la tabla de símbolos es de dos
tipos:

• El propio símbolo, y
• Los atributos necesarios para definir el símbolo a nivel semántico y de generación de código.

Los atributos requeridos para cada símbolo depende a nivel general si:

• del tipo de gestión de memoria,


• el lenguaje está, o no, estructurado en bloques,
• el símbolo es, o no, parámetros de un procedimiento o función.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


CONSTRUCCIÓN DE LA TABLA DE SÍMBOLOS.

• 1. El analizador de léxico deberá:


– Insertar los símbolo detectados en la tabla de
símbolos,
– Crear la tabla de símbolos parcialmente,
– Señalar la línea del programa fuente en donde
aparecen.
• 2. El analizador semántico:
– Añadir los tipos, si procede, a los símbolos que
aparecen en la tabla de símbolos.
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Cuando se hace una implantación de una única pasada,
entonces los símbolos son insertados y calificados, a nivel
semántica y de generación de código, por el analizador
sintáctico y en el mismo instante que son detectados por el
analizador léxico y que son pasados al analizador sintáctico.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Operaciones sobre la tabla de símbolos.
I
C
N
O
N
S
S
E
U
LR
TT
A
A
R
R

M
O
D
I
F
I
C
A
R

(
a
ñ
a
d
i
r

a
t
r
i
b
u
t
o
s

n
u
e
v
o
s
)

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


El CUANDO y el CÓMO se usan estas operaciones dependen del tipo de
lenguaje:

Lenguajes con DECLARACIONES DE VARIABLES:


• Explícitas:
– Declaraciones: sólo INSERTAR.
– Referencia: sólo CONSULTAR.
• Implícitas:
– CONSULTAR si no está ya incluida.
– INSERTAR, en caso contrario.
– Lenguajes con estructura de BLOQUE : CREAR
SUBTABLAS.
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Campo dedicado para el símbolo

Formato fijo

• Apropiado cuando se establece límite en el número de caracteres que forman los símbolos y, además,
sea pequeño.
• En este caso sólo se dispone de un área fija en la tabla para almacenar el símbolo.

Formato variable

• Se dispone de la tabla de símbolos y de un área auxiliar en donde se introducen los símbolos de modo consecutivo.
• En la TS se sustituye el campo dedicado para el nombre del símbolo por un puntero al área auxiliar y un entero que
indica la longitud del mismo.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Campo “dirección”

Lenguajes SIN estructura de Bloque.

• Se asignan direcciones consecutivas según el orden en el que aparecen


declaradas.

Lenguajes CON estructura de Bloque.

• Para cada bloque se asigna una subtabla, la dirección será consecutiva


para cada bloque

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Se necesitan dos campos:

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Campo “Tipo”

Se introduce cuando se identifica una declaración explícita o


implícita de una variable.

Se utiliza para determinar la memoria de almacenamiento y para


la comprobación de tipos.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Campo Nº de dimensiones / Nºde parámetros

La realiza el analizador semántico y sirve para delimitar el tamaño de


memoria necesaria para representar el símbolo.

• (Ejemplo: el tamaño o dimensión de un array; si se trata de una función o


procedimiento, el número de argumentos que posee y sus tipos para la
reserva de memoria).

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Campos Lista cruzada de referencia y
Puntero de orden

Son útiles para el programador del traductor con


objeto de facilitar el uso de la TS.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Además de insertar, consultar y
modificar (completar la información
de un símbolo), cuando se trabaja con
bloques, se realizan además las
operaciones siguientes:
•Set (Marca de Inicio de bloque).
•Reset (Marca de Fin de bloque).

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
GRAMÁTICA CON ATRIBUTOS
Una gramática con atributos es una gramática de contexto libre cuyos
símbolos pueden tener asociados atributos y las producciones pueden tener
asociadas reglas de evaluación de los atributos.

Cada símbolo puede tener asociado un número finito de atributos.

Cada producción puede tener asociada un número finito de reglas de


evaluación de los atributos.

Los valores de los atributos deberán estar asociados con un dominio de


valores.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


…GRAMÁTICA CON ATRIBUTOS

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


ATRIBUTOS SINTETIZADOS

Evaluación:

• Las reglas de evaluación de los atributos sintetizados se realizan cuando se aplican reducciones en el análisis
sintáctico.

Requisitos para la evaluación:

• Las reglas de evaluación de los atributos deben definirse en función de los atributos asociados con los símbolos gramaticales a su derecha.
• Realizar un análisis ascendente.

Gramáticas S-Atribuidas:

• Cuando todos los atributos asociados con los símbolos gramaticales son sintetizados.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi
GRAFOS DE DEPENDENCIA
• Cuando aparecen definidos atributos sintetizados y heredados, es
necesario establecer un ORDEN DE EVALUACIÓN DE LOS ATRIBUTOS
• El grafo de dependencia es un grafo dirigido construido por el
algoritmo siguiente:
• Nodos:
– Para cada nodo del árbol de análisis n hacer:
– Para cada atributo s asociado a Los símbolos del nodo n hacer:
– Construir un nodo etiquetado con a.
• Arcos:
• Para cada regla semántica b=f(e1,...,e) asociada con la producción
del nodo n hacer:
– Para i=1,..n Hacer: Trazar arcos desde ci a b.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi


Métodos de Evaluación de las Reglas Semánticas:

• 1. Árbol de análisis: para cada entrada se


construye el árbol sintáctico (Grafos cíclicos).
• 2. Basado en las reglas semánticas:
Dependiendo de las reglas semánticas
(atributos heredados o sintetizados) se
establece el orden de evaluación.
• 3. Dirigido por sintaxis: El orden de evaluación
es impuesto por la estrategia de análisis.

Lenguajes y Autómatas 2 MTI. Rosa Imelda García Chi

También podría gustarte