You are on page 1of 10

COMPILADORES

VI CICLO

INTRODUCCIN A LOS LENGUAJES DE PROGRAMACIN


Un lenguaje

de

programacin es

un lenguaje

formal diseado

para

expresar procesos que pueden ser llevados a cabo por mquinas como
las computadoras.
Pueden usarse para crear programas que controlen el comportamiento fsico
y lgico de una mquina, para expresar algoritmos con precisin, o como
modo de comunicacin humana.1
Tambin la palabra programacin se define como el proceso de creacin de
un programa de computadora, mediante la aplicacin de procedimientos
lgicos, a travs de los siguientes pasos:

El desarrollo lgico del programa para resolver un problema en


particular.

Escritura de la lgica del programa empleando un lenguaje de


programacin especfico (codificacin del programa).

Ensamblaje o compilacin del programa hasta convertirlo en lenguaje


de mquina.

Prueba y depuracin del programa.

Desarrollo de la documentacin.

TRADUCCIN:
Traduce el programa original en un programa escrito en lenguaje mquina.
Existen dos tipos de traductores:
Ensamblador: Cuando el lenguaje fuente es ensamblador.
Compilador: Cuando el lenguaje fuente es de alto nivel.
COMPARACIN COMPILADORES-INTRPRETES:
Un intrprete puede ejecutar un programa directamente, incluso sin estar
completo. Un compilador ha de traducirlo completamente antes de
ejecutarlo.
Un programa interpretado ocupa poca memoria.
Un programa compilado es ms rpido.

GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

COMPILADORES
VI CICLO

El compilador crea un ejecutable independiente del propio compilador. Un


programa interpretado necesita siempre su intrprete.
FASES DEL PROCESO DE COMPILACIN:
Anlisis lxico: Identificacin de palabras y smbolos del lenguaje.
Anlisis sintctico: Comprobacin de las reglas sintcticas.
Anlisis semntico: Comprobacin de las reglas semnticas (variables no
declaradas, comprobacin de tipos, ). Interpretacin de las rdenes.
Optimizacin: Anlisis del programa para mejorarlo (en velocidad, en
espacio de memoria)
TIPOS DE ERRORES:
Errores de compilacin: Los producidos en la fase de compilacin o
interpretacin de un programa, es decir, cuando no se cumplen las reglas
sintcticas o semnticas.
Errores de ejecucin: Los producidos durante la ejecucin del programa.
Estos mensajes de error no son producidos por el compilador, sino por una
porcin de cdigo que el compilador aade al programa.
Errores lgicos: Cuando el programa no da ningn error pero los resultados
no son los esperados. Puede ser porque el algoritmo ha sido
incorrectamente implementado o porque el algoritmo estaba mal hecho.
COMPONENTES LXICOS O TOKENS
Cuando un analizador lxico rene los caracteres en un token, generalmente
representa el token de manera simblica, es decir, como un valor de un tipo
de datos enumerado que representa el conjunto de tokens del lenguaje
fuente. En ocasiones tambin es necesario mantener la cadena de
caracteres misma u otra informacin derivada de ella, tal como el nombre
asociado con un token identificador o el valor de un token de nmero.
PALABRAS RESERVADAS
Una palabra clave o palabra reservada es una palabra o identificador que
tiene un significado particular para un lenguaje de programacin. El
significado de las palabras clave y el significado especfico de la nocin
de palabra clave difieren ampliamente de un lenguaje de programacin a
otro.
En muchos lenguajes de programacin, como por ejemplo C, una palabra
reservada

identifica

una

forma

sintctica.

Las

palabras

usadas

en

construcciones de flujo de control, tales como if, then, y else, son palabras
clave. En estos lenguajes, las palabras clave no pueden usarse tambin
GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

COMPILADORES
VI CICLO

como nombres de variables, constantes o funciones. En lenguajes con


macros o evaluacin dbil, las construcciones de flujo de control se pueden
implementar como macros o funciones.
Algunas palabras reservadas son:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

#Inicio: Da inicio a una estructura.


#Fin: Da termino a una estructura.
#Identificador: Empieza con un nmero finito de letras y puede o no
terminar en nmeros.
#Constante: Especifica que el valor del campo o de la variable no se
puede modificar.
#Sea: Posibles opciones del valor de la variable.
#Si: Identifica que la instruccin se ejecute en funcin del valor de una
expresin de Boolean (Verdadero o falso)
#SinoSi: Identifica que la instruccin se ejecute en funcin del valor de
una expresin de Boolean (Verdadero o falso)
#Sino: Se ejecuta cuando la instruccin del Si es de una expresin
boolean falsa.
#EnCaso: Es una instruccin de control que contiene una lista de
opciones.
#Caso: Contiene cada uno de las opciones junto con las instrucciones.
#Salir: Da termino a la instruccin #EnCaso en la cual aparece.
#PorDefecto: En caso que el flujo no se ejecute en una de las opciones,
se dar por concluida en esta instruccin.
#Para: Bucle que ejecuta una instruccin varias veces hasta que la
expresin dada sea falsa. Se utiliza en su mayora cuando tenemos
conocimiento del lmite del bucle.
#Mientras: Bucle que ejecuta una instruccin repetidamente hasta que
la expresin dada sea falsa. Primero evala las expresiones luego las
ejecuta.
#Hacer: Un bucle que ejecuta una instruccin repetidamente hasta que
la expresin especificada sea falsa. Primero ejecuta la instruccin, luego
evala la expresin.
#Bool: Declara variables que almacenan los valores booleanos
(Verdadero y falso).
#Byte: Declara variables que almacenan nmeros enteros de 0 a 255.
#Char: Declara variables que almacenan caracteres Unicode.
#Decimal: Declara variables adecuadas para clculos monetarios y
financieros.
#Double: Declara variables que almacenan nmeros de tipo simple de
64 bits.
#Float: Declara variables que almacenan nmeros de tipo simple de 32
bits.
#Int: Declara variables que almacenan nmeros enteros de 32 bits con
signo.
#String: Declara variables que almacena una secuencia de 0 a ms
caracteres.
#Try: Contiene el cdigo que puede causar una excepcin.
#Catch: Captura el error evitando que se cierre el programa.
#Clase: Define una clase.

GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

COMPILADORES
VI CICLO

27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

#Retornar: Retorna una tipo de dato.


#Verdadero: Valor verdadero (cierto).
#Falso: Valor falso.
#Nulo: es un literal que representa una referencia nula, es decir, que no
apunta a ningn objeto.
#Nuevo: Asigna memoria dinmica a una variable o dato.
#Leer: Lee una variable o un dato ingresado desde el teclado.
#Protegido: modificador de acceso a miembros. Un miembro protegido
es accesible dentro de su clase y por instancias de clases derivadas.
#Privado: se utiliza para declarar elementos privados de una clase; estos
miembros no son accesibles a ninguna funcin distinta de las funciones
miembro de esa clase.
#Pblico:
especifica
aquellos
miembros
que
son
accesibles
pblicamente, cualquier funcin puede acceder a estos miembros.
#Mostrar: Despliega textos o valor de las variables en el monitor
#Dimensin: Permite definir un arreglo, indicando sus dimensiones.
#Esttico: Declara las variables de tipo esttico.
#Error: Regresa verdadero si se present un error en la ltima
instruccin ejecutada en un archivo y falso en caso contrario
#Array: Definicion de una lista de valores.
#Editar: Permite cambiar parte o por completo el texto ingresado.

OPERADORES
Un operador es un smbolo en una expresin que representa una operacin
aplicada a los valores sobre los que acta.
Los valores sobre los que acta un operador se llaman operandos.
Un operador

binario es

el

que

tiene

dos

operandos,

mientras

que

un operador unario es el que tiene slo uno.


Las operaciones ms comunes se pueden clasificar en: aritmticas,
relacionales, lgicas y de texto.
Operadores aritmticos: Las operaciones aritmticas son las que operan
sobre valores numricos y entregan otro valor numrico como resultado. Los
valores numricos son los que tienen tipo entero, real o complejo.
Las siguientes son algunas operaciones aritmticas bsicas
GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

COMPILADORES
VI CICLO

1. #OperaSuma: Para tipos numricos realiza la suma y para tipos


alfabticos concatena.
2. #OperaResta: Restan el segundo operando del primero.
3. #OperaMultiplica: Calcula el producto de sus operando.
4. #OperaDivide: Permite dividir su primer operando por su segundo
operando.
5. #OperaModulo: Calcula el resto despus de dividir el primer operando
por el segundo.
6. #OperaPotencia: elevado a
7. #OperaY: Operador condicional Y, realiza una operacin lgica (&&).
8. #OperaO: Operador condicional O, realiza una operacin lgica (||).
9. #OperaNegativo: Expresin lgica de negacin (-).
10.#OperaPositivo:Expresin lgica de positivo(+)
Operaciones

relacionales:

Las operaciones

relacionales sirven

para

comparar valores. Sus operandos son cualquier cosa que pueda ser
comparada,

sus

resultados

siempre

son

valores

lgicos.Algunas

operaciones relacionales son:


11.#OperaIgual: Operacin de igualdad (==).
12.#OperaDesigual: Operador de desigualdad (!=).
13.#OperaMenor: Operador relacional menor que. Se devuelve verdadero
si el primer operando es menor que el segundo y falso en caso contrario
(<).
14.#OperaMayor: Operador relacional mayor que. Se devuelve verdadero
si el primer operando es mayor que el segundo y falso en caso contrario
(>).
15.#OperaMayorIgual: Operador relacional mayor o igual que. Se
devuelve verdadero si el primer operando es mayor o igual que el
segundo y falso en caso contrario (>=).
16.#OperaMenorIgual: Operador relacional menor o igual que. Se
devuelve verdadero si el primer operando es menor o igual que el
segundo y falso en caso contrario (<=).
Operaciones lgicas: Los operadores lgicos son los que tienen operandos y
resultado de tipo lgico.hay tres operaciones lgicas:
17.la conjuncin lgica and (en espaol: y),
18.la disyuncin lgica or (en espaol: o), y
19.la negacin lgica not (en espaol: no).
Operaciones de texto: Los operadores + y * tienen otras interpretaciones
cuando sus operandos son strings.
20.+ es el operador de concatenacin de strings: pega dos strings uno
despus del otro: perro+ gato=perrogato
GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

COMPILADORES
VI CICLO

21. * es el operador de repeticin de strings. Recibe un operando string y


otro entero, y entrega como resultado el string repetido tantas veces
como indica el entero:papel *2 =papelpapel
22.obtener el i-simo caracter de un string (partiendo desde cero) usando
los corchetes:
Nombre=perico
Nombre[0] p
Nombre[1] e
23.obtener el largo de un string con la funcin len:len(compiladores)=12
24.verificar si un string est dentro de otro con el operador in:pollo in
repollos=true
Otros:
25.#OperaAsig: Almacena el valor del operando situado a su derecha (=).
26.#OperaIncremento: Incrementa su operando en 1.
27.#OperaDecreciente: Disminuye su operando en 1.
28.#AbrirParentesis: Se usa antes de evaluar una expresin lgica o en
mtodos que requieran parmetros. (
29.#CerrarParentesis: Se usa despus de evaluar una expresin lgica o en
mtodos que requieran parmetros. )
30.#AbrirLlave: Se usa antes de realizar una instruccin.
31.#CerrarLlave: Se usa despus de realizar una instruccin.
32.#AbrirCorchete: Se usa para declarar matrices.
33.#CerrarCorchete: Se usa para declarar matrices.
34.#PuntoComa: Se usa siempre al final de cada instruccin ( ; )
35.#Coma: Separa variables declaradas consecutivamente ( , )
36.#Punto: Se usa para acceder a mtodos o propiedades de una variable,
clase u objeto. .
37.//: Para realizar comentarios de una sola lnea.
38./* */: Para realizar comentarios de una o ms lneas.
39.#Add: Concatena o une cadenas.
40.#Div: Permite dividir dos valores del cual el valor resultante ser un
entero.
41.#Redondear: permite aproximar una nmero decimal al valor entero ms
cercano.
42.#Elegir: permite elige un valor al azhar de una lista de valores.
LLAMADAS A FUNCIN:
Los operadores forman un conjunto bastante reducido de operaciones. Ms
comnmente,

las

operaciones

ms

generales

son

representadas

como funciones.
43.La funcin abs entrega el valor absoluto de su argumento:abs(4-5)=1
44.La funcin len recibe un string y entrega su largo:len(hola *10)=40
Los nombres de los tipos tambin sirven como funciones, que entregan el
equivalente de su parmetro en el tipo correspondiente:
GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

COMPILADORES
VI CICLO

45.int : int(3.8)=3
46.float: float(1.5)=1.5
47.suma: suma(5+6)=11
48.intadd: intadd(5+6)=56
49.min entregan el minimo de sus argumentos: min(6,1,8)=1
50.max entregan el mximo de sus argumentos: max(6,1,8)=8
51.La
funcin round redondea
un
nmero
real
al
entero
cercano:round(4.4)=4

ms

Algunas funciones matemticas


pueden ser usadas, pero deben ser
importadas primero usando la sentencia import
52.copysign ( x , y ) :Vuelva x con el signo de y . En una plataforma que
apoya ceros firmados, copysign (1.0, -0.0) devuelve -1.0 .
53.fabs ( x ) :Devuelve el valor absoluto de x .
54.factorial ( x ) :Vuelva x factorial. Eleva ValueError si x no es integral o es
negativo.
55.isinf ( x ) :Compruebe si el flotador x es infinito positivo o negativo.
56.exp ( x ) :Volver E ** x .
57.log ( x [ , de base ] ) :Con un argumento, devuelve el logaritmo natural
de x (a la base e ).Con dos argumentos, devuelva el logaritmo de x a la
propuesta de base , calculado como log (x) / log (base) .
58.log1p ( x ) :Devolver el logaritmo natural de 1 + x (base e ). El resultado
se calcula de una manera que es preciso para x cerca de cero.
59.log10 ( x ) :Devolver el logaritmo en base 10 de x . Esto es generalmente
ms preciso que log (x, 10) .
60.Raizcuadrada ( x ) :Devuelve la raz cuadrada de x .
61.cos ( x ) :Devuelva el coseno de x radianes.
62.seno ( x ) :Devuelva el seno de x radianes.
63.tan ( x ) :Devuelva la tangente de x radianes.
64.ctan(x): Devuelva la cotangente de x radianes.
65.sec(x): Devuelva la secante de x radianes.
66.csc(x): Devuelva la cosecante de x radianes.
67.acos ( x ) :Devuelva el arco coseno de x , en radianes.
68.asin ( x ) :Devuelva el arco seno de x , en radianes.
69.atan ( x ) :Devuelva el arco tangente de x , en radianes.
70.actan(x): Devuelva la arco cotangente de x radianes.
71.grados ( x ) :Convierte ngulo x de radianes a grados.
72.radianes ( x ) :Convierte ngulo x de grados a radianes.
73.acosh ( x ) :Devuelva el coseno hiperblico inverso de x .
74.asinh ( x ) :Devuelva el seno hiperblico inverso de x .
75.atanh ( x ) :Devuelva la tangente hiperblica inversa de x .
76.cosh ( x ) :Devuelva el coseno hiperblico de x .
77.senh ( x ) :Devuelva el seno hiperblico de x .
78.tanh ( x ) :Devuelva la tangente hiperblica de x .
79.pi :La constante matemtica = 3.141592 ..., a disposicin de precisin.
80.e :La constante matemtica e = 2.718281 ..., a la precisin disponible.
REGLAS GRAMATICALES
1. <PROGRAMA>
2. <ESTRUCTURA>

GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

->
->

#Inicio <ESTRUCTURA> #Fin


<DECLARACION><SENTENCIA><ESTRUCTURA
>|<DECLARACION><SENTENCIA>
7

COMPILADORES
VI CICLO

3. <DECLARACION>

->

4. <DECLARACION_VAR>
5. <LISTA_DECLARACION>

->
->

6. <1_DECL>
7. <LISTA_DVARIABLE>

->
->

8. <TIPO>

->

9. <VARIABLE>

->

10.<LETRA>

->

<DECLARACION_VARIABLE>|
<DECLARACION_VARIABLE><DECLARACION_CO
NSTANTE>
<LISTA_DECLARACION>
<1_DECL>#PuntoComa
|
<1_DECL>#Punto_Coma
<LISTA_DECLARACIONES>#Punto_Coma
<TIPO><LISTA_DVARIABLE>
<VARIABLE>
|<VARIABLE>
<LISTA_DVARIABLE>
#Bool | #Byte | #Char | #Decimal | #Double |
#Float | | #Int | #String
<LETRA><VARIABLE> | <DIGITO><VARIABLE> |
<LETRA> | <DIGITO>
a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|
Y|Z

11.<DIGITO>

->

12.<DECLARACION_CONS>
13.<LISTA_CONS>
14.<1_CONS>

->
->
->

15.<NOMBRE_CONS>

->

16.<VALOR>

->

17.<SIGNO>
18. <SENTENCIA>

->
->

19.<SENTENCIA_SI>

->

20.<CONDICION>
21.<OPERA_COMPARA>

->
->

22.< INSTRUCCIN>

->

GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

0|1|2|3|4|5|6|7|8|9
#Constante <LISTA_CONS> #PuntoComa
<1_CONS> | <1_CONS> <LISTA_CONS>
<TIPO><NOMBRE_CONS>
#OperaAsig<VALOR>#PuntoComa
<LETRA><NOMBRE_CON>
|
<LETRA><DIGITO>|< LETRA>
<LETRA> | <DIGITO> | <DIGITO><VALOR> |
<LETRA><VALOR>
| <SIGNO><DIGITO> |
<SIGNO><DIGITO><VALOR> |
+| <SENTENCIA_SI>{<IMPRESIN>}|
<SENTENCIA_PARA>{<IMPRESIN>}|
<SENTENCIA_HACER>{<IMPRESIN>}<SENTEN
CIA_MIENTRAS>{<IMPRESIN>}|
<SENTENCIA_EN_CASO>{<IMPRESIN>}
#Si<CONDICION>
<INSTRUCCIN>
|
#Si<CONDICION>
<INSTRUCCION>
#Sino
<INSTRUCCION>
|
#Si
<CONDICION>
<ESTRUCTURA>
#Sino_Si
<CONDICION>
<INSTRUCCION > #Sino <INSTRUCCION >
<VARIABLE><OPERA_COMPARA><VALOR>
#OperaY | #OperaO | #OperaNegativo |
#OperaIgual | #OperaDesigual | #OperaMenor |
#OperaMayor
|
#OperaMayorIgual
|
#OperaMenorIgual
#Inicio<VARIABLE>
<OPERA_COMPARA>
<VALOR>
#PuntoComa
#Fin
|
#Inicio
<VARIABLE>
<OPERA_COMPARA>
<OPERA_ARITME><VALOR> #PuntoComa #Fin |
<SENTENCIA_SI>| <SENTENCIA_EN_CASO> |
8

COMPILADORES
VI CICLO

23.<OPERA_ARITME>
24.<FUNCION>

->
->

25.<CUERPO_FUNCION>
26.<NOM_FUNCION>
27.<SENTECIA_TRY_CATCH>
28.<SENTENCIA_PARA>

->
->
->
->

29.<CONTADOR>
30.<SENTENCIA_HACER>

->
->

31.<SENTENCIA_EN_CASO>
32.<CUERPO_CASO>

->
->

33.<INSTRUCCIN_CASO>

->

34.<CASO_OPCIONAL>
35.<SENTENCIA_MIENTRAS>
36.<MATRIZ>

->
->
->

37.<DECLARAR_CLASE>
38.<NOMBRE_CLASE>
39.<OBJETO>
40.<METODO_SIN_RETORNO>

->
->
->
->

41.<PARAMETRO>
42.<METODO_CON_RETORNO>

->
->

43.<VALOR_RETORNAR>
45.<CONSTRUCTOR>

->
->

46.<CLASE_HEREDADA>

->

47.<NUMERO>
48.<PALABRA>
49.<MATRIZ_MULTIMENSIO
NAL>

->
->
->

50.<INCREMENTO>

->

51.<LISTA_NUMERO>
52.<LISTA_LETRA>

->
->

GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

<SENTENCIA_PARA> | <SENTENCIA_MIENTRAS>
| <SENTENCIA_HACER>
+ | - | * | / | MOD
<TIPO><NOM_FUNCION>
(<PARAMETROS>)
<CUERPO_FUNCION>
#Inicio <SENTENCIA> #Fin
<LETRA><NOM_FUNCION> | <LETRA>
#Try<SENTENCIA>#Catch<Sentencia>
#Para
<CONTADOR>;<CONTADOR><INSTRUCCIN>
<VARIABLE><OPERA_COMPARACION><DIGITO>
#Hacer
<INTRUCCION>
#Mientras
<CONDICION>
#EnCaso <VARIABLE> #Sea <CUERPO_CASO>
#Inicio
<INSTRUCCIN_CASO>
#PorDefecto
#Fin
<CASO_OPCIONAL>
#Salir
#PuntoComa
|
<CASO_OPCIONAL>
#Salir
#PuntoComa
<INSTRUCCIN_CASO>
#Inicio <VALOR><INSTRUCCIN>
#Mientras <CONDICION> <INSTRUCCION>
<TIPO> [ ] <LETRA> = <TIPO>[<DIGITO>] |
<TIPO>
[
]
<LETRA><VALOR>
=
<TIPO>[<DIGITO><VALOR>]
#Clase <NOMBRE_CLASE><SENTENCIA>
<LETRA><DIGITO> | <LETRA><VALOR>
<DECLARAR_CLASE> <LETRA>
<LETRA><PARAMETROS>#Inicio<SENTENCIAS>
#Fin
|
<LETRA><VALOR><PARAMETROS>#Inicio<SEN
TENCIAS>#Fin
<TIPO><VALOR>| <VALOR>| <PARAMETRO>
<TIPO><LETRA><PARAMETROS>Inicio<SENTEN
CIAS><VALOR_RETORNAR>Fin
|
<TIPO><LETRA><VALOR><PARAMETROS>#Ini
cio<SENTENCIAS><VALOR_RETORNAR>#Fin
#Retornar <VALOR>
<NOMBRE_CLASE><PARAMETROS>#Inicio<SEN
TENCIAS>#Fin
#Clase
<NOMBRE_CLASE>:<NOMBRE_CLASE>#Inicio<
SENTENCIA>#Fin
<DIGITO> | <DIGITO><NUMERO>
<PALABRA><LETRA> | <LETRA>
<TIPO> [ , ] <LETRA> = <TIPO><DIGITO> |
<TIPO>
[
,
]
<LETRA><VALOR>
=
<TIPO><DIGITO><NUMERO>
<OPERA_ARITME><DIGITO>|
<LETRA><OPERA_ARITME><INCREMENTO>|
<OPERA_ARITME>
<NUMERO> |<NUMERO><LISTA_NUMERO>
<LETRA> | <LETRA><LISTA_LETRA>
9

COMPILADORES
VI CICLO

53.<LISTA_PARAMETROS>

->

54.<NOMBRE_ARREGLO>

->

55.<CONTADOR_VAR>
56.<IMPRESION>
57.<LISTA_IMPRESION>

->
->
->

58.<ELEMENTO_IMPRESION
>
59.<OPERADOR_NEGATIVO>
60.<EXPRESION>

->

61.<SENTENCIA_BREAK>
62.<INSTANCIA>

->
->

63.<DECS_ARREGLO>

->

64.<DEC_ARREGLO>

->

65.<TAM_ARREGLO>

->

66.<EXP_ARREGLO>

->

67.<ELEMS_ARREGLO>
68.<ELEM_ARREGLO>
69.<EXP>

->
->
->

70.<RANDOM>

->

GRAMATICA DE UN LENGUAJE DE
PROGRAMACION

->
->

<PARAMETRO><LISTA_PARAMETRO>
|
<PARAMETRO>
<LETRA><DIGITO>|<LETRA>|
<LETRA><LETRA>
<TIPO> #Constante #OperaIgual <DIGITO>
#Mostrar <LISTA_IMPRESION>
<ELEMENTO_IMPRESION>|
<LISTA_IMPRESION><ELEMENTO_IMPRESION>
<EXPRESION>
<EXPRESION><OPERA_ARITME><EXPRESION> |
<OPERADOR_NEGATIVO><EXPRESION>
|
<DIGITO> | <VARIABLE>
<SENTENCIA> #break
<OBJETO>
#Operadorigual
#New
<OBJETO><PARAMETRO>
<DEC_ARREGLO> | <DECS_ARREGLO> #Coma
<DEC_ARREGLO>
<TIPO><NOMBRE_ARREGLO><TAM_ARREGLO>
|
<NOMBRE_ARREGLO>
#OperaIgual
<EXP_ARREGLO>
#AbrirCorchete <NUMERO> #CerrarCorchete |
<TAM_ARREGLO> #AbrirCorchete <NUMERO>
#CerrarCorchete
#AbrirCorchete
<elems_arreglo>
#CerrarCorchete
<ELEMS_ARREGLO> #Coma <ELEM_ARREGLO>
<EXP> | <EXP_ARREGLO>
<PALABRA>
|
<NUMERO>
|
<PALABRA><NUMERO>
#Elegir<nombre_clase><opera_compara>#new
<nombre_clase> | <tipo>#elegir

10

You might also like