【编译原理】文法和语言的基本知识——基本知识要点汇总

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

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值