编译原理(3)总结

上下文无关文法#

定义:
  上下文无关文法G是一个四元组,G=(VT,VN,S,P),其中
  VT:终结符(Terminal)非空集合
  VN:非终结(Nonterminal)非空集合,且VTVN=
  S:文法的开始符号,SVN
  P:产生式有限集合,每个产生式形式为

Pα,PVN,α(VTVN)

  且文法开始符号S必须在某个产生式的左部出现一次。

巴科斯范式(BNF)

“→”用“::=”表示,小写字母为终结符,大写字母为非终结符。
约定:

Pα1,Pα2,...,Pαn

可缩写为

Pα1α2...αn

其中,“|”读成“或”,称αi为P的一个候选式,表示一个文法时,通常只给出一个开始符号和产生式

文法生成语言#

直接推导

定义:
   称αAβ直接推出αγβ,即

αAβαγβ

  仅当Aγ是一个产生式,且α,β(VTVN)
  如果α1α2...αn,则称这个序列是从α1αn的一个推导。若存在一个从α1αn的推导,则称α1可以推导αn
  α1αn,从α1出发,经过0步或者若干步推出αn
  α1+αn,从α1出发,经过1步或者若干步推出αn
  αβα=βα+β

句型

定义
  假定G是一个文法,S是它的开始符号,如果

Sα

  则称α是一个

句子

定义:仅含终结符的句型是一个α是一个

语言

定义:文法G所产生的句子的全体是一个,记为:L(G)

L(G)={αS+α,αVT}

  概述为把语言定义为句子的全体,也就是说,你如果掌握了一个语言所有的句子,就等于你掌握了这一门语言!

posted @   白烟染黑墨  阅读(282)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
CONTENTS