Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Programacion: Análisis Semántico y Chequeo de Tipos




Enviado por Pablo Turmero



Partes: 1, 2, 3

    Monografias.com

    Resumen
    Introducción
    Tablas de Símbolos
    Chequeo Semántico
    Chequeo de Tipos
    Semántica de un Programa Orientado a Objetos
    Tipos Polimórficos

    Monografias.com

    ¿Dónde estamos?
    Analizador Léxico (Scanner)
    Analizador Sintáctico (Parser)
    (Gp:) Token Stream

    Arbol de Parseo
    (Gp:) Programa (character stream)

    Monografias.com

    ¿Dónde estamos?
    Analizador Léxico (Scanner)
    Analizador Sintáctico (Parser)
    (Gp:) Token Stream

    Arbol de Parseo
    (Gp:) Programa (character stream)

    Analizador Semántico
    Generador de Código Intermedio
    Representación Intermedia + Tabla de Símbolos

    Monografias.com

    ¿Qué es la semántica de un programa?
    Sintáxis
    Cómo se ve un programa
    Representación textual o estructura
    Es posible dar una definición matemática precisa

    Semántica
    Cuál es el significado del programa
    Es más difícil dar una definición matemática precisa

    Monografias.com

    Por qué hacer análisis semántico
    Asegurarnos que el programa cumple con la definición del lenguaje de programación
    Proveer mensajes de error útiles al usuario

    Monografias.com

    Tabla de Símbolos
    Un lugar para guardar toda la información adicional acerca del programa
    Representaciones intermedias: expresiones, statements, control de flujo, etc.
    Tabla de Símbolos: Tipos, variables, scope, etc.

    Monografias.com

    Scope
    Un nombre puede tener significados distintos en lugares distintos
    Tipos, variables, etc tiene scope (ámbito)
    Tenemos que mantener una tabla de símbolos para cada scope

    Monografias.com

    Operaciones en la tabla de símbolos
    make_table(parent_table) ? symbol_table
    scope(id) ? symbol_table
    lookup_variable(id, symbol_table) ? variable
    lookup_type(id, symbol_table) ? type
    get_type(variable) ? type
    add_type(id, symbol_table, type) ? type
    add_variable(id, symbol_table, type) ? variable

    Monografias.com

    Siguiente Clase
    Todo acerca de tablas de símbolos
    Scopes y visibilidad
    Información que se mantiene en la tabla de símbolos
    Implementación de tablas de símbolos

    Monografias.com

    Chequeo Semántico
    Chequeos estáticos vs. Chequeos dinámicos
    Chequeos estáticos
    Chequeos de control de flujo
    Chequeos de unicidad
    Chequeos de Tipo

    Monografias.com

    Chequeos de Control de Flujo
    El control de flujo del programa es sensitivo al contexto
    Ejemplos:
    Declaración de una variable debe ser visible al usarla (en scope)
    Declaración de una variable debe estar ántes de usarla
    Cada camino de salida (exit path) retorna un valor del tipo correcto
    ¿Qué más?

    Monografias.com

    Chequeos de Unicidad
    Uso (y mal uso) de identificadores
    No se puede representar en una CFG (mismo token)
    Ejemplos:
    Ningún identificador puede ser usado para dos definiciones diferentes en el mismo scope

    Monografias.com

    Chequeos de Tipo
    Los chequeos semánticos más extensos
    Ejemplos:
    Que el número de argumentos haga match con el número de parámetros formales y que los tipos correspondientes sean equivalentes
    Si se llama como expresión, debe retornar un tipo
    Cada acceso a una variable debe hacer match con la declaración (arreglo, estructura, etc.)
    Los identificadores en una expresión deben ser “evaluables”
    LHS de una asignación debe ser “asignable”
    En una expresión los tipos de las variables, tipos de retorno de métodos y de operadores deben ser “compatibles”

    Monografias.com

    Chequeos Dinámicos
    Chequeos de límites de arreglos
    Chequeo de dereferencia del Null Pointer

    Monografias.com

    Sistemas de Tipos
    Un sistema de tipos es usado para el chequeo de tipos
    Un sistema de tipos incorpora
    Construcciones estáticas del lenguaje
    Noción de tipos
    Reglas para asignar tipos a construcciones del lenguaje

    Monografias.com

    Expresiones de Tipos
    Un tipo compuesto es denotado por una expresión de tipo
    Una expresión de tipo es
    Un tipo básico
    La aplicación de un constructor de tipo a otras expresiones de tipo

    Partes: 1, 2, 3

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter