Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesores Di Mare & Quezada
CI-1322
I Semestre 2004
[<=] [home] [<>] [\/] [=>]
CI-1322 Autómatas y compiladores

Tarea #8 [solución]

Analizador sintáctico de Java reducido

      En la siguiente figura se tiene una gramática reducida para el lenguaje Java. Estúdiela y realice lo siguiente:

ProgramaMiniJava --> ClasePrincipal ( DeclaracionDeClase )* EOF
ClasePrincipal --> "class" Identificador "{" "public" "static" "void" "main" 
              "(" "String" "[" "]" Identificador ")" "{" Instruccion "}" "}" 
DeclaracionDeClase --> "class" Identificador ( "extends" Identificador )? "{" 
                     ( DeclaracionVar )* ( DeclaracionMetodo )* "}" 
DeclaracionVar --> Tipo Identificador ";" 
DeclaracionMetodo --> "public" Tipo Identificador "(" ( Tipo Identificador 
                      ( "," Tipo Identificador )* )? ")" "{" ( DeclaracionVar)*
                      ( Instruccion )* "return" Expresion ";" "}" 
Tipo --> "int" "[" "]" 
       | "boolean" 
       | "int" 
       | Identificador 
Instruccion --> "{" ( Instruccion )* "}" 
            | "if" "(" Expresion ")" Instruccion "else" Instruccion 
            | "while" "(" Expresion ")" Instruccion 
            | "System.out.println" "(" Expresion ")" ";" 
            | Identificador "=" Expresion ";" 
            | Identificador "[" Expresion "]" "=" Expresion ";" 
Expresion --> Expresion ( "&&" | "<" | "+" | "-" | "*" ) Expresion 
             | Expresion "[" Expresion "]" 
             | Expresion "." "length" 
             | Expresion "." Identificador "(" ( Expresion ( 
			   "," Expresion )* )? ")" 
             | NUMERO_ENTERO 
             | "true" 
             | "false" 
             | Identificador 
             | "this" 
             | "new" "int" "[" Expresion "]" 
             | "new" Identificador "(" ")" 
             | "!" Expresion 
             | "(" Expresion ")" 
Identificador --> IDENTIFICADOR

Figura 1

      Entregue su tarea por correo electrónico, como lo hizo anteriormente.

[mailto:] Entrega de Tareas

Tiempo de entrega: 10 días
Modalidad: En parejas

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2004
Derechos de autor reservados © 2004
[home] <> [/\]