編譯原理學習筆記 2 1 形式語言基礎

2021-10-09 09:58:42 字數 1924 閱讀 2850

前言

更新中。。。

跳過目錄

4、符號串集合

5、句子

6、語言

二、符號串和符號串集合的運算

三、符號串集合的閉包與正閉包

四、為什麼對符號、符號串、符號串集合以及它們的運算感興趣?

習題符號的非空有限集。用σ、v表示。

字母表中的元素,是語言中最基本的不可再分的單位。

一般用 a,b,c等小寫英文本母表示符號。

字母表中符號組成的有窮序列。

有字母表 σ,定義:

(1)ε 是 σ 上的符號串;

(2)若 x 是 σ 上的符號串,且 a ∈ σ,則 ax 或 xa 是 σ 上的符號串;

(3)y 是 σ 上的符號串, iff(當且僅當)y 可由(1)和(2)產生。

由符號串構成的集合。

一般用a,b,c等大寫英文本母表示集合。

字母表上符合某種規則構成的符號串。

語言是字母表上句子的集合,是字母表上符合某種規則的語句組成的。

若x、 y是集合上的兩個符號串,則 x=y iff(當且僅當)組成 x 的每乙個符號和組成 y 的每乙個符號依次相等。

α 為符號串,其長度 | α | 等於組成該符號串的符號個數。

α、 β 是定義在σ 上的符號串, 且 α = xy, β= yx,則 α 和 β 的聯接 αβ = xyyx 也是 σ 上的符號串。注:

符號串集合 a = ,b = ,則乘積 ab =

注:例1:

a = ,b = ,ab = ?

答案:

ab =

ab ≠ ba

例2:a =

問題:

答案:

∅a = a∅ = ∅

定義:例:

a = ,a* = ?

答案:

a* =

例:a = ,a+ = ?

答案:

a+ =

若則 b ⊆ a* 。

1、令 a = ,又令 z = $,寫出如下符號串及其長度:

z,zz,z2,z3,z0

答案:

|z| = 1,|zz| = 2,|z2| = 2,|z3| = 3,|z0| = 0

2、令 a = ,又令 x = 01,y = 2 和 z = 001,寫出如下符號串及其長度:

xy,xyz,x4,(x3) (y2),(xy)2

答案:

xy = 012,|xy| = 3

xyz = 012001,|xyz| = 6

(x3) (y2) = 01010122,|(x3) (y2)| = 8

(xy)2 = 012012,|(xy)2| = 6

3、令 a = ,寫出集合 a+ 和集合 a* 的 7 個最短的符號串。

答案:

a+ :0,1,2,00,01,02,10

a* :ε,0,1,2,00,01,02

4、試證明:

a+ = a a* = a*a

答案:

a+ = a1 ∪ a2 ∪ a3 ∪ a4 …

= a ( a0 ∪ a1 ∪ a2 ∪ a3 …)

= a a*

a*a 同理。

編譯原理學習筆記 語法

高階程式語言可分為 1.強制性語言 2.作用時語言 3.基於規則的語言 4.物件導向的語言 程式語言主要由語法,語義,語用 語用 有關程式設計和語言成分的使用方法,它使語言的基本概念與外界的語言 如數學概念或計算機的物件和操作 聯絡起來。語法 語法是指這樣的一組規則,用它可以形成和產生乙個合式的程式...

編譯原理學習筆記(二)

1 字母表 字母表 符號 字母 數字 標點符號 例 二進位制字母表,ascii字元表 unicode字符集 2 字母表上的運算 1 字母表的乘積 sigma1 sigma2的乘積 sigma1 sigma2 例 2 字母表的冪運算 字母表的n次冪運算是常速為n的符號串構成的集合 sigma的0次冪 ...

編譯原理學習筆記 自上而下分析

語法分析 自上而下分析 面臨的問題 左遞迴性問題 例如 p pa 如果存在非終結符p含有左遞迴的文法將上述自上而下的分析過程陷入無限迴圈 回溯?ll 0 分析法 左遞迴的消除p p 改寫為p p p p 消除左遞迴的做法 把文法g的所有非終結符按人一種順序排列成p1,p2 pn,按此順序執行 for...