10 个版本
0.0.10 | 2024 年 5 月 29 日 |
---|---|
0.0.9 | 2024 年 4 月 25 日 |
0.0.8 | 2024 年 3 月 25 日 |
0.0.7 | 2024 年 1 月 1 日 |
0.0.6 | 2023 年 12 月 31 日 |
#249 在 数学
52 每月下载量
51KB
523 代码行
逻辑跟踪器
逻辑跟踪器是一个简单的 crate,它读取逻辑命题并将其解释为 构建命题的真值表和 AST。
使用正则表达式验证输入并对命题进行标记化。
还实现了 Shunting Yard 算法(尚未)来构建 AST。
示例
查看 示例 目录,了解如何使用该 crate。
cargo run --example <example name>
路线图
- 读取逻辑命题
- 标记化命题
- 验证输入标记(仅有效标记)
- 变量(仅字母)
- 逻辑运算符(与、或、非、蕴含、当且仅当)
- 数学运算符(加、减、乘、除、幂)
- 复合表达式(仅数字、变量、带下标的变量)
- 解析命题(确保有效)
- 构建 AST(Shunting Yard 算法)(使用后缀表示法)
- 为 AST 添加表示法(前缀、中缀、后缀)
- 解决命题(评估 AST)
- 添加真值表、AST、函数等美观的输出
- 将命题简化为其最简形式(布尔代数)
- 重新组合复合表达式(布尔代数)
- 应用德摩根定律(布尔代数)
- 应用分配律、结合律和交换律(布尔代数)
- 添加更多示例
- 添加更多测试
- 改进文档
- 改进 crate 的导入/导出(以提高其作为库的可用性)
考虑事项
- 添加一些并行计算(以提高性能)
未来
- 添加复杂数学迭代(和、积等)(以便能够解决更复杂的命题)
- 测试复杂数学迭代的命题
- 添加组合逻辑(多路复用器、解码器等)
- 添加时序逻辑(触发器、寄存器等)
- 添加一些几何证明(以便能够解决几何问题)
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
或类似的内容
我希望使这个 crate 完全独立于任何其他 crate.
所以, 我将亲自实现解析器...
但我还会检查 pest crate 看看它是如何工作的,以及我是否可以在其他项目中使用它...(也许在将来)
许可证
本项目采用 MIT 许可证 进行许可
依赖关系
~0.3–0.8MB
~11K SLoC