-6

我有一个项目,我将创建一个真值表,用户将输入命题及其运算符,我的程序将输出提供真值表的真值。

我有以下问题:

  1. 我可以使用 Turbo c 的解析技术吗?
  2. 我应该如何在 turbo c 中解析这个表达式?前任。(p ^ q) -> r
  3. 一旦我解析了表达式,我应该如何生成真值表?表达式的每个部分都需要分成其最小的组件,并从表格的左侧到右侧重新构建。我将如何评价这样的事情?

任何人都可以向我提供有关解析这些任意表达式并最终评估解析表达式的提示(或链接)吗?

4

1 回答 1

0

让我试着回答你的问题。

  1. 是的。没有理由你不能。
  2. 您需要编写某种词法分析器来将表达式转换为标记。然后,您可以使用调车场算法将表达式转换为您可以轻松评估的内容。
  3. 使用 (2) 的结果并在小型堆栈机中对其进行评估。将每个自由变量设置为所有可能的组合以生成真值表。

一般来说,解析任意语言是不可能的。Dragon Book(编译器:原理、技术和工具)中对编译器构造(这是您感兴趣的子领域)进行了很好的介绍。虽然这是一个很大的领域,但我建议您学习编译器构造类。

另外,考虑为最近的事情放弃 Turbo C。Turbo C 是古老的,充满了奇怪的怪癖。

于 2016-02-14T10:18:26.157 回答