【发布时间】:2021-09-10 13:05:58
【问题描述】:
解析表达式:IF i> i THEN i = i + i * i
使用如下CFG定义的一种小型编程语言,
S → ASSIGNMENT$| GOTO$| IF$| IO$
ASSIGNMENT$ → i = ALEX
GOTO$ → GOTO NUMBER
IF$ → IF CONDITION THEN S
| IF CONDITION THEN S ELSE S
CONDITION → ALEX = ALEX| ALEX ≠ ALEX| ALEX > ALEX
| CONDITION AND CONDITION
| CONDITION OR CONDITION
| NOT CONDITION
IO$ → READ i| PRINT i
提示:
- ALEX 代表代数表达式
- 以 $ 结尾的名称是类
- 终端是
{ = GOTO IF THEN ELSE ≠ > AND OR NOT READ PRINT } -
i、ALEX和NUMBER的定义中引入了任何终端。
【问题讨论】:
-
这是从哪里获取的?你能给我们看看原件吗?
标签: parsing context-free-grammar finite-automata context-free-language automata-theory