compiler2 - 1 编译原理 第二章 文法和语言...

Info icon This preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon
1 编译原理 第二章 文法和语言 上海交通大学 张冬茉 Email:[email protected] 2005 3
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 本章目的 自然语言是人与人交流思想的工具,程序语 言是人和计算机之间传达信息的工具。为了描述程 序语言,本章将引进有关形式语言的基本概念。文 法是程序语言的生成系统,自动机是程序语言的识 别系统,用文法来精确定义一个语言,然后根据这 个文法构造识别这个语言的自动机,因此文法对程 序语言和编译程序的构造来说意义重大。随着计算 机的发展,形式语言学发展很快。 N.Chomsky 将文 法分成四类,程序语言的词法可用正规文法描述, 语法可用上下文无关文法描述,语义则要借助于上 下文有关文法来描述。因此我们的注意力是针对这 几类文法,特别是上下文无关文法。
Image of page 2
3 第二章 文法和语言 §2.1 基本概念 一、语言 1. 字母表 定义 2.1 符号的非空有穷集合称为字母表,通常用∑表示。 字母表中每个元素称为一个符号或一个字符。 不同语言的字母表可能是不同的,例如二进制数这个语言的 字母表∑ ={0,1} 。程序语言中的标识符,它的字母表∑ ={a, b,..,z,0,1,..,9} 。通常程序语言的字母表是 ASC Ⅱ 字符集。 2. 字符串 定义 2.2 由字母表∑中的字符所组成的有穷序列,称为字母 表上的符号串,或字符串,字。 [ 2.1] , 字母表∑ ={0,1}, 0,1,00,01,10,11,000,001,010,… 都是∑上的字符串,如则 a, b, , ab, ba, bb, aaa… 分别是∑上 的字符串。
Image of page 3

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
4 空串:不包含任何字符的字符串,用 ε 表示,它是∑上 的一个特殊的字符串。对任一字母表∑,都有 ε 是∑上的 字符串。 字符串的长度:是指字符串 x 中的字符的个数,用 |x| 表示。如 x=abc ,则 |x| =3 。特别地有 | ε | =0. 字符串的联结:设 x,y 是∑上的字符串,则它们的联结 xy 是将 y 的符号相继连接在 x 的符号后所得到的新的字 符串,如 ,x=aba,y=bba, xy=ababba. 联结是字符串上的一种运算,满足结合律,但不满足交 换律。但 εx=xε=x 则另当别论。
Image of page 4
5 3. 子串 字符串的前缀和后缀:设 z=xy x z 的前缀, y z 的后缀 , 特别当 y≠ε x z 的真前缀 , x≠ε ,y z 的真后缀 . [ 2.2] x=abc, ε,a,ab,abc 都是 x 的前缀,其 ε,a,ab 为真前缀,而 abc,bc,c, ε 都是 x 的后缀,其中 bc,c, ε 为真 后缀。 定义 2.3 一个非空字符串 x 删去它的前缀和后缀后所得的 字符串为 x 的子串,如果删去的前缀和后缀不同时为 ε ,则该子串为真子串。 [ 2.3] x=abc ,其子串为 abc, ab, bc, a, c, b, ε 真子串 ab, bc, a, c, b, ε 请注意 ac 不是子串,它只是字符串 ab c 的一个子序列。
Image of page 5

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
6 4. 语言 定义 2.4 : 给出字母表 ,则 上任一字符串集合,称为 上的一个 语言,记为 L ,该语言的每一个字符串,便是语言 L
Image of page 6
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern