T RADUCTORES DDS CON CUP Práctica Optativa 12. CASO DE PRUEBA DDS CON CUP A continuación realizaremos una representación del árbol generado para la siguiente.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 5: DECLARACIÓN, INICIALIZACIÓN Y USO DE VARIABLES Ing. Ronald Criollo.
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Infijo a postfijo Expr -> Expr + Término Expr -> Expr - Término
Análisis Sintáctico Capítulo 4.
Traductor DDS en CUP Expresiones lógicas.
Animación del Traductor DDS con CUP
A NIMACIONES PL-P RÁCTICA 12 CUP. A NÁLISIS CON CUP Introducción. La expresión que va a ser analizada es la siguiente: Se utilizará la misma nomenclatura.
Animación del segundo ejercicio de la práctica 12 opcional (herramienta ANTLR)
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Los paquetes básicos de Java son los de uso más habitual, contienen clases que se emplean en todo tipo de aplicaciones Java. A continuación ofrecemos un.
Introducción a JAVA COMP 250. Estructura de Selección selection statements selection statements – Escoger cuál acción ejecutar dependiendo de dos ó más.
Arithmetic Operators & Operators Precedence
Programación Interactiva Tipos y Operadores
Nicole Chung. Ejercicio 1 Realizar una aplicación que genere los cinco números de la loto (esto es cinco números aleatorios entre 1 y 99 no repetidos)
Entendiendo la definición de clases
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Ejercicios de algoritmos y diagramas de flujo
TRABAJO PRÁCTICO 2 Florencia Glasbauer y Luciana Pierangeli 1ºB.
Modularidad Estructura de datos.
1 Parsing Un parser podría ser definido como un programa que analiza una porción de texto para determinar su estructura lógica: la fase de parsing en un.
Módulo 5: Estructuras de Decisión y Bucles
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Tema 1. Introducción a la programación (Lenguaje java).
2.3 Cola de números enteros.
2.2 Pila de números enteros
1.2 Sintaxis del lenguaje Java.
Tema 5 Grafos. Recorridos..
Tema 4 Árboles. Árbol sobre matriz.
2.4 Construcción de un TAD a partir de otro.
FORTRAN 77 y Cómputo Científico
Seminario de Lenguajes A – Opción Ada
Trabajo practico Nº2 Rodrigo Diaz. EJERCICIO Nº1 Ingresar un número cualquiera e informar si es Positivo. Negativo o nulo C NUMER O Numero =0 NULO Numero>o.
El lenguaje simbólico de la Lógica Proposicional
Algebra Booleana y Compuertas Lógicas
Analizadores semánticos: DDS y EDT
Método en Java.
Laboratorio: Empezando a usar el debugger de Eclipse.
ANIMACIÓN Traductor DDT con CUP. En esta animación se puede ver el árbol generado del traductor ascendente mediante transparencias realizadas en PowerPoint.
Traductores DDS con CUP Ejemplo. Cadena de entrada : false or ( 1 >= 0 ) ;
Introducción a la Programación Orientada a Objetos Redefinición y Sobrecarga Dada la siguiente jerarquía de clases: Alfa Delta Beta.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
ALGORITMOS Y ESTRUCTURA DE DATOS
Estructuras de repetición
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
If anidados y Switch Prof. Lillian Bras.
COMP-2120 Capítulo 2 Preparado por: Prof. Nelliud D. Torres.
Input – Scanner y Cajas de diálogo
T RADUCTORES EDT CON ANTLR. CASO DE PRUEBA EDT CON ANTLR A continuación realizaremos una representación del árbol generado para la siguiente operación.
Traductores EDT con ANTLR. Introducción Los siguientes pasos facilitarán el seguimiento de la animación:  Primero se mostrará la expresión aritmética.
JAVA J.A.C..
Estructuras de control Introducción a la programación.
Unidad III Elementos del lenguaje C++
Control de flujo: Bucles
3.  Recursividad.
Haga clic para modificar el estilo de subtítulo del patrón Prof. Addys de Lam INSTRUCCIONES DE CONTROL OBJETIVOS  UTILIZAR LAS INSTRUCCIONES DE CONTROL.
ANALISIS SINTACTICO Parte I
Curso Programación en Java
(false and (74 >= 34)) xor 45 < 78 ; El análisis semántico en CUP se hace de forma ascendente, por ello se parte del árbol completo para su explicación.
El Concepto de Tipo Los tipos permiten indicar la característica de los valores (datos) manipulados en un programa. Toda variable tiene asociado un tipo.
Un ejemplo de uso de estos operadores: int a, b, c; a = 0xd3; b = 0xf5; c = 0x1e; d =a |b; d =b &c; d =a ^c; d = ~c; d =c 4 Equivale a
Traductores DDS con CUP. Introducción Los siguientes pasos facilitarán el seguimiento de la animación:  Primero se mostrará la expresión lógica que se.
Funciones Si Funciones Y
Se considera la expresión (a-b)*(c+(d/e)) su árbol es:
Expositor: MSc. Karla Largaespada Obando. Objetivos Explicar que es una función en Excel y para que se utiliza. Dar a conocer a través de ejemplos prácticos.
Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++
OPERADORES Y EXPRESIONES Ing Esp. Ricardo Cujar. Operadores y Expresiones  Operador: Es un símbolo que representa una operación.  Expresión: Es la combinación.
PRUEBA.
Dfsfdsfs sfdsdfsf. prueba dfdsffss Prueba 3.
Prueba.
Transcripción de la presentación:

T RADUCTORES DDS CON CUP Práctica Optativa 12

CASO DE PRUEBA DDS CON CUP A continuación realizaremos una representación del árbol generado para la siguiente expresión lógica: (false and (74 >= 34)) xor 45 < 78 ;

A Comenzamos por el axioma:

A := L

L := L xor J

J := C

C := numero opmenor numero

L := J

J := apertura_parentesis L cierre_parentesis

L := L and J

J := apertura_parentesis L cierre_parentesis

L := J

J := C

C := numero opmayori numero

L := J

J := vfalse

{: Simbolo s=new Simbolo(); s.valor=false; RESULT = s; :} Evaluación de la expresión lógica mediante análisis ascendente del árbol sintáctico:

L::=J:j {: Simbolo s=new Simbolo(); s.valor=j.valor; RESULT = s; :}

C::= numero:n1 opmayori numero:n2 {: int v1=Integer.parseInt(n1); int v2=Integer.parseInt(n2); Simbolo s=new Simbolo(); s.valor=(v1 >= v2); RESULT = s; :}

J::=C:c {: Simbolo s=new Simbolo(); s.valor=c.valor; RESULT = s; :}

L::=J:j {: Simbolo s=new Simbolo(); s.valor=j.valor; RESULT = s; :}

J::=apertura_parentesis L:l cierre_parentesis {: Simbolo s=new Simbolo(); s.valor=l.valor; RESULT = s; :}

L::=L:l opand J:j {: Simbolo s=new Simbolo(); s.valor=(l.valor && j.valor); RESULT = s; :}

J::=apertura_parentesis L:l cierre_parentesis {: Simbolo s=new Simbolo(); s.valor=l.valor; RESULT = s; :}

L::=J:j {: Simbolo s=new Simbolo(); s.valor=j.valor; RESULT = s; :}

C::=numero:n1 opmenor numero:n2 {: int v1=Integer.parseInt(n1); int v2=Integer.parseInt(n2); Simbolo s=new Simbolo(); s.valor=(v1 < v2); RESULT = s; :}

J ::= C:c {: Simbolo s=new Simbolo(); s.valor=c.valor; RESULT = s; :}

L ::= L:l opxor J:j {: Simbolo s=new Simbolo(); s.valor=(l.valor != j.valor); RESULT = s; :}

A::=L:l semicolon {: System.out.println("\n\nExpresion logica correcta. Valor final: "+ l.valor +"\n\n"); :}; Resultado producido por la expresión: (false and (74 >= 34)) xor 45 < 78 ; APERTURA_PAR [(]FALSE [false] OPAND [and] APERTURA_PAR [(]NUMERO [74] OPMAYORI [>=] NUMERO [34]CIERRE_PAR [)]CIERRE_PAR [)] OPXOR [xor] NUMERO [45] OPMENOR [<] NUMERO [78] SEMICOLON [;] NUMERO [345] Expresión lógica correcta. Valor final: true