SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
PROCESADORES DE LENGUAJES                                                                Cup y el análisis semántico – Diap. 1




                                Cup y el análisis semántico




Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                            Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                                                Cup y el análisis semántico – Diap. 2




                                                       Hasta ahora...



                                                             Analizador               Analizador
                                                               léxico                 sintáctico

            .txt                                              .flex                       .cup


       Fichero fuente                                  Lee lexemas, asocia a    Comprueba validez de la
          (tablas y                                   patrones, genera tokens      cadena de tokens
         consultas)




Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                            Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                                                 1
PROCESADORES DE LENGUAJES                                                                  Cup y el análisis semántico – Diap. 3




                                                      Desde ahora...


                                                                                       Analizador
                                                             Analizador                 sintáctico
                                                               léxico                       +
                                                                                       semántico
            .txt                                              .flex                         .cup


       Fichero fuente                                  Lee lexemas, asocia a     Comprueba validez de la
          (tablas y                                   patrones, genera tokens       cadena de tokens
         consultas)
                                                                                    Comprueba tipos y
                                                                                existencias, se ayuda de la
                                                                                     tabla de símbolos




Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                              Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                                                  Cup y el análisis semántico – Diap. 4




                                             Especificación Cup
       import ...;

       action code {: ... :}
       parser code {: ... :}
       init with {: ... :}
       scan with {: ... :}

       terminal ...;
       non terminal ...;

       precedence ...;

       gramática


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                              Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                                                   2
PROCESADORES DE LENGUAJES                                                         Cup y el análisis semántico – Diap. 5




                                             Especificación Cup
       import ...;                                           Importación de paquetes
                                                             necesarios para poder desarrollar
       action code {: ... :}                                 el código Java
       parser code {: ... :}
       init with {: ... :}
       scan with {: ... :}

       terminal ...;
       non terminal ...;

       precedence ...;

       gramática


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                     Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                                         Cup y el análisis semántico – Diap. 6




                                             Especificación Cup
       import ...;                                           Son áreas opcionales.
                                                             Action code: código que contiene
       action code {: ... :}                                 métodos auxiliares y variables
       parser code {: ... :}                                 empleados por el código
       init with {: ... :}                                   incrustado en la gramática, este
       scan with {: ... :}                                   código se incrusta en una clase
                                                             embebida del parser.
       terminal ...;                                         Parser code: código que flexibiliza
       non terminal ...;                                     el uso del parser, este código se
                                                             incrusta directamente en la clase
       precedence ...;                                       parser.

       gramática


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                     Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                                          3
PROCESADORES DE LENGUAJES                                                          Cup y el análisis semántico – Diap. 7




                                             Especificación Cup
       import ...;                                           Son áreas opcionales.
                                                             Init with: El parser ejecutará el
       action code {: ... :}                                 código aquí introducido antes de
       parser code {: ... :}                                 pedir el primer token.
       init with {: ... :}                                   Inicializaciones, instanciaciones...
       scan with {: ... :}                                   Scan with: código que devolverá
                                                             símbolos.
       terminal ...;
       non terminal ...;

       precedence ...;

       gramática


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                      Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                                          Cup y el análisis semántico – Diap. 8




                                             Especificación Cup
       import ...;                                           Área donde definir todos los
                                                             símbolos que aparecerán en la
       action code {: ... :}                                 gramática.
       parser code {: ... :}                                 Se les puede asignar un tipo
       init with {: ... :}                                   (clase) para ajustarlos a las
       scan with {: ... :}                                   necesidades del analizador.
                                                             Para evitar ambigüedades, se
       terminal ...;                                         deben definir precedencias.
       non terminal ...;

       precedence ...;

       gramática


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                      Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                                           4
PROCESADORES DE LENGUAJES                                                                  Cup y el análisis semántico – Diap. 9




                                             Especificación Cup
       import ...;                                                  Se define la especificación sintáctica
                                                                    y se incluyen los atributos y las
       action code {: ... :}                                        acciones semánticas que permiten
       parser code {: ... :}                                        manejar los símbolos leídos y realizar
                                                                    las acciones oportunas
       init with {: ... :}
                                                                    (comprobaciones, inserciones...)
       scan with {: ... :}                                          sobre la tabla de símbolos

       terminal ...;
       non terminal ...;                                            G.I.C. con atributos + A.Semánticas
                                                                    = Traductor dirigido por la sintaxis
       precedence ...;

       gramática


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                              Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                                                 Cup y el análisis semántico – Diap. 10




                                             Especificación Cup
       expr::= expr PLUS expr
               {: acción semántica :}

                                                                    -Uso de identificadores (¿declarados?)
                                   expr
                                                                    -Variables asignadas antes de usar
                                                                    -Índices de array dentro de rango válido
                                                                    -Operandos adecuados en expresiones
                                                                    -Invocación correcta de métodos
                                                                    -Tipo de valor de retorno adecuado en
                                                                    método
       expr                        PLUS                      expr   -...



Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                              Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                                                   5
PROCESADORES DE LENGUAJES                                      Cup y el análisis semántico – Diap. 11




                          Especificación Cup: gramática
       ...
       terminal      int, float, id, semicolon, comma;
       non terminal DECL, T, LID;
                                                int v1, x, indice;
       ...
       // Gramática
       ...
       DECL ::= T LID semicolon;
       T ::= int {: T.tipo = int :}
              | float {: T.tipo = float :} ;
       LID ::= id comma LID
              | id ;




Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.   Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                      Cup y el análisis semántico – Diap. 12




                          Especificación Cup: gramática
       ...
       terminal      int, float, id, semicolon, comma;
       non terminal DECL, LID;
       non terminal Simbolo T;                  int v1, x, indice;
       ...
       // Gramática
       ...
       DECL ::= T LID semicolon;
       T ::= int {: Simbolo miSimbolo=new Simbolo();
                     miSimbolo.setTipo(Simbolo.T_INT);
                     RESULT= miSimbolo; :}
              | float {:    Simbolo miSimbolo =new Simbolo();
                            miSimbolo.setTipo(Simbolo.T_FLOAT);
                            RESULT= miSimbolo; :} ;
       LID ::= id comma LID
              | id ;

Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.   Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                        6
PROCESADORES DE LENGUAJES                                      Cup y el análisis semántico – Diap. 13




                          Especificación Cup: gramática
       ...
       terminal      int, float, id, semicolon, comma;
       non terminal DECL, LID;
                                                int v1, x, indice;
       non terminal Simbolo T;
       ...
       // Gramática
       ...
       DECL ::= T LID semicolon;
       T ::= int {: ... :}
              | float {: ... :} ;
       LID ::= id comma LID {: LID.lista = LID.lista.add(id) :}
              | id {: LID.lista = nuevaLista(id) :} ;




Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.   Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                      Cup y el análisis semántico – Diap. 14




                          Especificación Cup: gramática
       ...
       terminal      int, float, semicolon, comma;
       terminal String id;
       non terminal DECL; non terminal ArrayList<String> LID;
       non terminal Simbolo T;
       ...                                      int v1, x, indice;
       // Gramática
       ...
       DECL ::= T LID semicolon;
       T ::= int {: ... :}
              | float {: ... :} ;
       LID ::= id:ident comma LID:l {: l.add(ident);RESULT = l;:}
          | id:ident {: ArrayList<String> lista=new
                                         ArrayList<String>();
                             lista.add(ident);
                             RESULT = lista; :} ;

Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.   Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                        7
PROCESADORES DE LENGUAJES                                          Cup y el análisis semántico – Diap. 15




                          Especificación Cup: gramática
       ...
       terminal      int, float, semicolon, comma;
       terminal String id;
       non terminal DECL; non terminal ArrayList LID;
       non terminal Simbolo T;            EJERCICIO
                                                     int v1, x, indice;
       ...                                Implementar la acción semántica:
       // Gramática                       - Comprobando que no hay repeticiones
       ...                                - Realizando inserción en tabla de símbolos

       DECL ::= T LID semicolon {: // Introducir en tabla de
                                   // símbolos realizando las
                                  // comprobaciones necesarias :};
       T ::= int {: ... :} | float {: ... :} ;
       LID ::= id:ident comma LID:l {: ... :}
              | id:ident {: ... :} ;


Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.       Antonio Pérez Carrasco. Curso 2008-2009




PROCESADORES DE LENGUAJES                                          Cup y el análisis semántico – Diap. 16




                          Especificación Cup: gramática
       ...
       terminal PLUS, MINUS, TIMES, DIV, AND, OR, CONCAT;
       non terminal      Simbolo     expr;
       ...
       // Gramática
       ...
       expr::= expr:e1 PLUS expr:e2
               {:
                 //...

                              :} | expr1:e1 AND expr:e2
                              {:
                                //...

                              :};

Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.       Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                            8
PROCESADORES DE LENGUAJES                                                   Cup y el análisis semántico – Diap. 17

       public class Simbolo
       {
         final int T_INT = 1;                                Clase “Simbolo.java”
         final int T_FLOAT = 2;
         ...
         int tipo;      // Entero, Float...
         int clase;     // Var. local, método, clase...

           public Simbolo()
           {
                  //...
           }

           public void setTipo(int valorTipo)
           {
             this.tipo=valorTipo;
           }

           public int getTipo()
           {
             return this.tipo;
           }
           ...
       }

Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas.                Antonio Pérez Carrasco. Curso 2008-2009




                                                                                                                     9

Más contenido relacionado

La actualidad más candente

Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajesPedro Contreras Flores
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSxinithazangels
 
Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Vikky Moscoso
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un procesoi92almaa
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 

La actualidad más candente (20)

TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Cocomo ii
Cocomo iiCocomo ii
Cocomo ii
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
cmmi-dev
cmmi-devcmmi-dev
cmmi-dev
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOS
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 

Similar a Análisis Semántico con Cup

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Manual de Compiladores Léxico y Sintáctico.pdf
Manual de Compiladores Léxico y Sintáctico.pdfManual de Compiladores Léxico y Sintáctico.pdf
Manual de Compiladores Léxico y Sintáctico.pdfDavidErnestoT
 
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptxActividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptxYahirSnchezDjMix
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptxLuisSimn12
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoGermania Rodriguez
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoRaul Gomez
 
Analisissemantico 110519213337-phpapp01
Analisissemantico 110519213337-phpapp01Analisissemantico 110519213337-phpapp01
Analisissemantico 110519213337-phpapp01stephani salazar
 
Taller 21 de junio
Taller 21 de junioTaller 21 de junio
Taller 21 de junioAlex Ortiz
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bisondanilopuente
 

Similar a Análisis Semántico con Cup (20)

investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
 
Manual de Compiladores Léxico y Sintáctico.pdf
Manual de Compiladores Léxico y Sintáctico.pdfManual de Compiladores Léxico y Sintáctico.pdf
Manual de Compiladores Léxico y Sintáctico.pdf
 
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptxActividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Lexicos.docx
Lexicos.docxLexicos.docx
Lexicos.docx
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Documeto compilardorcontadorletras
Documeto compilardorcontadorletrasDocumeto compilardorcontadorletras
Documeto compilardorcontadorletras
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador Sintáctico
 
investigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdfinvestigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdf
 
Analisissemantico 110519213337-phpapp01
Analisissemantico 110519213337-phpapp01Analisissemantico 110519213337-phpapp01
Analisissemantico 110519213337-phpapp01
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Taller 21 de junio
Taller 21 de junioTaller 21 de junio
Taller 21 de junio
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bison
 

Más de LAUNASA NOVENO B

Más de LAUNASA NOVENO B (11)

Jlex Cup
Jlex CupJlex Cup
Jlex Cup
 
encriptacion
encriptacionencriptacion
encriptacion
 
encriptacion
encriptacionencriptacion
encriptacion
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
Guía práctica de ANTLR 2.7.2
Guía práctica de ANTLR 2.7.2Guía práctica de ANTLR 2.7.2
Guía práctica de ANTLR 2.7.2
 

Último

Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024LeonardoCedrn
 
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdfAgendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdfeluniversocom
 
Reunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdfReunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdfWinston1968
 
Reunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdfReunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdfWinston1968
 
EL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptx
EL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptxEL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptx
EL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptxAngelRuizGomez
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
Habilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niñosHabilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niñosdamianpacheco01
 

Último (7)

Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024Revista del Club A. Banfield - Abril 2024
Revista del Club A. Banfield - Abril 2024
 
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdfAgendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
Agendadeportiva-Directv - 26 de abril al 3 de mayo.pdf
 
Reunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdfReunion 17 Hipodromo La Rinconada 050524.pdf
Reunion 17 Hipodromo La Rinconada 050524.pdf
 
Reunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdfReunion 9 Hipodromo Nacional de Valencia 040524.pdf
Reunion 9 Hipodromo Nacional de Valencia 040524.pdf
 
EL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptx
EL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptxEL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptx
EL ROL DEL PSICOLOGO DEPORTIVO EN EL FUTBOL 1.pptx
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Habilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niñosHabilidades Motrices Básicas de manera didáctica para niños
Habilidades Motrices Básicas de manera didáctica para niños
 

Análisis Semántico con Cup

  • 1. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 1 Cup y el análisis semántico Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 2 Hasta ahora... Analizador Analizador léxico sintáctico .txt .flex .cup Fichero fuente Lee lexemas, asocia a Comprueba validez de la (tablas y patrones, genera tokens cadena de tokens consultas) Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 1
  • 2. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 3 Desde ahora... Analizador Analizador sintáctico léxico + semántico .txt .flex .cup Fichero fuente Lee lexemas, asocia a Comprueba validez de la (tablas y patrones, genera tokens cadena de tokens consultas) Comprueba tipos y existencias, se ayuda de la tabla de símbolos Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 4 Especificación Cup import ...; action code {: ... :} parser code {: ... :} init with {: ... :} scan with {: ... :} terminal ...; non terminal ...; precedence ...; gramática Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 2
  • 3. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 5 Especificación Cup import ...; Importación de paquetes necesarios para poder desarrollar action code {: ... :} el código Java parser code {: ... :} init with {: ... :} scan with {: ... :} terminal ...; non terminal ...; precedence ...; gramática Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 6 Especificación Cup import ...; Son áreas opcionales. Action code: código que contiene action code {: ... :} métodos auxiliares y variables parser code {: ... :} empleados por el código init with {: ... :} incrustado en la gramática, este scan with {: ... :} código se incrusta en una clase embebida del parser. terminal ...; Parser code: código que flexibiliza non terminal ...; el uso del parser, este código se incrusta directamente en la clase precedence ...; parser. gramática Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 3
  • 4. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 7 Especificación Cup import ...; Son áreas opcionales. Init with: El parser ejecutará el action code {: ... :} código aquí introducido antes de parser code {: ... :} pedir el primer token. init with {: ... :} Inicializaciones, instanciaciones... scan with {: ... :} Scan with: código que devolverá símbolos. terminal ...; non terminal ...; precedence ...; gramática Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 8 Especificación Cup import ...; Área donde definir todos los símbolos que aparecerán en la action code {: ... :} gramática. parser code {: ... :} Se les puede asignar un tipo init with {: ... :} (clase) para ajustarlos a las scan with {: ... :} necesidades del analizador. Para evitar ambigüedades, se terminal ...; deben definir precedencias. non terminal ...; precedence ...; gramática Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 4
  • 5. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 9 Especificación Cup import ...; Se define la especificación sintáctica y se incluyen los atributos y las action code {: ... :} acciones semánticas que permiten parser code {: ... :} manejar los símbolos leídos y realizar las acciones oportunas init with {: ... :} (comprobaciones, inserciones...) scan with {: ... :} sobre la tabla de símbolos terminal ...; non terminal ...; G.I.C. con atributos + A.Semánticas = Traductor dirigido por la sintaxis precedence ...; gramática Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 10 Especificación Cup expr::= expr PLUS expr {: acción semántica :} -Uso de identificadores (¿declarados?) expr -Variables asignadas antes de usar -Índices de array dentro de rango válido -Operandos adecuados en expresiones -Invocación correcta de métodos -Tipo de valor de retorno adecuado en método expr PLUS expr -... Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 5
  • 6. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 11 Especificación Cup: gramática ... terminal int, float, id, semicolon, comma; non terminal DECL, T, LID; int v1, x, indice; ... // Gramática ... DECL ::= T LID semicolon; T ::= int {: T.tipo = int :} | float {: T.tipo = float :} ; LID ::= id comma LID | id ; Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 12 Especificación Cup: gramática ... terminal int, float, id, semicolon, comma; non terminal DECL, LID; non terminal Simbolo T; int v1, x, indice; ... // Gramática ... DECL ::= T LID semicolon; T ::= int {: Simbolo miSimbolo=new Simbolo(); miSimbolo.setTipo(Simbolo.T_INT); RESULT= miSimbolo; :} | float {: Simbolo miSimbolo =new Simbolo(); miSimbolo.setTipo(Simbolo.T_FLOAT); RESULT= miSimbolo; :} ; LID ::= id comma LID | id ; Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 6
  • 7. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 13 Especificación Cup: gramática ... terminal int, float, id, semicolon, comma; non terminal DECL, LID; int v1, x, indice; non terminal Simbolo T; ... // Gramática ... DECL ::= T LID semicolon; T ::= int {: ... :} | float {: ... :} ; LID ::= id comma LID {: LID.lista = LID.lista.add(id) :} | id {: LID.lista = nuevaLista(id) :} ; Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 14 Especificación Cup: gramática ... terminal int, float, semicolon, comma; terminal String id; non terminal DECL; non terminal ArrayList<String> LID; non terminal Simbolo T; ... int v1, x, indice; // Gramática ... DECL ::= T LID semicolon; T ::= int {: ... :} | float {: ... :} ; LID ::= id:ident comma LID:l {: l.add(ident);RESULT = l;:} | id:ident {: ArrayList<String> lista=new ArrayList<String>(); lista.add(ident); RESULT = lista; :} ; Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 7
  • 8. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 15 Especificación Cup: gramática ... terminal int, float, semicolon, comma; terminal String id; non terminal DECL; non terminal ArrayList LID; non terminal Simbolo T; EJERCICIO int v1, x, indice; ... Implementar la acción semántica: // Gramática - Comprobando que no hay repeticiones ... - Realizando inserción en tabla de símbolos DECL ::= T LID semicolon {: // Introducir en tabla de // símbolos realizando las // comprobaciones necesarias :}; T ::= int {: ... :} | float {: ... :} ; LID ::= id:ident comma LID:l {: ... :} | id:ident {: ... :} ; Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 16 Especificación Cup: gramática ... terminal PLUS, MINUS, TIMES, DIV, AND, OR, CONCAT; non terminal Simbolo expr; ... // Gramática ... expr::= expr:e1 PLUS expr:e2 {: //... :} | expr1:e1 AND expr:e2 {: //... :}; Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 8
  • 9. PROCESADORES DE LENGUAJES Cup y el análisis semántico – Diap. 17 public class Simbolo { final int T_INT = 1; Clase “Simbolo.java” final int T_FLOAT = 2; ... int tipo; // Entero, Float... int clase; // Var. local, método, clase... public Simbolo() { //... } public void setTipo(int valorTipo) { this.tipo=valorTipo; } public int getTipo() { return this.tipo; } ... } Universidad Rey Juan Carlos, Área de Lenguajes y Sistemas. Antonio Pérez Carrasco. Curso 2008-2009 9