Beruflich Dokumente
Kultur Dokumente
Contenido
PROYECTO DE TEORIA DE LENGUAJE Y COMPILADOR ...................................................................... 2
Qu es programa JAVA? .............................................................................................................................. 2
COMENZANDO CON EL PROGRAMA: .................................................................................................... 2
SOPORTE DEL PROYECTO ........................................................................................................................... 3
1.
2.
Comentarios: ......................................................................................................................................... 4
3.
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.
i.
ii.
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().
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.
1. Estructura de programa:
El proyecto reconoce el esquema bsico de un programa en java, es decir:
-
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
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:
Decimal:
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;
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;
-
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:
+ suma
resta
* multiplicacin
/ divisin
% modulo
Asignacin:
= asignacin simple
Lgicos:
&& y
|| o
Relacionales:
10.
== igual a
!= diferente que
Condicin:
NOTA:
-
11.
Sentencia:
9
12.
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.
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.
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
}
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
=
=
=
=
=
=
=
"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.
*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:
-
Exp : expresin
Incremento: ++, --