【发布时间】:2010-09-20 09:00:16
【问题描述】:
我正在启动一个需要实现轻量级解释器的项目。 解释器用于执行简单的科学算法。 此解释器将使用的编程语言应该很简单,因为它针对的是非软件开发人员(例如,数学家)。
解释器应该支持基本的编程语言特性:
- 实数、变量、多维数组
- 二进制(+、-、*、/、%)和布尔(==、!=、、=)运算
- 循环(for、while)、条件表达式(if)
- 功能
MathWorks MatLab 是我前进方向的一个很好的例子,只是简单得多。 解释器将用作演示算法的环境;简单的算法,例如求数据集/数组的平均值,或者稍微复杂一点的算法,例如 Gaussian elimination 或 RSA。
我在该主题上找到的最佳/最实用的资源是 Ron Ayoub 在 Code Project (Parsing Algebraic Expressions Using the Interpreter Pattern) 上的条目 - 这是我的问题的缩小版本的完美示例。
紫龙书好像太多了,还有什么更实用的?
解释器将使用 C# 实现为 .NET 库。然而,任何平台的资源都是受欢迎的,因为这个问题的设计架构部分是最具挑战性的。
有什么实用的资源吗?
(请避免“这不是微不足道的”或“为什么要重新发明轮子”的回答)
【问题讨论】:
标签: c# architecture compiler-construction programming-languages