Una pieza fundamental en las simulaciones que he escrito es el evaluador de expresiones. Por lo general cuando yo ingreso una expresión matemática como "5+4*3", para el lenguaje de programación tan solo es un String, no significa nada mas. El evaluador de expresiones toma esa expresión guardada en un String, la interpreta y emite un resultado, que en el caso del ejemplo sería 17.
Desarrollé un evaluador de expresiones hace mas de una década cuando cursaba la carrera de Ingeniería de Sistemas. Y este ha sido el que he usado desde entonces. Pero ya con la experiencia obtenida en todos estos años pensé en volver a reescribir este código para darle mayor flexibilidad, romper varios límites y hacerlo mas veloz. Estos son los resultados.
Evaluador de expresiones paso a paso en siete lenguajes de programación: C++, C#, Visual Basic .NET, Java, JavaScript, PHP y Object Pascal (Delphi). Enero de 2013
Una versión mucho más rápida, con mas validaciones de sintaxis (25 en total), más sencilla de entender y con una funcionalidad esperada: el poder trabajar con el menos unario. La explicación de como se desarrolló este evaluador paso a paso en este enlace http://www.etnassoft.com/biblioteca/evaluador-de-expresiones-algebraicas-ii/ . Aquí puede descargar el código fuente para esos lenguajes de programación: DESCARGA VERSION 2.0
Evaluador de expresiones paso a paso en siete lenguajes de programación: C++, C#, Visual Basic .NET, Java, JavaScript, PHP y Object Pascal (Delphi). Mayo de 2012
He escrito un libro dedicado a como se implementa un evaluador de expresiones paso a paso, está ubicado en OpenLibra http://www.etnassoft.com/biblioteca/evaluador-de-expresiones-algebraicas/ . Pongo aquí los archivos de cada paso para su descarga:
Paso 1: Evaluando la sintaxis
Paso 2: Expresión simple de sólo números y operadores
Paso 3: Expresión simple de sólo números, operadores y variables
Paso 4: Uso de paréntesis
Paso 5: Uso de funciones