Skip to content

CP-Homework1

:material-circle-edit-outline: 约 216 个字 :material-clock-time-two-outline: 预计阅读时间 1 分钟

[!ABSTRACT]

Modern Compiler Implementation in C.pdf P46~47 250225

2.1

a

c*a(a|c)*b(a|b|c)*

b

((b|c)*a(b|c)*a(b|c)*)*

c

(1|0)*00

d

穷举

1(0|1)*(0|1)(0|1)(0|1)(0|1)(0|1)(0|1) | 11(0|1)(0|1)(0|1)(0|1) | 10101(0|1) | 1011(0|1)(0|1)

e

不太确定

a|((ba)*b)*(ba)*c)*

f

(00|0[1-7][0-7]*) | (0|[1-9][0-9]*)

g

费马大定律

1|10

2.2

a

有限状态机没有记忆能力,数量关系的确认需要数量值的确定,而数量值无法被有限状态机存储

b

原因同上,回文的识别需要将字符串前半部分与后半部分比较,确切说是需要存储和比较已读取的字符,有限状态机无法实现

c

原因同上,举反例,一对花括号({})在 C 语言中很常见的,而有限状态机无法识别匹配两个配对的花括号

2.5

2b60e57d9328b70bee9b6f345a526da

2.6

注意需要 repeat,直到无法再化简

284719d83a6b59b1ca6a2d5cdc68a20