CSCI3130 L01 Part 2/2 Three Basic Concepts
课程:CSCI3130 Formal Languages and Automata Theory · 2026T1 本讲:L01 Part 2/2 Three Basic Concepts · 原件 L01-数学基础-2026T1.pdf(本地课件) p.55–90 定位:理解字母表、字符串、语言和文法四个层次;能重算语言运算,并证明一个文法恰好生成指定语言。 前后:上一份 L01-P1-数学预备.md · 下一份 L02-P1-确定有限自动机.md
p.55 Outline 分节页;p.56 列 languages、grammars、automata,并将自动机留到下一章。
Three Basic Concepts
字母表、串与语言(p.57–58)【新】
p.57 A language is a set of strings
p.57 String: A sequence of symbols from the alphabet
p.57 的**字母表(alphabet)**给出允许使用的符号;**字符串(string)**是有限个符号按顺序排列;**语言(language)**是一些字符串组成的集合。p.58 取 ,其中a是符号,ab是长度2的串, 则是含一个串的语言。顺序属于串的一部分,所以ab与ba不同;集合本身的列举顺序不改变语言。
后续判断表达式时先问它的类型。 合法,因为左边是串、右边是语言;如果写成 ,便把串错误地当作集合。相反, 正是在比较两组串。
p.57 用字母表 给出 cat、dog、house 作为字符串例子。p.58 缩小到 ,列出 a、ab、abba、baba、aaabbbaabab,并命名 。u、v、w 是代表整个串的变量名,不是额外加入字母表的字符。一个符号不能在这一行悄悄换成一个串而不说明,这种类型检查贯穿整门课。
连接与反转(p.59–60)【新】
p.59 的连接(concatenation)将后一串原样接到前一串后:,得到 。字符既不排序也不合并,末尾a与开头b都保留。
p.60 将 从右向左逐符号读取,得到 。上标R是反转操作,不是乘方。补充:反转连接时,先后两段也交换位置,所以 ;例如u=ab、v=baa,则uv=abbaa,反转aabba,而 。这组用于解释顺序的字符串为补充自取。
串长与空串(p.61–63)【新】
p.61 用 表示字符个数:abba长4、aa长2、a长1。p.62 取u=aab长3、v=abaab长5,连接uv=aababaab长8,所以 。连接把两段字符都保留,长度相加的原因就在这里。
p.63 定义空串(empty string) ,长度0。它是一个合法字符串,只不过没有字符;。以abba为例,左右加一段零字符都还是abba。空串不是打印出的希腊字母本身,而是用该记号表示“零个字符”。
子串、前后缀和串的幂(p.64–66)【新】
p.64 a subsequence of consecutive characters
p.64 的关键词是consecutive:substring必须连续,不能任意跳过中间字符。abbab包含ab、abba、b、bbab。p.65 更严格地固定位置:prefix从开头取,suffix从结尾取;两者都包括空串与整个原串。
表(p.65):abbab的前缀和后缀。
| Prefixes | Suffixes |
|---|---|
| λ | abbab |
| a | bbab |
| ab | bab |
| abb | ab |
| abba | b |
| abbab | λ |
p.66 的 是把同一个w连续连接n次。,长度 ;,相当于连接零份。不要把 写成将每个字符分别重复两次。
全部串与语言(p.67–69)【新】
p.67 的 收集字母表能构成的所有有限串,包含 。对 ,先有长度0的空串,再有a、b,再有aa、ab、ba、bb。p.68 的 只收非空串,所以 。这里一个字母本来就非空,删掉空串的结论没有额外障碍。
p.69 的语言是 的任意子集,不要求有限、不要求已经知道算法,也不要求包含某种有意义的英文单词。、 都是语言;“所有串”本身也是语言。
p.69 的第三个有限语言例子是 。它有六个成员;最长成员有六个字符,但这是巧合,语言成员数与最长串长度本来是两个独立的量。p.68 的课件写“Σ 的星闭包减 λ”,这里用 明确表示从集合里删去空串这个成员,避免把集合差误写成集合减一个字符串。
空语言、匹配计数与集合运算(p.70–72)【新】
p.70 强调 。前者有0个串,后者有1个串,而那个串的长度是0。把“集合有多少成员”和“一个成员有多长”分开,就不会被两个0混淆。
p.71 的 要求所有a先出现,接着同样多的b。n=0得空串,n=1得ab,n=2得aabb;abb有1个a、2个b,不属于L。abba虽数量相等,但顺序不符合“a段后接b段”,也不属于这个语言(此反例为补充)。
p.72 直接沿用集合运算:;交集只有ab;前者减后者剩a、aaaa。补语言以 为全集,即 ,因此求补前必须说明字母表。
p.71 还列 aaaaabbbbb 为成员,对应 n=5。p.72 的补语言例子在 下取 ,那么 包含 λ、b、aa、ab、bb、aaa 及其余所有串,唯独排除 a 与 ba。按长度枚举时,长度0有 λ;长度1删去 a 后剩 b;长度2从 aa、ab、ba、bb 中删去 ba 后剩 aa、ab、bb。这解释了课件省略号怎样继续,而不是让读者猜“补”是否仅指字母 a、b 的互换。
语言的反转与连接(p.73–74)【新】
p.73 的 是把每个成员各自反转。;。它不是把集合列举顺序颠倒。
p.74 的 要枚举所有左右选择。原例左边a、ab、ba,右边b、aa,逐项得到a+b=ab、a+aa=aaa、ab+b=abb、ab+aa=abaa、ba+b=bab、ba+aa=baaa,最终集合有这六个串。补充:选择对的数量是两基数相乘,但结果串可能重复;不能一般断言连接语言的基数必为乘积。
把“选择一对”和“得到一个串”分开(补充自取例):令 、。四对选择依次是 、、、,得到 a、aa、aa、aaa。因此 ,只有三个成员;中间两对不同,但连接后留下的串相同,集合不能存两份 aa。这也说明看见 aa 时,分界位置不一定唯一。以后 NFA 猜连接边界、CFG 出现不同推导时,都要区分“过程不同”与“最终串不同”。
再检查两个极端:,因为右边总能选中那个零字符串;,因为右边连一次选择也做不了。前者是“选中长度为零的对象”,后者是“没有对象可选”,不是同一种零。
把 p.74 的完整笛卡尔选择写成表,就能同时看见连接顺序与每一对输入:
| 左串 | 右串 b | 右串 aa |
|---|---|---|
| a | ab | aaa |
| ab | abb | abaa |
| ba | bab | baaa |
表里六格确实互不相同,才得到六元素语言。补充:为什么通常只能说“不超过乘积”:若左、右语言均为 ,四个选择得到 λ、a、a、aa;两个不同选择都得到 a,所以最终语言只有三个元素。
语言幂允许每份选择不同成员(p.75–76)【新】
p.75 的 是n份语言的连接,每份都可独立选成员。,总共 种;,它是含空串的语言,不能写成裸空串。
p.76 对 得 。n与m独立,因为第一次与第二次从L选串可以选不同长度。取n=2、m=3得到aabb与aaabbb,连接aabbaaabbb;不能将两次选择强制成相同n。
考试角度:(A 级:HW01-2026T1-题目.pdf Q3,考p.75的语言三次幂及独立选串)枚举时先列选择,再按最终字符串去重;当前作业不在此直接列出完整提交答案。
p.75 还专门给出 。零次幂不需要从原语言选任何成员,因此结果不依赖这三个串是什么。这也解释了为什么它不是空语言:没有选取动作,仍然得到一个结果——零字符的串。
星闭包与正闭包的边界(p.77–78)【新】
p.77 定义 ,即连接任意有限份,包括0份;p.78 定义 ,至少一份。原例 ,零份产生空串,一份产生a、bb,两份产生aa、abb、bba、bbbb;例如三份a+bb+a得abba。
原页辨析:已视觉核对p.78,页上还写 。这对该页的 成立,但对任意语言需加条件 。若 ,一份就能产生空串,所以 ,而右边为空集。这是两边实际计算出的反例。无条件成立的是 ;不能把字母表的 与任意语言的 无条件混用。
Grammars
从英语规则到推导过程(p.79–81)【新】
p.79 Languages can be described as a system of symbols and the grammars (rules) by which the symbols are manipulated
p.79 以规则描述语言;p.80 将句子分成noun phrase和verb phrase,又把短语拆成名字、冠词、名词、动词、介词等。中间类别是等待展开的位置,最终词是展开结束后留下的结果。
题面(L01-数学基础-2026T1.pdf · 英语句子例子 · p.81)
p.81 Look at the sentence. Is this grammatically correct?
p.81 Joe runs from the car.
p.81 的演示从Sentence开始,展开noun phrase为Name再为Joe;verb phrase展开为verb与prepositional phrase;介词短语展开为from加noun phrase;后者再展开为the car;最后verb变成runs,得到目标句。每步只替换一个允许的类别,其他已经出现的词保留。这里检验的是给定规则能否生成这句话,不是在讨论它现实中是否合乎语义。
p.80 的所有短语规则可以按下表直接用于展开;右栏的两行表示可选方案:
| 待展开类别 | 允许的组成 |
|---|---|
| Sentence | noun phrase + verb phrase |
| noun phrase | Name(例如 Joe);或 article + noun(例如 the car) |
| verb phrase | verb(例如 runs);或 verb + prepositional phrase |
| prepositional phrase | preposition + noun phrase(例如 from the car) |
按 p.81 的展开顺序,把每一步留下的串写清楚:
Sentence
noun phrase + verb phrase
Name + verb phrase
Joe + verb phrase
Joe + verb + prepositional phrase
Joe + verb + preposition + noun phrase
Joe + verb + from + noun phrase
Joe + verb + from + article + noun
Joe + verb + from + the + car
Joe + runs + from + the + car
由原页展开的中间步骤:上面把“+”当拼接符号,不作为最终英文句子的字符。原页在 noun phrase 与 Name 之间还插写一行 noun,并把 article + noun 那一行重复一次;这两处不增加新的终结词,不能据此虚造另一套正式英语文法。p.79 的第二条文字说 grammar 研究 governing the use of language 的规则,正是这些展开约定所扮演的角色。
四元组与一步推导(p.82–84)【新】
p.82 A grammar G is defined as a 4-tuple:
p.82 的 中,V是有限变量集合,T是有限终结符集合,S是起始变量,P是有限产生式集合。**变量(variable)**代表待展开的部分;**终结符(terminal)**是最终串中的符号。有限规则可以重复使用,因此不妨碍生成无限语言。
p.83 的一步推导 在某个上下文中替换一个匹配片段:若 ,则 ;两边上下文不变。 表示零步或多步,不是Kleene星闭包那个“字符串连接操作”,只是同样使用星号表示任意有限次。
p.84 定义 。必须同时满足从S可达、且只剩终结符。含变量的中间串叫sentential form(句型),不能因为已经能推出来就把它收进最终语言。
p.82 的具体四元组是 、、起始变量 S、规则集合 。S 虽然同时出现在 V 和第三个位置,角色不同:V 列出所有可以使用的变量,第三个位置从其中指定“从谁开始”。
p.83 顶部的一般规则写 ,x 属于变量与终结符合起来构成的非空串,y 可以为空串;课件用 (V,T) 记这个混合符号范围。下面的 是用单个待替换位置示范“一步替换”,不能反过来把所有一般文法都限定成左侧单变量。后续 CFG 才专门施加该限制。
由本页展开的操作:在 aaSbb 中,取左上下文 aa、被替换变量 S、右上下文 bb;使用 ,只替换中间 S,得到 aaaSbbb。使用 则得到 aabb。箭头 写在规则表里; 连接实际运行中的前后句型。零步允许 ,但 S 含变量,所以不属于 。
配对生成与额外一个b(p.85–86)【新】
题面(L01-数学基础-2026T1.pdf · Example 1.11 · p.85)
p.85 Consider the grammar: With P given by ,
公式按讲义重排。每用一次 ,左边增加一个a、右边增加一个b;用空产生式结束。算n=2:。中间aaSbb仍有S,只是句型;最后aabb才是句子。全部结果恰为 ,因为每次增加一对且次序固定;反过来任意n可使用递归规则n次后结束。
题面(同一原件 · Example 1.12 · p.86)
p.86 Find a grammar that generates
公式按讲义重排。原页给 。先在末尾固定一个b,再让A生成成对的a与b。n=2时 ;n=0时 ,所以不能把空串误收进这个语言。
任意顺序的等量a、b(p.87–88)【新】
题面(L01-数学基础-2026T1.pdf · Example 1.13 · p.87)
p.87 , , ,
p.87 Does this grammar indeed generate the language?
页上的目标语言是 ,公式按讲义重排,、 分别数a、b出现次数。与p.85不同,这里没有要求所有a排在b之前。
先证生成的都合法:空串计数相同;外包a、b各加1;SS将两个分别等量的串连接后,总数仍相等。再证合法的都能生成:对长度归纳。空串可由空产生式生成;非空平衡串若首尾相反,去掉它们仍平衡,归纳后用aSb或bSa包回去;若首尾相同,利用前缀计数差可切成两个更短非空平衡串,分别归纳后用SS连接。p.88 的Else省略了切分为什么存在,完整补证见附录 A2。
算一遍(用于展开原文法的补充自取串):w=abba,首尾同为a,可拆ab与ba;。aabb则无需拆分:。两条推导都遵守同一套规则。
由 p.88 的 Else 补全必要证明。 假设长度不超过 2n 的全部等量串都能生成,考察长度 2n+2 的串 w。如果首尾同为 a,定义前 k 个字符的计数差 。第一位后 ;因为最后一位是 a 且总差为0,最后一位之前 。每读一个字符,差只加1或减1,因此从1变到−1之间必有一次变成0。取这样的真前缀作为 ,其余作为 。前缀等量,全串也等量,所以余下的串仍等量;两段都非空且比 w 短,归纳假设可以分别使用。首尾同为 b 的情形把正负互换即可。
于是所有首尾同字符的情况都能先用 ,再让左 S 生成 、右 S 生成 。首尾不同的情况已由 aSb 或 bSa 覆盖;连同空串基例,完成“所有合法串都能生成”。必要的切分理由已经放在这里,附录只作重复核验,不是完成主线的必读跳转。
等价文法(p.89–90)【新】
p.89 Two grammars G1 and G2 are equivalent if they generate the same language
p.89 比较 与 。二者都只加配对的外层a、b,也都能停止。n=0由起始变量直接到空串;n≥1时, 先由S加第一对,再由A加剩下n−1对。n=2的过程 。变量数量、推导长度和规则写法不同,都不妨碍最终语言相等。
p.90 为Questions结束页。证明等价要比较全部终结符串,列出一两个共同例子只说明语言有交集,远弱于相等。
考试角度:(A 级:HW01-2026T1-题目.pdf Q3–Q4;HW01-2025T1-题目.pdf Q2,考的是语言幂与计数文法。)见附录 A3。
用一个遗漏的串诊断文法(补充自检)
构造文法时,“不会生成坏串”和“能生成所有好串”是两个独立责任。只用 与 ,每次都各加一个 a、b,所以确实不会生成数量不等的串;但它只能生成所有 a 在前的串,无法生成 ba。因此它可以描述 p.85 的语言,却不能代替 p.87 的文法。反过来,若为了补 ba 就让 S 任意产生 a 或 b,虽然很容易覆盖目标串,却会额外生成 a,破坏第一项责任。
证明第一项时跟着允许的规则走:基础结果合法,每种构造都保持性质。证明第二项时跟着任意目标串的结构走:目标如何拆成更小的合法串,文法中哪条规则负责把它们装回去。两种归纳的对象不同,不能只把一句“归纳可得”重复两遍。
自检:空语言的星闭包和正闭包分别是什么?
先分别计算零份连接与至少一份连接,不要靠记忆删空串。
展开推理与答案
;任何正整数份连接都无法选齐成员,所以为 。故 ,而 。再比较 :至少选一份仍可得到零字符,正闭包并不保证串非空。
本讲核心考点
- 串与语言的类型、空语言与空串语言(p.57–70;C 级)。
- 连接、语言幂的独立选择与去重(p.74–76;A 级 HW01 Q3)。
- 正闭包含空串的条件(p.77–78;C 级,原页等式需限定)。
- 四元组、句型与生成语言(p.82–84;C 级)。
- 文法构造必须证明两个包含方向(p.85–89;C 级)。
附录
A2 Example 1.13 的平衡串切分证明(p.87–88)
用 表示前j个字符中a的数量减b的数量,。一个a使差值加1,一个b使差值减1。
若平衡串首尾相同且为a,;最后一个a加入前 ,否则加入a不能让总差回到0。从1到−1每次只改变1,因此中途必然经过0,存在 使 。前j个字符构成非空平衡串x,其余字符y也平衡,因为总差0减去前缀差0仍为0。两段长度都比原串短。首尾同为b时,,同理必经过0。
归纳假设保证 与 ,于是 。首尾相反的情形则删掉一对外层不同字符,用aSb或bSa包回。归纳基础包括空串;长度2的合法串只有ab、ba,分别由aSb、bSa后接空产生式得到。
另一方面,对推导树结构归纳:空产生式得到0比0;aSb、bSa各在已平衡内串上增添一a一b;SS把两组相等计数分别相加,仍相等。因而没有生成任何不平衡串。两个方向合起来,才完成“恰好”的证明。
A3 作业/往年题演练(非讲义内容):语言幂与计数文法
题面块(HW01-2026T1-题目.pdf(本地课件) · Q3–Q4 · p.1;公式按讲义重排):
p.1 (25pts) Let L = {ab, b}, list all strings in .
p.1 (25pts) Construct a grammar that generates the language .
Q3三次各自选ab或b,共8个选择。依选择顺序列:(ab,ab,ab)→ababab;(ab,ab,b)→ababb;(ab,b,ab)→abbab;(ab,b,b)→abbb;(b,ab,ab)→babab;(b,ab,b)→babb;(b,b,ab)→bbab;(b,b,b)→bbb。八个结果各不相同,所以集合正是这八串;不能只把每个原成员各重复三遍。
Q4取S→aSbb或λ。递归n次先生成n个a和2n个尾部b,再消S;归纳每次保持两倍关系及段序。任意目标n可选恰n次,因此完整。n=2:S⇒aSbb⇒aaSbbbb⇒aabbbb;n=0直接λ。
题面块(HW01-2025T1-题目.pdf(本地课件) · Q2 · p.1):
p.1 Find a grammar for the language . (20%)
指数为非负整数时奇数从1开始。取S→aaS或a。递归k次后结束得a的数量2k+1;每个正奇数都有唯一相应k。例S⇒aaS⇒aaaaS⇒aaaaa,生成5个a,不能生成λ或偶数长度。
来源与证据
历史版本考试证据(本次未重新读取全部试卷):读了 HW01-2025T1-题目.pdf、HW01-2026T1-题目.pdf、HW02-2025T1-题目-更新.pdf、HW03-2025T1-题目.pdf、HW04-2025T1-题目.pdf、HW05-2025T1-题目.pdf、期中练习-含解答-学期待核.pdf、期末-2022T1-资料包.pdf、Final-Exam-2023T1-题目.pdf、Final-Exam-2024T1-题目.pdf、Final-Exam-2025T1-题目.pdf、期末-2023T1-资料包.pdf、期末-2024未核-资料包.pdf;未识别用途的 PDF:无
-
原件:L01-数学基础-2026T1.pdf(本地课件),PDF p.55–90。
-
本次复核:2026-10-13;逐页读取原件文字,视觉核对图片公式、图及文法排版,保留已发布稿的深化段落。