网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计ppt-第2章推荐.ppt

  1. 1、本文档共102页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计ppt-第2章推荐

华中科技大学计算机学院 C语言程序设计 第2章 数据类型、运算符和表达式 C程序是一个字符序列,字符序列先被分解为称之为记号(token)的词法元素,再根据语法规则检查这些记号组合是否合法。 本章首先介绍词法元素和语法规则的概念,然后详尽地讨论组成C程序的基本元素,包括基本数据类型、常量和变量、运算符、表达式等。 2.1 字符及词法元素 2.1.1 字符集 C源程序由字符序列构成,其字符集为: 1. 英文字母:a~z 和A~Z 2. 数字字符:0~9 3. 特殊字符:! “ # % ‘ ( ) * + , - . / : ; = ? [ ] \ ^ _ { } | ~ 4.空白字符:空格、换行符、水平制表符(HT)、 垂直制表符(VT)、换页符(FF) 三字符序列 以两个连续问号开头(教材表2-1)。所有的三字符序列都要用相应的单个字符替换,这种替换发生在其他任何处理之前。 例如, int a??(4??)=??0??;被替换成 int a[4]={0}; 2.1.2 词法元素 词法元素称为记号. 记号是程序中具有语义的最基本组成单元 记号共分5类: 标识符、关键字、常量、运算符、标点符号. 编译器从左至右收集字符,总是尽量建立最长的记号,即使结果并不构成有效的C语言程序。相邻记号可以用空白符或注释语句分开。 词法元素(记号)分析举例 例2.1 sum=x+y 分解成sum、=、x、+和y 共5个记号。 例2.2 int a,b=10 ; 分解成int、a、,、b、=、10和 ; 共7个记号 例2.3 x+++++y 分解成x、++、++、+、y 共5个记号 2.2 语法规则 生成式-描述语法结构的式子 C的语法规则:由C语言字符集中的单个或多个字符按照确定的规则组成语义上关联的记号,再由记号根据确定的规则构成语句乃至整个程序文本,这些规则被称为C的语法规则。 一个简单的描述语法的式子: 数字 ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 用文字叙述:数字可以是字符0,或者字符1,……,或者字符9。 这种描述语法结构的式子被称为生成式。 生成式形式化定义需要提供的4方面信息: (1) 终结符,C语言字符集中的符号。 (2) 非终结符,表示语法单位,在定义中将被利用相应的生成式进一步展开。 (3) 生成式规则,每条规则确定一个结构的各个成分,生成式以一个非终结符作为它的左部,而后是符号::=,然后取自终结符和非终结符集合的一个串作为右部。 (4) 开始符号,代表语法定义的主结构,任何语法定义过程都从某个非终结符开始。开始符号的生成式总是写在最前面。 如: 数字 ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 以上4个部分构成了一个语言的文法。而用于描述文法的生成式很多,Backus-Naur(巴科思-劳尔)范式(BNF)就是这样的一种生成式, 2.2 语法规则 如何描述计算机语言的语法规则? 2.2.1 BNF (Backus-Naur Form)范式  BNF:巴科斯范式是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。   现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。? BNF范式的符号 尖括号( )内包含的为必选项。 竖线( | )表示在其左右两边任选一项,相当于“OR”的意思。 ::= 是“被定义为”的意思。 BNF范式示例 ?标识符的BNF范式 标识符 ::= 字母 |标识符字母数字 ? 字母数字 ::= 字母|数字? 字母 ::= _|大写字母|小写字母 小写字母 ::= a|b|c|d|…|z 大写字母 ::= A|B|C|D|…|Z 数字 ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 2.2.2 EBNF (略) EBNF是BNF的一种扩充。EBNF中符号有: { }:括起来的部分重复0次或多次。 [ ]:括起来的部分出现0次或1次。 ( ):表示结成一组。 标识符的EBNF范式 : 标识符 ::= 字母{字母数字 } 2.2.3 语法图-另一种表示语法的常见方式 语法图是另一种表示文法的常见方式,对应于每个非终结符有一个子图,图中每条路径对应于该非终结符的一个生成式,路径上的是生成式右端的终结符和非终结符。终结符用弧形框表示,非终结符用矩形框表示 标识符的语法图 2.3 标识符、关键字及分隔

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档