halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点
文法和语言的基本知识——基本知识要点汇总
【更新日志】
最近更新:
- 暂无编辑内容,持续更新中……
程序设计语言的描述
程序设计语言的三个考虑因素:语法、语义、语用
- 语法:对语言结构的定义
- 语义:描述了语言的含义
- 语用:从使用的角度描述语言
非形式化定义与形式化定义
- 非形式化定义:自然语言描述
- 形式化定义:用符号式子组成的序列描述
字母表、符号、符号串
基本概念
字母表: 字母表 ∑ 是一个元素的非空有穷集合
- 非空——至少包含一个元素
- 元素——可以是字母、数字或其他符号
符号(字符): 字母表中的元素
符号串(字): 指字母表中符号的有穷序列
- 建立在指定字母表上,有字母表上的有穷个符号组成
- 符号串中符号的顺序不可忽视,如 ab 与 ba 是字母表上的两个不同的符号串
串的长度: 符号串中符号的长度。eg:串 s 的长度,通常记作|s|
不包含任何符号的符号串称为符号串,其长度为0,用 ε 表示

运算法则
符号串的连接: 设 x 和 y 是符号串,则串 xy 称为它们的连接。eg:设 x = abc,y = 10a,则 xy = abc10a,yx = 10aabc
- 空串是连接运算的单位元,即对任意一个符号串x,有 ε x = x ε = x
- 设 x,y,z是三个字符串,如果x=yz,则称y是x的前缀,z是x的后缀
符号串的幂运算: 串s的n次幂,即将n个s连接起来

集合的乘积:(以字母表运算为例)

集合的幂运算:

本文介绍了程序设计语言的文法和语言基础知识,包括字母表、符号串、文法的形式定义、语言的形式定义等内容,并探讨了文法化简变换、文法的二义性等问题。

1万+

被折叠的 条评论
为什么被折叠?



