Crea un parser de expresiones matemáticas en JavaScript

Descubre cómo construir un parser de expresiones matemáticas en JavaScript con Earley: maneja precedencia, paréntesis, funciones y evaluación segura y extensible.

31 ago 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Crear un analizador de expresiones matemáticas en JavaScript es un ejercicio ideal para dominar gramáticas y evaluación segura. Sobre todo lo explorado en artículos previos, aquí damos un salto cualitativo usando el algoritmo Earley para analizar y evaluar expresiones con precisión, soportando precedencia, asociatividad, paréntesis y signos unarios. En Q2BSTUDIO, empresa de desarrollo de software, combinamos rigor académico con entrega industrial para construir aplicaciones a medida y software a medida robusto, listos para integrarse en tu plataforma web o backend.

Por qué Earley para un parser matemático en JavaScript

El algoritmo Earley es generalista y eficiente para gramáticas libres de contexto, maneja ambigüedades y se adapta bien cuando la gramática crece con nuevas funciones o operadores. A diferencia de enfoques recursivo descendentes, reduce el trabajo manual de backtracking y permite añadir reglas sin reescribir todo el analizador.

Gramática base de expresiones

Usaremos una gramática clásica con precedencia y asociatividad correcta

Expr -> Expr + Term | Expr - Term | Term

Term -> Term * Factor | Term / Factor | Factor

Factor -> Base ^ Factor | Base

Base -> numero | ( Expr ) | - Base

Esta forma captura el exponente como asociativo a la derecha, respeta el signo unario y permite anidar paréntesis sin límites. Añadir funciones como sin, cos o max resulta tan simple como extender Base a nombre ( listaArgs ).

Fase de tokenización

Antes de alimentar el algoritmo, dividimos la entrada en tokens numero, operador y paréntesis. Un tokenizador simple identifica secuencias de dígitos con punto decimal opcional, ignora espacios y produce símbolos para + - * / ^ ( ). Separar tokenización del parseo evita ambigüedades y simplifica errores.

Cómo trabaja Earley paso a paso

El algoritmo mantiene un chart, una lista de columnas, una por posición del input. Cada columna almacena estados con regla, punto de progreso y origen

Predicción añade estados cuando el punto espera un no terminal

Escaneo avanza si el token coincide con el terminal esperado

Completado propaga avances a los estados que esperaban el no terminal recién completado

Para evaluación, cada estado guarda también nodos del AST. Cuando completamos una regla, construimos un nodo con sus hijos. Así, al terminar con Expr desde la posición cero hasta el final, ya tenemos un árbol evaluable incluso si hubo varias derivaciones posibles. En gramáticas matemáticas bien definidas, la derivación es única.

Construcción y evaluación del AST

El AST usa nodos para operadores binarios y unarios, números y agrupaciones. La evaluación es una pasada postorden que aplica operaciones con control de errores y límites de precisión. Mejoras prácticas

Plegado de constantes para optimizar subárboles numéricos

Detección de división entre cero y rangos seguros

Soporte de variables a través de un entorno clave valor

Funciones con tabla de símbolos, por ejemplo sin, cos, pow y extensibles

Manejo de errores claro

Si no existe un estado completo Expr que cubra toda la entrada, reportamos el token y la posición esperada, sugiriendo por ejemplo falta de paréntesis o operador duplicado. Con el chart es sencillo proponer correcciones cercanas.

Extensiones útiles

Soporte de separadores de miles y locales

Funciones personalizadas con validación de aridad

Operadores personalizados como mod o operador ternario con gramática extendida

Integración en UI con resaltado de errores en tiempo real

Rendimiento y buenas prácticas

Earley rinde muy bien en gramáticas no ambiguas como esta. Aun así, limita retrocesos con memorización de nodos, reusa objetos y corta evaluación cuando detectes errores tempranos. Para cargas intensivas, encapsula el parser en un worker y añade caché por expresión normalizada.

Cómo integrarlo en tu arquitectura

En frontend, encapsula el analizador en un módulo con una API parse y evaluate. En backend Node, expón un microservicio que reciba expresiones, variables y devuelva el resultado con trazas del AST si se requiere auditoría. Donde haya necesidad de cálculos seguros, desde hojas de cálculo web hasta reglas de negocio, este enfoque elimina vulnerabilidades por eval y asegura precisión.

Q2BSTUDIO, tu partner tecnológico

En Q2BSTUDIO diseñamos e implantamos aplicaciones a medida y software a medida que incluyen componentes críticos como parsers, motores de reglas y validadores. Nuestro equipo también impulsa inteligencia artificial, ia para empresas y agentes IA, fortalece la ciberseguridad con auditorías y pentesting, y despliega plataformas escalables con servicios cloud aws y azure. Integramos analítica avanzada mediante servicios inteligencia de negocio y cuadros de mando con power bi para convertir datos en decisiones.

Si buscas un equipo que construya soluciones sólidas de extremo a extremo, desde el parser hasta la interfaz y el despliegue, visita nuestra página de aplicaciones a medida y descubre cómo aceleramos tu roadmap con calidad y velocidad.

Conclusión

Crear un parser de expresiones matemáticas en JavaScript con Earley te da una base extensible, segura y mantenible. Es perfecto para motores de cálculo, validación de reglas y escenarios donde la confiabilidad es clave. En Q2BSTUDIO podemos integrarlo en tu producto, optimizarlo para producción y conectarlo con analítica, seguridad y nube, todo dentro de una solución de software a medida lista para escalar.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat