Вы находитесь на странице: 1из 19

1

Contenido
PROYECTO DE TEORIA DE LENGUAJE Y COMPILADOR ...................................................................... 2
Qu es programa JAVA? .............................................................................................................................. 2
COMENZANDO CON EL PROGRAMA: .................................................................................................... 2
SOPORTE DEL PROYECTO ........................................................................................................................... 3
1.

Estructura de programa: ........................................................................................................................ 3

2.

Comentarios: ......................................................................................................................................... 4

3.

Palabras reservadas: .............................................................................................................................. 4


-

De tipo: ............................................................................................................................................. 4

De estructura: .................................................................................................................................... 4

De Lenguaje: ..................................................................................................................................... 4

4.

Identificadores: ...................................................................................................................................... 5

5.

Numero:................................................................................................................................................. 5
-

Entero:............................................................................................................................................... 5

Decimal: ............................................................................................................................................ 5

6.

Carcter: ................................................................................................................................................ 6

7.

Cadena: .................................................................................................................................................. 6

8.

Variables: .............................................................................................................................................. 6

9.

Operadores: ........................................................................................................................................... 7
-

Aritmticos: ...................................................................................................................................... 7

Asignacin: ....................................................................................................................................... 7

Lgicos: ............................................................................................................................................ 7

Relacionales: ..................................................................................................................................... 8

10.

Condicin: ......................................................................................................................................... 8

11.

Sentencia: .......................................................................................................................................... 8

12.

Expresin: ......................................................................................................................................... 9

13.

Instrucciones de Control: .................................................................................................................. 9

i.

Instrucciones Selectivas: ................................................................................................................... 9

ii.

Instrucciones Repetitivas: ............................................................................................................... 11

FUNCIONAMIENTO DEL PROYECTO ....................................................................................................... 12


ANEXO: ............................................................................................................................................................. 1

2
PROYECTO DE TEORIA DE LENGUAJE Y COMPILADOR
El presente proyecto consiste en la creacin de un compilador bsico del lenguaje JAVA con las
fases de lexicogrfico, y sintctico. Los programas aceptados son bsicos y con programacin
estructurada, es decir no soporta la Programacin Orientada a Objetos.

Qu es programa JAVA?
Un programa Java es una coleccin de clases. Algunas clases se escriben y algunas forman
parte del lenguaje Java. Un programa Java debe contener como mnimo un mtodo esttico
denominado main(). El programa comienza especificando el nombre de esta clase al sistema
Java al tiempo de ejecucin que llama al mtodo main().

COMENZANDO CON EL PROGRAMA:


Los programas en Java son escritos en mtodos o tambin llamados funciones, estas a su vez
estn contenidas en clases, las cuales pertenecen a un paquete determinado.
Como ya se menciono el mtodo que debe incluirse como mnimo y principal es el mtodo
esttico main ().

Ejemplo:

*Ejemplo del
esquema de
un proyecto
en el ID
NetBeans 7.3

Como se puede apreciar la clase MiProyecto.java se encuentra dentro del paquete miproyecto.

Nombre del Paquete


o Nombre de la Clase
Nombre de los Mtodos

Este es el esquema de una clase en lenguaje Java.

SOPORTE DEL PROYECTO


A continuacin se menciona el soporte y alcance que tiene el proyecto, los ejemplos son
soportados por este.

1. Estructura de programa:
El proyecto reconoce el esquema bsico de un programa en java, es decir:
-

Nombre del Paquete


o Nombre de la Clase
Nombre del Mtodo main()
//programacin estructurada

Ejemplo:

package miproyecto;
public class MiProyecto {
public static void main(String[] args) {
// programacion estructurada
}
}

4
2. Comentarios:
Los comentarios permiten aadir al cdigo fuente notas o comentarios de texto que
son ignorados por el compilador, los comentarios aceptados por el proyecto son:
a- //Comentario de una sola lnea
b- /* Comentario
De varias lneas */

3. Palabras reservadas:
Ciertas palabras estn reservadas para su uso interno por Java y no se pueden utilizar
como nombres de variables.
De tipo:

byte

short

int

long

float

double

boolean

char

String

if

else

for

switch

while

case

do

break

default

De estructura:

De Lenguaje:

import

JOptionPane new

print

awt

text

package

static

java

public

return

println

event

swing

main

equals

util

class

void

err

io

add

args

false

Scanner

private

System

app

lang

super

in

true

javax

protected

out

let

net

this

JFrame

5
4. Identificadores:
Un identificador es el nombre de variables, mtodos, clases e interfaces. Un
identificador es una secuencia ilimitada de caracteres alfabticos o dgitos (Unicode)
que comienzan con un carcter alfabtico.

Gramtica:
identificador letra | identificador digito | identificador letra
letra a|b|c..|x|y|z|A|B|C.|X|Y|Z|
digito 0|1|2|3|4|5|6|7|8|9
Ejemplo: sistemas5

5. Numero:
-

Entero:

El proyecto reconoce a enteros positivos como negativos.


Gramtica:
entero digito | - digito | entero digito
digito 0|1|2|3|4|5|6|7|8|9
Ejemplo: 77, -1234
-

Decimal:

El proyecto reconoce a decimales positivos como negativos.


Gramtica:
decimal entero . digito | decimal digito
entero digito | - digito | entero digito
digito 0|1|2|3|4|5|6|7|8|9
Ejemplo: 77.77, -1234.5678

6
6. Carcter:
Un carcter esta constituido por un solo CARCTER UNICODE entre comillas simples, el
proyecto no acepta como CARCTER UNICODE a comillas dobles () y a comillas
simples ()
Ejemplo: m, A, 2, + no acepta y

7. Cadena:
Una cadena esta constituida por un CARCTER UNICODE o una serie de estos entre
comillas dobles, el proyecto no acepta como CARCTER UNICODE a comillas dobles ()
y a comillas simples ()
Ejemplo: m, dominguez, 2, 3+3=6 no acepta y

8. Variables:
Las variables son unidades bsicas de almacenamiento en Java. Una variable se define
por la combinacin de un identificador, un tipo y un inicializador opcional.
-

Declaracin de variables:
Nombretipo identificador ;
Nombretipo identificador = expresin;

Es posible declarar dos o ms variables a la vez:

Nombretipo id1, id2, ;

Ejemplo:

Acepta: cuando es una declaracin de variable mltiple, solo se inicialice una y esta
debe ser el ultimo en ser mencionado.
int i = 100 + 4;
char c = d;
int n1, n2 = 2;

7
char n, m, o, p = a;
-

No Acepta: a la inicializacin mltiple de una declaracin de una sola lnea.


int a = g, f = g + h, f = 4 + 6, g = y;
Opcin: inicializar de manera individual.
-

int a = g;

int f = g + h;

int f = 4 + 6;

int g = y;

9. Operadores:
Los operadores permiten a las expresiones combinarse en expresiones ms complejas.
El proyecto soporta una coleccin grande de operadores que se pueden utilizar para
manipular datos, incluyendo operadores aritmticos, asignacin. As como de relacin y
lgicos.
-

Aritmticos:

Se utilizan en expresiones matemticas de igual modo que se utilizan en


algebra.

+ suma

resta

* multiplicacin

/ divisin

% modulo

Asignacin:

Se utiliza para asignar un valor a una variable.

= asignacin simple

Lgicos:

Se utilizan para manipular condiciones.

&& y

|| o

Relacionales:

Determina la relacin que un operador tiene con otro.

10.

== igual a

< menor que

> mayor que

>= mayor o igual que

<= menor o igual que

<> diferente que

!= diferente que

Condicin:

Determina la relacin que existe entre identificadores.


Construccin:
Identificador(tipo boolean)
Identificador operadorRelacin identificador
El proyecto tambin soporta condiciones anidadas por un OPERADOR LGICO.
condicin operadorLogico condicin operadorLogico operadorLogico condicin

NOTA:
-

El proyecto soporta que se ingrese CADENA, CARCTER, NMERO y VALOR


BOOLEANO (true y false) en lugar de un IDENTIFICADOR.

11.

Sentencia:

Una sentencia representa un proceso bsico de la programacin estructurada.


Construccin:
Identificador = expresin ;

9
12.

Expresin:

Es una combinacin de operadores aritmticos, nmeros e identificadores.


Construccin:
Identificador
Numero
Identificador operadorAritmtico Identificador
Numero operadorAritmtico nmero
Identificador operadorsAritmtico numero
Numero operadorAritmtico Identificador
El proyecto soporta expresiones anidadas unidas por un OPERADOR ARITMETICO:
Expresin operadorAritmtico expresin .. operadorAritmtico expresin

13.

Instrucciones de Control:

Las siguientes estructuras tal como se presentan son soportadas por el proyecto. No se
acepta la colocacin de una instruccin de control dentro de otra.
i. Instrucciones Selectivas:
1.

Selectiva simple: if

if ( condicin ) {
<Conjunto de sentencias>
}
2.

Selectiva doble: if else

if ( condicin ) {
<Conjunto de sentencias>
}else{
<Conjunto de sentencias>
}

10

if ( condicin ) {
<Conjunto de sentencias>
}else if ( condicin ) {
<Conjunto de sentencias>
}else if ( condicin ) {
<Conjunto de sentencias>
}else if ( condicin ) {
<Conjunto de sentencias>
}else{
<Conjunto de sentencias>
}

3.

Selectiva mltiple: switch

switch(identificador){
case <valor1>://numero,carcter,cadena,identificador
<Conjunto de sentencias>
break;//opcional
case <valor2>://numero,carcter,cadena,identificador
<Conjunto de sentencias>
break; //opcional
.
.
default: //opcional
<Conjunto de sentencias>//opcional
break; //opcional
}

11
switch(identificador){
case <valor1>: ..case <valor5>://numero,carcter,cadena,identificador
<Conjunto de sentencias>
break;//opcional
case <valor6>: ..case <valor10>://numero,carcter,cadena,identificador
<Conjunto de sentencias>
break; //opcional
.
.
default: //opcional
<Conjunto de sentencias>//opcional
break; //opcional
}

ii. Instrucciones Repetitivas:


1.

Bucle: while

while ( condicin ) {
<Conjunto de sentencias>
break; //opcional
}

2.

Bucle: do while

do{
<Conjunto de sentencias>
break; //opcional
} while ( condicin )

12
3.

Bucle: for

for ( <declaracionVariable>< condicionSimple> ; <identificador ><incremento>){


<Conjunto de sentencias>
break; //opcional
}
//se recomienda que <declaracionVariable> sea sin expresin para que se asemeje
//mas al lenguaje
//< condicionSimple> es una condicin sin anidar
//<incremento> puede ser ++ o --

FUNCIONAMIENTO DEL PROYECTO


Se evaluara la siguiente estructura:
package miproyecto;
public class MiProyecto {
public static void main(String[] args) {
int m = 1;
int n = 2;
int suma = 0;
while (m <= n) {
suma = m + n;
}
int dt = 0;
int k = 0;
int ids = 0;
String sds = "";
switch (ids) {
case 0: sds
case 1: sds
case 2: sds
case 3: sds
case 4: sds
case 5: sds
case 6: sds
}
}
}

=
=
=
=
=
=
=

"viernes"; break;
"sabado"; break;
"domingo"; break;
"lunes"; break;
"martes"; break;
"miercoles"; break;
"jueves";;

13

Al iniciar la aplicacin, se mostrar un una hoja en blanco, es aqu donde se debe colocar lo
que queramos evaluar.

14
En las opciones fases de compilador se elegir la etapa a evaluar, en este caso ser A. LEXICO
(Anlisis Lxico).

Al elegir esta opcin se mostrara un ventana, donde esta cada toquen que la aplicacin pudo
encontrar.

15
*Esta tabla contiene el toquen encontrado, el tipo de este, su ID, la lnea donde se encontr, y
el bloque donde se encuentra (un bloque viene ser la agrupacin de llaves donde se
encuentra).
Al seleccionar FILE, este nos mostrar la opcin de ver la TABLA DE SIMBOLOS.

*Esta tabla nos mostrara los datos ingresados por el usuario, ms no las palabras reservadas.
Nos dar el toquen, el ID, la lnea declarada, tipo de dato, lneas donde se ha llamado y el
bloque donde se encuentra.

16
Regresando a la ventana principal, ahora seleccionaremos el Analizador Sintctico.

Esta seleccin nos mostrara todos los errores sintcticos existentes en la estructura ingresada
a ser evaluada.
Se nos mostrara una ventana donde estarn estos errores, en caso de no existir,
visualizaremos el esta ventana NO EXISTE ERRORES.

Para ser ms demostrativo se ingresaran errores para visualizar las salidas.

*Cuando se encuentra algn error, se mostrara cual es el error, la lnea donde surgi y lo que se
espera para evitar este error.
Para evitar posibles errores se ha incorporado en la seccin: ACERCA/RESTRICCIONES/ un
pequeo documento donde se encuentran los datos soportados del proyecto.

1
ANEXO:
TERMINOS USADOS EN LOS MENSAJES DE ERROR:
-

Tipo: tipo de variable (int, boolean, doubl , etc)

Usuario: datos ingresados por usuario

Exp : expresin

Iniciar: declaracin de una variable

Id: dato ingresado por usuario, nmeros, cadena o carcter.

Incremento: ++, --

Op_rel: operador de relacin (==, <,<=, etc.)

Op_ter: operador aritmtico

Вам также может понравиться