1 / 9

吉林大学远程教育课件

吉林大学远程教育课件. 离散数学. ( 第五十四讲 ). 主讲人 : 杨凤杰. 学 时: 64. 0 型或者语法. 1 型或者上下文有关语法. 2 型或者上下文无关语法. 3 型或者正则语法. 图 9.1.1 语法的类型. 例 9.1.8 例 9.1. 6 中的集合 {0 m 1 n |m 和 n 是非负整数 } 是一 个正则语言,因为它可以由一 个正则语法 G 2 所产生。其中 S → 0S , S → 1A , S → 1 , A → 1A , A → 1 和 S →λ 。 例 9.1.9 例 9.1.5 中的集合

verna
Download Presentation

吉林大学远程教育课件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 吉林大学远程教育课件 离散数学 (第五十四讲) 主讲人: 杨凤杰 学 时:64

  2. 0型或者语法 1型或者上下文有关语法 2型或者上下文无关语法 3型或者正则语法 图9.1.1 语法的类型

  3. 例9.1.8 例9.1. 6中的集合 {0m1n|m和n是非负整数}是一 个正则语言,因为它可以由一 个正则语法G2所产生。其中S→0S,S→1A,S→1,A→1A,A→1和S→λ。 例9.1.9 例9.1.5中的集合 {0n1n|n=0,1,2…}是一个上下文无关语法,因为这个语法的产生式为S→0S1和S→λ。在§9.4我们将说明它不是一个正则的语言。 例9.1.10 集合{0n1n2n |n=0,1,2…}是一个上下文有关语言,因为它是一个1型语言而不是2型语言。其中产生式是S→0SAB,S→λ,BA→AB,0A→01,1A→11,1B→12,2B→22

  4. 表9.1.1 语法的类型 类型 对于产生式的限制w1→w2 0 1 2 3 没有任何限制 w1的长度小于等于w2长度,或者w2=λ w1=A,A是非终止符。 S→λ,或者w1=A并且w2=aB或者w2=a,其中A,B是非终止符。 表9.1.1给出了区分语法类型的限制。

  5. 9.1.3演绎树 一个由上下文无关语法产生 语言的演绎可以用一个有序 的根树来表示,称为演绎树。 这个树的根代表初始符。树 的分支结点代表演绎中出现 的非终止符,树的叶结点代表演绎中出现的终止符。如果在演绎过程中使用了产生式A→w,w是一个词,那么代表A的结点把代表w中每个符号的结点做为儿子结点,顺序是从左到右。

  6. sentence noun phrase verb phrase adjective noun article verb adverb the hungry rabbit eats quickly 图9.1.2 一个演绎树 例9.1.11 给出最前面的例 子中关于the hungry rabbit eats quickly的演绎的演绎树。 解:演绎树如下图。

  7. 判断一个符号串是否在一个 由上下文无关语法产生的语 言中,这是一个在应用中经 常遇见的问题,如构造编译 器等。在下面的例子中我们 有两种解决办法。 例9.1.12 判断词cbab是否属于由语法G=(V,T,S,P)产生的语言,其中V={a,b,c,A,B,C,S},T={a,b,c},S是初始符号,产生式为 S→AB,A→Ca,B→Ba,B→Cb,B→b,C→cb,C→b

  8. 解:第一种方法是,从S开始, 试图使用一系列的产生式来 演绎出cbab。因为只有一个产 生式的左端是S,所以必须从 SAB开始,接着使用唯一的 一个左端是A的产生式,即A→Ca, 得到SABCaB,因为cbab以 字符cb开头,所以我们要使用产生式C→cb。这样我们得到 SABCaBcbaB,最后使用产生式B→b,得到SABCaBcbaBcbab。上面这种方法我们称为自顶向下分析,因为它是从初始符号开始通过不断使用产生式进行的。

  9. 第二种方法称为自底向上的 分析,在这种方法中,过程 正好相反。因为cbab是要被 演绎的符号串,我们可以用 产生式C→cb,有Cabcbab, 然后我们使用产生式A→Ca, 有AbCabcbab,使用产生式B→b,有ABAbCabcbab,最后,使用S→AB得到了关于cbab的演绎:SABAbCabcbab。

More Related