安徽大学编译原理课件第三章详解.pptVIP

  • 1
  • 0
  • 约9.44千字
  • 约 130页
  • 2026-02-08 发布于北京
  • 举报

安徽大学编译原理课件第三章详解演示文稿;优选安徽大学编译原理课件第三章;知识结构;3.1文法的直观概念;程序设计语言的描述:;例如,对于赋值语句x:=a+b*c的非形式描述是:

语法:赋值语句=变量+:=+表达式

语义:先求右部,然后把结果给左部变量

语用:赋值语句可用来计算和保存表达式的值

形式化方法:用一整套带有严格规定的符号体系来描述问题的理论和方法

形式语言:一种不考虑含义的符号语言;程序设计语言的语义分成:

静态语义:是一系列限定规则,并确定哪些合乎语法的程序是合适的

动态语义(运行语义、执行语义):表明程序要做什么,要计算什么;以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构:;例如,有一组规则:

句子::=主语谓语

主语::=冠词形容词名词

冠词::=the

冠词::=a

形容词::=big

谓语::=动词直接宾语

动词::=ate

直接宾语::=冠词名词

名词::=cat

名词::=mouse

显然,由这一组规则可以产生句子:

Thebigcat/mouseateamouse/cat;这样的语言描述称为文法

使用文法作为工具,不仅为了严格地定义句子的结构,也是为了适当条数的规则把语言的全部句子描述出来,可以说文法是以有穷的集合刻画无穷的集合的一个工具。;3.2符号和符号串;重要约定:

小写字母a,b,c,???,r表示符号

小写字母s,t,u,???,z表示符号串

大写字母A,B,C,???,Z表示符号串集合;二.符号串的运算

1.符号串相等

设x、y是字母表?上的两个符号串,若x与y的诸符号依次相等,则该两符号串相等,记为x=y。;2.符号串长度

设x是字母表?上的符号串,符号串中包含符号的个数称为符号串x的长度,用?x?表示

例:(1)|?|=0;

(2)|ax|=|xa|=|x|+1(a∈∑);3.符号串的连结

设x与y是字母表?上的两个符号串,把y的所

有符号相继写在x的符号之后所得到的符号串称为

x与y的连结,用xy表示

注意:

|xy|=|x|+|y|

?x=x?=x

xy≠yx(一般说来);4.符号串的逆;5.符号串的前缀、后缀和子串

设x、y、z是字母表?上的符号串,则称x为符号串xy的前缀,y是符号串xy的后缀,x、y、z、xy、yz是符号串xyz的子串

例:字母表A={a,b,c}上的符号串x=abc,则x的

前缀有?,a,ab,abc;后缀有?,c,bc,abc;真

前缀有?,a,ab;真后缀有?,c,bc。

;6.符号串集合的乘积

设A、B为两个符号串集合,其乘积为AB={xy|x?A,y?B}

例:(1)若A={ab,cd},B={ef,gh}

则AB={abef,abgh,cdef,cdgh}

(2)∵?x=x?=x

∴{?}A=A{?}=A;7.空集

不含任何元素的集合,记为?

注意:(1)?A=A?=?;

(2)???;8.符号串的幂

设x是字母表?上的符号串,则x的幂运算

为x0=?x1=xx2=xx??????xn=xn-1x(xxn-1)

例:若x=ab,则x0=?,x1=ab,x2=abab,??????,

xn=abab???ab;9.符号串集合的幂

设A是符号串集合,则符号串A的幂运算为:

A0={?}A1=AA2=AA??????An=An-1A(AAn-1)

例:若A={ab,cd}

则:A0={?},A1={ab,cd},

A2={abab,abcd,cdab,cdcd},??????;注意:

A*=A0∪A+

A+=AA*=A*A

若A={a,b}

则:A*={?,a,b,aa,ab,ba,bb,aaa,???}

A+={a,b,aa,ab,ba,bb,aaa,??

文档评论(0)

1亿VIP精品文档

相关文档