Vous êtes sur la page 1sur 8

CIS-IXB-001

UNIVERSIDAD
NACIONAL
DE LOJA

Area
de la Energa las Industrias y los Recursos Naturales No Renovables

Carrera de Ingeniera en Sistemas

REGLAS SINTACTICAS
CUP

MODULO IX B
Autores:
SORAYA ISAMAR LARA TAPIA
Docente:
ING. HENRY PAZ
Fecha:
20 ENERO 2015

Loja-Ecuador
Septiembre 2014 - Julio 2015

Indice
1. Definici
on del smbolo inicial de la gram
atica y las reglas de producci
on.

2. Ejemplo: Calculadora

3. Ejemplo Divisor de cantidades

4. BIBLIOGRAFIA

1.

Definici
on del smbolo inicial de la gram
atica y las
reglas de producci
on.
Para definir el smbolo inicial de la gramatica se utiliza la construccion start with...:
startwithP rog;
Para ver como definir las reglas de produccion de la gramatica veamos un ejemplo:

P rog ::= P ROGIDEN T : i1In : i2Out : o Local : lBody : b{: RESU LT = new
P rogv1(i1, i2, o, l, b); :}
|P ROGIDEN T : i1In : i2Out : o Body : b{: RESU LT = new
P rogv2(i1, i2, o, b); :};
Para definir todas las reglas de produccion que tengan a un mismo smbolo no terminal como antecedente, se escribe el smbolo no terminal en cuestion (en el ejemplo, Prog),
seguido de ::= y a continuacion las reglas de produccion que le tengan como antecedente,
separadas por el smbolo (en el ejemplo hay 2 reglas de produccion). Despues de la
u
ltima regla de produccion se termina con punto y coma.
Si nos fijamos, por ejemplo, en el consecuente de la primera regla de produccion, vemos que esta formado por una secuencia de smbolos terminales y no terminales h PROG
IDENT:i1 In:i2 Out:o Local:l Body:b i, algunos de los cuales llevan adyacente un smbolo
de dos puntos seguido de un identificador. Recordemos que cuando se presento la declaracion de smbolos terminales y no terminales, se dijo que estos podan tener asociado un
objeto Java. Los identificadores que vienen despues de un smbolo terminal o no terminal
representan variables Java en las que se guarda el objeto asociado a ese smbolo terminal
o no terminal. Estas variables Java pueden ser utilizadas en la parte {: ... :} que viene a
continuacion.
Entre {: ... :}se incluye el codigo Java que se ejecutara cuando se reduzca la regla de
produccion en la que se encuentre dicha clausula {: ... :}.
Si el no terminal antecedente tiene asociada una cierta clase Java, obligatoriamente
dentro de la clausula{: ... :} habra una sentencia RESULT=...;. El objeto Java guardado
en la variable RESULT sera el objeto Java que se asocie al no terminal antecedente cuando
se reduzca la regla de produccion en la que se encuentre esa clausula{: ... :}.
A una regla de produccion tambien se le puede asociar directamente una precedencia.
Por ejemplo: [2]
expr ::= M EN OSexpr : e
{: ... :}
%precU M IN U S

La directiva % prec permite asociar una precedencia a una regla de produccion equivalente a la precedencia definida en la seccion de declaraciones de precedencia al terminal
que viene a continuacion de % prec (en el ejemplo UMINUS).
Se inicia con una declaracion opcional de la forma:
start with no-terminal
La gramatica se especifica con producciones del tipo:

La secuencia de terminales y/o noterminales es una lista de terminales o no terminales separados por espacios en blanco.
[1]

2.

Ejemplo: Calculadora

Gramatica

[1]

3.

Ejemplo Divisor de cantidades

4.

BIBLIOGRAFIA

Referencias
[1] Salvador Sanchez, Daniel Rodrguez, Departamento de Ciencias de la Computacion,
Universidad de Alcala, Procesadores de LenguajeDisponible en: http://www.cc.
uah.es/ie/docencia/ProcesadoresDeLenguaje/CUP.pdf
[2] esidad Carlos III de Madrid, Departamento de ingenieria telematoca, Fundamentos
de Ordenadores I: Breve Introduccion a CUPDisponible en: http://www.it.uc3m.
es/luis/fo1/p/CUP.html

Vous aimerez peut-être aussi