Estoy comenzando un proyecto en el que necesito implementar un intérprete liviano. El intérprete se usa para ejecutar algoritmos científicos simples. (. Por ejemplo, los matemáticos) El lenguaje de programación que este intérprete uso debe ser simple, ya que se dirige a los desarrolladores de software noConstruyendo un intérprete simple
El intérprete debe apoyar lenguajes de programación básicos características:
- Los números reales, variables, matrices multidimensionales
- binarios (+, -, *, /,%) y booleanas (==,! =, <,>, < =,> =) operaciones
- Loops (para, al tiempo) , Expresiones condicionales (si)
- Funciones
MathWorks MatLab es un buen ejemplo de adónde voy, simplemente mucho más simple. El intérprete se usará como un entorno para demostrar algoritmos; algoritmos simples como encontrar el promedio de un conjunto de datos/matriz, o algoritmos ligeramente más complicados como Gaussian elimination o RSA.
El recurso mejor/más práctico que encontré sobre el tema es la entrada de Ron Ayoub en Code Project (Parsing Algebraic Expressions Using the Interpreter Pattern), un ejemplo perfecto de una versión reducida de mi problema.
El Libro del Dragón Púrpura parece ser demasiado, ¿algo más práctico?
El intérprete se implementará como una biblioteca .NET, utilizando C#. Sin embargo, los recursos para cualquier plataforma son bienvenidos, ya que la parte de arquitectura de diseño de este problema es la más desafiante.
¿Algún recurso práctico?
(evita por favor “esto no es trivial” respuestas o “por qué volver a inventar la rueda”)
¡Libro excepcional! El lenguaje de scripts descrito en el libro se implementa en C# en http://www.codeproject.com/KB/cs/Conscript.aspx –
Lo curioso es que Alex Varanese y yo nos remontamos mucho atrás, solíamos hablar sobre irc en nuestros jóvenes adolescentes. Es interesante ver que él es un autor ahora. Era un maestro del ensamblaje x86. – FlySwat