Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MathParser & Plotter - Intérprete y Evaluador de Expresiones Matemáticas

Java Compiler Theory GUI & Plotting License

Intérprete por línea de comandos (REPL) y evaluador de expresiones algebraicas y trascendentes implementado en Java, con diseño basado en Teoría de Compiladores: análisis léxico (Tokenización), análisis sintáctico (Gramática libre de contexto y balanceo), evaluación dinámica de variables y graficación gráfica de funciones en 2D.


Pipeline de Compilación e Interpretación

flowchart LR
 Input["Entrada: Ecuación Matemática"] --> Lexer["Analizador Léxico (Tokenizador AToken)"]
 Lexer --> Tokens["Stream de Tokens"]
 Tokens --> Parser["Analizador Sintáctico (VerificarEcu)"]
 Parser --> AST["Árbol de Expresión Válido"]
 AST --> Evaluator["Evaluador de Variables (Evaluador.java)"]
 Evaluator --> Plotter["Graficador 2D (GraphicFunction)"]
Loading

Módulos y Componentes del Sistema

  • AToken.java (Analizador Léxico): Identifica y clasifica lexemas en tokens: operadores aritméticos (+, -, *, /, ^), funciones trigonométricas/matemáticas (sin, cos, tan, log, sqrt), números flotantes y variables.
  • VerificarEcu.java (Analizador Sintáctico): Valida la precedencia de operadores, balanceo estricto de paréntesis y coherencia gramatical de las ecuaciones ingresadas.
  • Evaluador.java (Motor de Evaluación): Resuelve expresiones matemáticas asignando valores dinámicos a variables desconocidas.
  • GraphicFunction.java (Renderizado Gráfico 2D): Módulo gráfico en Java Swing/AWT para graficar funciones $f(x)$ sobre un plano cartesiano interactivo con cálculo de rangos.
  • ProyectoV01.java (CLI REPL): Shell interactivo (GP>) para cargar archivos de datos, inspeccionar ecuaciones y ejecutar comandos de evaluación.

Estructura del Repositorio

src/
└── Logica/
 ├── ProyectoV01.java # Punto de entrada CLI (REPL loop)
 ├── AToken.java # Tokenizador y analizador léxico
 ├── VerificarEcu.java # Validador sintáctico y chequeo de reglas gramaticales
 ├── Evaluador.java # Motor de cálculo y evaluación de expresiones
 ├── GraphicFunction.java # Visualizador gráfico cartesiano en 2D
 └── Datos.txt # Archivo de prueba con ejemplos de ecuaciones

Guía de Compilación y Ejecución

Prerrequisitos

1. Clonar el Repositorio

git clone https://github.com/Angelblazel/mathparser-compilador-java.git
cd mathparser-compilador-java

2. Compilar los Archivos Java

javac -d bin src/Logica/*.java

3. Ejecutar el Intérprete Interactivo

java -cp bin Logica.ProyectoV01

4. Comandos de la Consola Interactiva (GP>)

  • leer <archivo> : Carga un archivo con listado de ecuaciones (ej: leer Datos.txt).
  • listar : Muestra las ecuaciones cargadas en memoria.
  • seleccionar <indice> : Selecciona una ecuación activa para operar.
  • verificar : Ejecuta el análisis sintáctico y léxico sobre la ecuación seleccionada.
  • evaluar <var=val> : Evalúa la función sustituyendo las variables por valores numéricos.
  • graficar : Despliega la ventana con la curva gráfica de la función en 2D.
  • exit : Finaliza la sesión del intérprete.

Contexto Académico

Proyecto desarrollado de forma colaborativa en equipo (3 integrantes) para la carrera de Ingeniería de Sistemas en la Universidad Nacional Mayor de San Marcos (UNMSM).

About

Intérprete interactivo (REPL) y evaluador de expresiones matemáticas con analizador léxico, sintáctico y graficador 2D en Java.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /