Академический Документы
Профессиональный Документы
Культура Документы
OBJETIVO ......................................................................................................................... 1
MATERIAL Y EQUIPO:...................................................................................................... 3
DESARROLLO .................................................................................................................. 3
CÓDIGO: ....................................................................................................................... 4
RESULTADO ..................................................................................................................... 6
CONCLUSIÓN ................................................................................................................... 8
PRÁCTICA NO. 1
NOMBRE DE LA PRÁCTICA
Analizador de expresiones
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
OBJETIVO
Desarrollar software de base: traductor, intérprete o compilador
FUNDAMENTO TEÓRICO
Java: Java es un lenguaje de programación de propósito general, concurrente, orientado a
objetos, que fue diseñado específicamente para tener tan pocas dependencias de
implementación como fuera posible. Su intención es permitir que los desarrolladores de
aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido
en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que
es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es,
a partir de 2012, uno de los lenguajes de programación más populares en uso,
particularmente para aplicaciones de cliente-servidor de web, con unos diez millones de
usuarios reportados.
Esta civilización sería completamente distinta si los lenguajes hablados exigieran tanta
exactitud sintáctica como los lenguajes de programación. La mayoría de las
especificaciones de los lenguajes de programación no describen cómo debe responder un
compilador a los errores; la respuesta se deja al diseñador del compilador. Considerar
desde el principio el manejo de errores puede simplificar la estructura de un compilador y
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
mejorar su respuesta a los errores. Se sabe que los programas pueden contener errores de
muy diverso tipo. Por ejemplo, los errores pueden ser:
Otra razón es la precisión de los métodos modernos de análisis sintácticos, que pueden
detectar la presencia de errores dentro de los programas de una forma muy eficiente. La
detección exacta de la presencia de errores semánticos y lógicos en el momento de la
compilación es mucho más dificil. En esta sección se presentan algunas técnicas básicas
para recuperarse de errores sintácticos; en este capítulo se estudia su implantación junto
con los métodos de análisis sintáctico.
Se debe recuperar de cada error con la suficiente rapidez como para detectar errores
posteriores.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
MATERIAL Y EQUIPO:
Laptop
IDE netbeans, jcreator o eclipse.
JDK versión actualizada.
Manual de prácticas de la materia
DESARROLLO
Se realizó un programa en lenguaje java sin interfaz gráfica, dicho programa se encarga de
verificar que una expresión matemática se encuentre escrita correctamente que no le falta
un paréntesis y que no le falte algún identificador.
Para realizar el código que lleva por nombre “ErrorExpresiones” se utilizó la clase principal
MAIN en la cual dentro de ella solo se hace el procedimiento de leer la expresión que se va
a analizar y esta cadena se manda al método llamado ANALIZAR en cual realiza como
primera función leer el tamaño de la expresión, posteriormente entra a un ciclo en el cual
ira verificando la expresión si a esta le hace falta cerrar un paréntesis incrementa un
contador o abrir un paréntesis igual incrementa un contador, posterior mente verifica que
no le haga falta algún identificador esto lo hace comparando si después es diferente de
alguno de los contadores, pero antes de ingresar al siguiente IF primero pasa por el de IF
de los contadores que si son iguales de un operador si es así incrementa otro contador,
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
CÓDIGO:
import java.util.*;
import java.io.*;
}
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
if(val.equals("(")){ap++;}
if(val.equals(")")){cp++;}
if(val.equals("+")||val.equals("-")||val.equals("*")||val.equals("/")){
y++;
}
if(valor!='('&& valor!=')'&& valor!='+'&& valor!='-' && valor!='*'&&
valor!='/'){
x++;
}
}
if(ap == cp && y !=x){
System.out.println("Expresion correcta");
}
if(y==x){
System.out.println("¡ERROR! Falta un identificador");
}
if(ap!=cp){
System.out.println("¡ERROR! Falta un parentesis");
}
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
RESULTADO
En esta imagen se puede comprobar que la expresión es ingresada correctamente
En esta se puede comprobar que se ingresó la expresión incorrecta pues manda un mensaje de
error que hace falta un paréntesis.
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Aquí es donde se muestra que la expresión es incorrecta pues le hace falta paréntesis e identificador
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
CONCLUSIÓN
Como se ve observa esta práctica es muy sencilla pues solo es verificar que la expresión
ingresada este completa si no es así marca un error y manda un diciendo que lo que le
hace falta algo, en este ejemplo se puede ver que si le hace falta un paréntesis o
identificador que es el caso de esta práctica que manda error si es que hace falta los dos o
uno de los dos.