ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

UNIDAD 1 AUTOMATAS 2


Enviado por   •  26 de Noviembre de 2014  •  2.990 Palabras (12 Páginas)  •  2.908 Visitas

Página 1 de 12

UNIDAD 1

1.1 ÁRBOLES DE EXPRESIONES…………………………………………………4

1.2 ACCIONES SEMÁNTICAS DE UN ANALIZADOR SINTÁCTICO…………4

1.3 COMPROBACIONES DE TIPOS DE EXPRESIONES………………………5

1.4 PILAS SEMÁNTICAS EN UN ANALIZADOR SINTÁCTICO……………….7

1.5 ESQUEMA DE TRADUCCIÓN………………………………………………….7

1.6 GENERACIÓN DE LA TABLA DE SÍMBOLOS Y DE DIRECCIONES…….8

1.7 MANEJO DE ERRORES SEMÁNTICOS……………………………………11

BIBILIOGRAFIA……………………………………………………..................14

3

UNIDAD 1

Análisis semántico

Bueno se refiere a los aspectos del significado, sentido o interpretación del

mismo de un determinado elemento, símbolo, palabra, expresión o

representación formal determina el tipo de resultados intermedios y que si

los argumentos que tiene un operador pertenecen al conjunto de los

operadores posibles.

Revisa si el significado de lo que se va leyendo es válido. el resultado de la

fase de análisis semántico viene siendo lo que se conoce como "árbol

semántico"

La semántica corresponde al significado asociado a las estructuras formales

(sintaxis) del lenguaje. Como las gramáticas (E)BNF —además

normalmente limitadas a LR o LL— no pueden describir todos los elementos

sintácticos del lenguaje, se hace preciso algún análisis adicional... Así, se

denomina tradicionalmente “análisis semántico” a todo aquello que forma

parte del frontal [front-end] más allá de lo que la gramática utilizada nos

permite: Tabla de símbolos Chequeos de tipos (y otros) Generación de

representación interna

El analizador semántico es la fase que sigue al análisis sintáctico. En esta

fase se explora el AST (árbol de sintaxis abstracta) con el fin de detectar los

errores semánticos. Al analizador semántico también se conoce como tree -parser.

4

1.1 ÁRBOLES DE EXPRESIONES

Es una estructura jerárquica en la cual se registran las operaciones que

realiza el programa fuente, en cada una de las ramas del árbol se registra el

valor o significado que este debe tener y el análisis analiza cuál de los

valores registrado en las ramas es aplicable.

Los árboles de expresiones representan el código de nivel del lenguaje en

forma de datos. Los datos se almacenan en una estructura con forma de

árbol. Cada nodo del árbol de expresión representa una expresión, por

ejemplo, una llamada al método o una operación binaria, como x < y.

1.2 ACCIONES SEMÁNTICAS DE UN ANALIZADOR SINTÁCTICO

Dependiendo del tipo de sentencias, las acciones semánticas pueden

agruparse en:

Sentencias de Declaración: completar la sección de tipos de la Tabla de

Símbolos.

5

Sentencias “ejecutables”: realizar comprobaciones de tipos entre los

operandos implicados.

Funciones y procedimientos: comprobar el número, orden y tipo de los

parámetros actuales en cada llamada a una función o procedimiento.

Identificación de variables: comprobar si un identificador ha sido declarado

antes de utilizarlo.

Etiquetas: comprobar si hay etiquetas repetidas y validación.

Constantes: comprobar que no se utilicen en la parte izquierda de una

asignación.

Conversiones y equivalencias de tipo: verificación.

Sobrecarga de operadores y funciones: detectar y solventar.

1.3 COMPROBACIONES DE TIPOS DE EXPRESIONES

E à literal {E.tipo = char}

E à num {E.tipo = entero}

E à id {E.tipo = Consultar_TS(id.entrada)}

E à id [E1] {id.tipo = Consultar_TS(id.entrada)}

La labor de comprobación de tipos consiste en conferir a las construcciones

sintácticas del lenguaje la semántica de tipificación y en realizar todo tipo de

comprobaciones de dicha índole. Por su naturaleza, sin embargo, ésta se

encuentra repartida entre la fase de análisis semántico y la generación de

código intermedio.

Tipos de comprobaciones semánticas

Comprobaciones estáticas

Las comprobaciones estáticas recogen el compendio de todas aquellas

tareas de carácter semántico que, por su naturaleza, pueden ser realizadas

directamente durante la fase de compilación mediante el uso de los

artefactos y mecanismos propios de dicha fase. Este tipo de

6

comprobaciones son beneficiosas puesto que confieren seguridad a la

ejecución del programa.

Comprobaciones dinámicas

Las comprobaciones dinámicas son aquellas que no se realizan durante la

fase de compilación y se delegan al momento de la ejecución del programa.

Ello requiere generar código ejecutable específicamente diseñado para

realizar tales comprobaciones.

Los lenguajes con una carga excesiva de comprobaciones dinámicas

generan programas más largos, lentos e inseguros en ejecución.

Tipos de comprobaciones semánticas estáticas

Gestión de declaraciones

Se encarga de registrar todas las declaraciones realizadas por el

programador a lo largo de los distintos ámbitos. Esta tarea implica el registro

de tipos y la comprobación de que no se produce ninguna colisión de

nombres con los identificadores de otras declaraciones.

Verificación de tipos

Comprueba la compatibilidad de tipos de todas las expresiones del código

fuente recuperando la información durante la gestión de declaraciones.

Además se asegura de que no existe en el programa ninguna referencia a

ningún símbolo no declarado.

Inferencia de tipos

En lenguajes sin tipificación de variables o con sobrecarga se aplican tareas

de inferencia de tipos en el nivel gramatical de las expresiones para resolver

el tipo de datos de la expresión resultante en función del contexto de

evaluación

7

1.4 PILAS SEMÁNTICAS EN UN ANALIZADOR SINTÁCTICO

Como podemos entender un analizador sintáctico ascendente utiliza durante

...

Descargar como (para miembros actualizados) txt (16 Kb)
Leer 11 páginas más »
Disponible sólo en Clubensayos.com