Procesadores de Lenguaje

Slides:



Advertisements
Presentaciones similares
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Advertisements

Propiedades de los Reales
Maestro Sr. Jaime O. López López
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA la storia la historia lhistoire the history strada calle rue street.
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
Algoritmos y Programas
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
4. ANÁLISIS FACTORIAL Introducción Modelo factorial ortogonal
Cuestiones y problemas
ANALISIS DE IMÁGENES A PARTIR DE LA PRESENTACIÓN DE ALGUNAS IMÁGENES, PEDIR A LOS NIÑOS QUE OBSERVEN LAS ILUSTRACIONES Y QUE DESCRIBAN EN SU CUADERNO LAS.
Gramáticas Libres de Contexto
IBD Clase 7.
Unidad de competencia II Estadística descriptiva:
Capítulo 3 Descripción de datos, medidas de tendencia central
Los elementos invertibles de Z6 son 1 y 5
BASE DE DATOS Primeros pasos
APLICAWEB SERVICIOS LEGALES DE PUERTO RICO
Análisis de los Estados Financieros
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Phone2Wave-Server Manual de Operación.
Coincidencia de imagen a través de cadena de triángulos
Solución de problema Herramientas aplicables
TEORÍA DE CONJUNTOS.
ISIV - Desarrollo de Sistemas I
Organización de Lenguajes y Compiladores 1
ANALIZADOR SINTACTICO
Analizadores Sintácticos Descendentes Predictivos
Operaciones sobre un árbol
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Estadística Computacional I
Combinadores SK.
Parte 2: Modelo de Análisis del Negocio
Grupo 8 Fernando Arias Porras Jorge Mozos Arias Walber González Sedeño
Investigación Algorítmica
Comité Nacional de Información Bogotá, Julio 21 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
5.3 Funciones Especiales Ecuación de Bessel de orden v (1) donde v  0, y x = 0 es un punto singular regular de (1). Las soluciones de (1) se.
4. Introducción a Aspen Plus
Proyecto Fin de Carrera E.T.S. Ingeniería Informática 26 de Septiembre de 2006 DESARROLLO DE UN COMPONENTE TECLADO ALUMNO: Fco. Javier Sánchez Ramos TUTORES:
ANALISIS SINTACTICO DESCENDENTE
Teoría de lenguajes y compiladores
Jessica dayana guerrero mora Katherine monsalve duran 7.1
1 Alumno: Javier Insa Cabrera Director: José Hernández Orallo 23 de septiembre de 2010.
CULENDARIO 2007 Para los Patanes.
Números enteros.
JUGANDO CON LOS NÚMEROS
Índice Sesión I Bloque I (09:30 a 10:30 Horas) Configuración Inicial
POLÍTICA DE PRECIOS.
ESCUELA: NOMBRES: LÓGICA DE LA PROGRAMACIÓN UNIDAD 2: Naturaleza de los Datos FECHA: Ing. Patricio Abad Espinoza OCTUBRE 2009 – FEBRERO Ciencias.
Tema 3. Optimización de Código
Agrupamiento de relaciones no lineales entre expresiones de genes
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Programación I Teoría VI: Recursividad
Programación Orientada a Objetos usando C++
Sistemas de Ecuaciones lineales
Analizador sintáctico Prácticas EDI - © Juan Ramón Pérez1.
Análisis Diseño y Desarrollo
Administración del Procesador
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
Ecuaciones En esta unidad se van a estudiar o recordar los siguientes puntos: Diferencias entre ecuaciones e identidades Resolución de ecuaciones de primer.
Estadística Administrativa I
Algoritmos para calcular el Conjunto Primero y el Conjunto Siguiente
ANALISIS SINTACTICO Parte I
Todo traductor esta basado en una gramática para el lenguaje fuente. Todo traductor esta basado en una gramática para el lenguaje fuente. Una gramática.
Teoría de lenguajes y compiladores
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION SUPERIOR UNIVERSIDAD VALLE DEL MOMBOY CARVAJAL EDO. TRUJILLO ENERO 2014.
Transcripción de la presentación:

Procesadores de Lenguaje Analizador Sintáctico LL1 Pablo PIÑEIRO REY 20321143 Marcos ZAMAREÑO JUANAS 20517195 Analizador Sintáctico LL1 Pablo PIÑEIRO - Marcos ZAMARREÑO

índice 0. Objetivos 1. Casos de uso 2. Diagrama de clases 3. Principales decisiones de diseño 4. Problemas encontrados 5. Conclusiones 6. Ejemplo práctico

0. Objetivos Realizar el análisis sintáctico de una cadena a partir del previo reconocimiento y análisis de una gramática

1. Casos de uso Para nuestra práctica hemos identificado 3 casos de uso: Analizador Sintáctico LL1 Pablo PIÑEIRO - Marcos ZAMARREÑO

1. Casos de uso Introducir fichero: El sistema solicita una ruta y una vez introducida carga el fichero y genera la gramática correspondiente. Comprobar cadena: Igualmente el sistema solicita una ruta y se genera otro fichero en el cual se mostrará el resultado obtenido de la comprobación. Salir: Sale de la aplicación.

2. Diagrama de clases Nuestras clases se encuentran divididas en distintos paquetes. Io. Léxico. Principal. Útil. Sintáctico

2. Diagrama de clases (II) Io

Diagrama de clases (III) Métodos a destacar: GestorFichero.escribirLL1(String): Método que guarda en un fichero los datos del conjunto primero, siguiente y la tabla de análisis. El diseño de este fichero es el siguiente: PRIMERO rt [SUMA,#] ... SIGUIENTE rt [$,PARENT_IZQ] … TABLA LL1 [rt,$]  rt -> #

2. Diagrama de clases (IV) Léxico:

2. Diagrama de clases (vi) Métodos a destacar analizadorLéxico: analizadorLexico(string) Constructor de la clase. lexico: Método que se encarga de realizar el análisis léxico de nuestra cadena de entrada con la ayuda de la clase Yylex

2. Diagrama de clases (VII) Principal

2. Diagrama de clases (viii) Métodos a destacar Principal main: Clase en la que encontramos el main desde el cual controlaremos la ejecución de nuestro programa guiando al usuario a través de una serie de menús.

2. Diagrama de clases (IX) util

2. Diagrama de clases (X) Nodo Nodo(String,String) Método que crea un nodo a partir de dos strings que especifican la parte derecha e izquierda respectivamente. getParteDerecha(): String Método para obtener la parte derecha de la producción. set ParteIzquierda():void Método que nos permite almacenar un valor en la parte izquierda de la producción.

2. Diagrama de clases (XI) Sintáctico

2. Diagrama de clases (XII) LL1: Paquete compuesto por una única clase LL1 encargada de obtener el conjunto primero, siguiente, y tabla de análisis. Métodos a destacar. LL1: Constructor de la clase. Se le pasa un objeto del tipo GestorFichero para que tenga todas las producciones que hemos leído del fichero de entrada. sacarParteIzquierda: Método según el cual obtenemos los no terminales de nuestra gramática, aquellos que se encuentran a la izquierda. sacarParteDerecha: Análogo al anterior. Primero:Método encargado de obtener el conjunto primero de todos los elementos de la gramática. algoritmoPrimero: Algoritmo que calcula el conjunto primero de un determinado no terminal. Como datos de entrada contamos con el no terminar y la lista de producciones.

2. Diagrama de clases (XIII) siguiente: Método que calcula los conjuntos siguientes siguientes de los no terminals de la gramatica, Como parámetro de entrada contamos con la lista de producciones. algoritmoSiguiente: Algoritmo mediante el cual calculamos el conjunto siguiente de un no terminal dado. La variable inicial sirve para saber si es el símbolo inicial de la gramática ya que en ese caso hay que añadir siempre al conjunto siguiente lambda calcularSiguiente: Algoritmo de ayuda para calcular el conjunto siguiente recursivamente. Como entrada tenemos el no terminal del cual estamos buscando el conjunto siguiente, la lista de producciones, una variable que nos indica si es el símbolo inicial y no un nodo que contiene el elemento anterior inicializarTabla: Método que analiza la tabla de análisis. construirTabla: Método que nos permite construir la tabla

3. Principales decisiones de diseño (I) GIC Análisis Léxico Análisis sintáctico Salida

3. Principales decisiones de diseño (II) GIC La GIC se representara en dos partes: La lista de No Terminales Representada pon una lista de Cadenas con todos los NT La lista de Producciones Representada pon una lista de Nodos. Cada Nodo contiene la parte izquierda de la produccion (un NT) Cada Nodo contiene la parte derecha de la produccion.

3. Principales decisiones de diseño (III) Analisis Léxico Jlex Usado para comprobar si una cadena pertenece a la gramática. Convierte los tokens en simbolos que pueda reconocer el analizador. + SUMA * MULT (  PARENT_DER )  PARENT_IZQ 1,2,..,9,0,..  NUMERO a..z  IDENTIFICADOR

3. Principales decisiones de diseño (IV) Analisis Sintactico Obtiene los siguiente conjuntos Conjunto primero. Conjunto siguiente. Conjunto prediccion. Calcula la tabla de análisis sintactico. Una vez tenemos la tabla de análisis sintáctico y la cadena a reconocer en la misma nomenclatura se comprueba si la cadena puede ser leída.

4. Problemas encontrados Dificultad para la integración de Jlex en nuestro proyecto. Dificultad para la correcta implementación del método calcularSiguiente. Dificultad para trabajar con estructuras de tablas y listas de listas que hacen mucho mas complejas tanto para recorrerlas como para cualquier método de adición o substracción.

5. Conclusiones Hemos podido comprobar como interactúan de forma práctica el analizador léxico con el sintáctico aunque sea a un nivel muy básico

6. Ejemplo práctico Por último pasamos a realizar una demo sobre nuestra practica.