第二章

程序语言的定义:

程序语言主要由语法和语义两方面定义

1、语法:

三个基本概念

A)字母表

B)单词符号

C)语法单位

单词符号:是语言中具有独立意义的最基本结构

语法单位:

由单词符号构成的更大的结构

              包括:

A)    表达式

B)    语句

 C) 分程序(语句块)

D) 函数(有返回值)

E) 程序

 

语法定义:一组规则,用这组规则可以产生形式上正确的程序

 

语法:  词法规则

语法规则

2、语义

语义定义:是指这样的一组规则,使用它可以定义一个程序的意义。

语义描述方法:属性文法和基于属性文法的语法制导翻译方法。

 

程序设计语言分类:

按照程序设计泛型:

1)强制式语言(过程式语言。c)

2)应用式语言(函数式语言。lisp)

3)基于规则的语言(prolog,yacc)

4)面向对象的语言(java)

文法

    有关定义:

1)字母表

2)符号串

3)符号串的前缀和后缀及子串

4)空字:不包含符号的序列称为空字,记为e。用Е*表示Е上的所有符号串的全体,空字也包括在其中

5)符号串的连接运算:设x和y是两个符号串,如果将y直接拼接在x之后,称这种操作为符号串的连接;

6)符号串的方幂:一个符号串与其自身的n-1的任意连接称为次符号串的n次幂,记作:xn 特别地:x0=e

7)字符串集合的和(等价于集合的并运算):设A、B是两个符号串的集合,则将集合A、B的和记为A+B或A  B,定义为:A B={w|wA或wB}

8)符号串集合的连接:

9)符号串集合V自身的n次(连接)积记为:

     

10)V的闭包

      

11)V的正则包(正闭包,正则闭包):

      

上下文无关文法:

归纳起来,一个上下文无关文法G包括四个组成部分:一组终结符号,一组非终结符,一个开始符号,以及一组产生式。形式上定义一个上下文无关文法G是一个四元式(VT,VN,S,P)

几个概念:

1) 终结符号

2) 非终结符号

3) 开始符号

4) 产生式

 

产生式的推导与直接推导:

句子与句型

最左推导和最右推导:在推导的任何一步αÞβ,其中α、β是句型,都是对α中的最左(右)非终结符进行替换

     

一定要会通过结果定义文法

语法分析树与二义性:

语法分析树:简称语法树。用来表示推导过程

      二义性:如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。

 

重要:

  1.   文法二义不等于语言二义
  2.  文法的二义性是不可判定的
  3.  文法的二义性证明:找出一个句子,它有两个不同的最左推导或最右推导
  4.  文法二义性的消除:给每个产生式定义优先级或者引入新的非终结符

 

 

形式语言鸟瞰

       分类:

              0型文法

1型文法

2型文法

3型文法

课后习题:

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值