Búsqueda en el sitio por el término 'parser'
-
13/01/2017
En este artículo voy a presentar un control DataGridView personalizado que permite utilizar fórmulas compuestas por expresiones aritméticas y referencias a las diferentes celdas del control. Además de la librería de clases con el control, he preparado una pequeña aplicación para mostrar cómo utilizar las diferentes características que ofrece.
[Leer Mas...] -
06/01/2017
BNFUP es una librería de clases que implementa un compilador de objetos a partir de la definición de un lenguaje mediante reglas BNF. También proporciona servicios de edición de reglas. En este artículo continúo mostrando como utilizar el editor para compilar y probar nuestros propios objetos mediante el lenguaje que hayamos definido para ello. También mostraré tres ejemplos de implementación.
[Leer Mas...] -
05/01/2017
En esta serie de artículos voy a mostrar una librería de clases que implementa un compilador que utiliza un lenguaje cualquiera definido mediante reglas BNF y que genera como resultado objetos de una librería de clases escrita por el usuario, los cuales deben implementar un sencillo interfaz para que el compilador pueda construirlos e inicializarlos a partir del código fuente.
[Leer Mas...] -
31/07/2016
El Tableaux es una herramienta de cálculo lógico que resulta muy útil para demostrar una conclusión a partir de una serie de premisas, encontrar contraejemplos o modelos de un conjunto de fórmulas lógicas o demostrar que una fórmula es una tautología, es decir, que es verdadera en todos los casos posibles. Se pueden utilizar en inteligencia artificial como base para implementar demostradores automáticos de teoremas.
[Leer Mas...] -
23/07/2016
Existe un problema muy común en programación lineal que consiste en hallar los valores que hacen máxima o mínima una función lineal, dadas una serie de restricciones para dichos valores. Por ejemplo, puede tratarse de hallar una función de coste mínimo o de máxima producción. Para ello, existe un algoritmo desarrollado en 1947 por George Dantzig, llamado Simplex, que permite realizar dichos cálculos de una forma simple y efectiva.
[Leer Mas...] -
18/06/2016
En el anterior artículo de la serie comencé a mostrar cómo implementar un analizador de expresiones aritméticas o parser a partir de las reglas de la gramática en notación BNF, con las clases encargadas de extraer los números, variables y constantes. En este artículo voy a terminar la serie con la clase encargada de analizar la regla principal, que analiza las expresiones en sí. También mostraré una pequeña aplicación de ejemplo que dibuja la gráfica correspondiente a la expresión a partir del objeto generado por el compilador.
[Leer Mas...] -
17/06/2016
En el artículo anterior de esta serie hice un repaso de las principales cuestiones acerca del diseño de la gramática para construir un analizador o parser para expresiones aritméticas. En este artículo voy a mostrar la primera parte de su implementación a partir de las reglas BNF de la gramática, convirtiendo la expresión de entrada, en forma de cadena de texto, en una serie de objetos que podremos utilizar para evaluarla, pudiendo dar diferentes valores a las constantes y variables que la componen.
[Leer Mas...] -
14/06/2016
Cuando estamos trabajando con funciones matemáticas, resulta muy conveniente disponer de un parser, o analizador de expresiones, que nos permita escribir e interpretar diferentes versiones de las ecuaciones que deben ser procesadas por el programa, en lugar de tener que modificar y recompilar el código para adaptarlo a dichos cambios cada vez. En esta serie de artículos voy a mostrar cómo construir un sencillo pero potente analizador, que puede ser extendido fácilmente para tratar con expresiones más sofisticadas, empezando por definir en este artículo la teoría básica necesaria para encarar con éxito este tipo de desarrollos.
[Leer Mas...]