![编译原理第2章_第1页](http://file4.renrendoc.com/view/6c4e3c3f94346389c7748793ddb68ee2/6c4e3c3f94346389c7748793ddb68ee21.gif)
![编译原理第2章_第2页](http://file4.renrendoc.com/view/6c4e3c3f94346389c7748793ddb68ee2/6c4e3c3f94346389c7748793ddb68ee22.gif)
![编译原理第2章_第3页](http://file4.renrendoc.com/view/6c4e3c3f94346389c7748793ddb68ee2/6c4e3c3f94346389c7748793ddb68ee23.gif)
![编译原理第2章_第4页](http://file4.renrendoc.com/view/6c4e3c3f94346389c7748793ddb68ee2/6c4e3c3f94346389c7748793ddb68ee24.gif)
![编译原理第2章_第5页](http://file4.renrendoc.com/view/6c4e3c3f94346389c7748793ddb68ee2/6c4e3c3f94346389c7748793ddb68ee25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章高级语言
及其语法描述
高级程序设计语言回顾、语法与语义的概念、语法描述程序语言§2.2高级语言的一般特性
一、高级语言的分类
1、强制式语言(过程式语言):命令驱动,面向语句。程序 由一系列语句构成。如FORTRAN、C、Pascal、Ada; 2、应用式语言(函数式语言):注重程序所表示的功能,程 序的开发过程是从前面已有的函数出发构造更复杂的函 数。通常的语法形式为:函数n(…函数2(函数1(数 据))…)如LISP等; 3、基于规则的语言:程序的执行过程是检查一定的条件,当 它满足时,则执行适当的动作。通常的语法形式为: 条件i→动作i,如Prolog等;
4、面向对象语言:支持封装、继承和多态。
§2.2高级语言的一般特性二、程序结构
1、FORTRAN语言:由一个主程序段和若干辅程序段组成; 2、Pascal语言:子程序嵌套结构; 3、Ada:引入程序包,把数据和操作代码封装在一起,支持 数据抽象; 4、Java语言:面向对象的高级语言,类、继承、多态、动态 绑定等概念;三、数据类型与操作:初等数据类型、数据结构、抽象数据类型;
四、语句与控制结构:表达式、语句(赋值句、控制语句、说明句、简单句和复合句);
§2.2高级语言的一般特性§2.1语法与语义一、有关程序语言的基本概念
1、语言的三要素: 语法(决定语言的形式)、 语义(决定语言的含义)、 语用(程序设计方法和语言成分的使用方法); 2、程序语言是记号(符号)系统;
3、语言的定义与实现 (1)定义(发明)语言: 语言的用户手册; 标准化; (2)实现: 编译系统(开发环境);§2.1语法与语义§1.1什么是编译程序二、语法
1、语言的语法:用以规定产生合式程序的一组规则,有词法 规则和语法规则两部分;(合式——形式上正确) 2、词法规则:单词符号的形成规则; 3、语法规则:语法单位的形成规则; 4、单词符号:语言中具有独立意义的最基本结构,如常量、 标识符、基本字、算符、界符等; 5、语法单位:语言中一些结构更大的固定单位,如表达式、 语句、函数、过程和程序等;三、语义
1、语言的语义:语言的单词符号和语法单位的意义; 2、语义规则:一组可以定义语义的规则; 3、语义的描述:还未有一套公认的形式系统,本书用自然语 言结合属性文法来描述。§2.1语法与语义§2.3程序语言的语法描述
一、预备概念
§2.3程序语言的语法描述二、上下文无关文法 1、文法:即语法规则,形式化的描述语言的语法结构 2、汉语语法规则实例: (1)文法:〈句子〉→〈主语〉〈谓语〉 〈主语〉→〈代词〉|〈名词〉 〈代词〉→我|你|他 〈名词〉→大学生|工人|英语 〈谓语〉→〈动词〉〈直接宾语〉 〈动词〉→是|学习 〈直接宾语〉→〈代词〉|〈名词〉 (2)句子:按此规则,“我是大学生”的构成符合上述规 则,是一个句子;而“我大学生是”不符合上述规则, 不是句子。§2.3程序语言的语法描述(3)文法的使用:
(4)文法的结构§2.3程序语言的语法描述3、上下文无关文法ɑɑ1ɑ2ɑ3ɑ1ɑ2ɑ3§2.3程序语言的语法描述 (3)上下文无关文法的形式定义
例1:文法的几种写法ɑɑεεε§2.3程序语言的语法描述例2:Pascal语言中控制语句的文法§2.3程序语言的语法描述例3:C++语句的文法一、C++语句§1.1什么是编译程序二、带标号语句
statement: labeled-statement expression-statement compound-statement selection-statement iteration-statement jump-statement declaration-statement try-blocklabeled-statement: identifier:
statement
case
constant-expression:
statement
default
:
statement§1.1什么是编译程序三、表达式语句
expression-statement: expressionopt
;四、复合语句compound-statement:
{
statement-seqopt}statement-seq: statement statement-seqstatement§1.1什么是编译程序五、选择语句selection-statement:
if(condition)
statement
if(condition)
statementelse
statement
switch(condition)
statementcondition:
expression
type-specifier-seqdeclarator =
assignment-expression§1.1什么是编译程序六、循环语句
iteration-statement:
while(
condition)
statement
do
statementwhile(
expression);
for(for-init-statementconditionopt
;
expressionopt)
statementfor-init-statement: expression-statement simple-declaration§1.1什么是编译程序七、跳转语句jump-statement:
break;
continue; return
expressionopt
;
goto
identifier;§1.1什么是编译程序4、文法定义语言
γαβαβαβαβγαγβαγαγβαγβαγαβ§2.3程序语言的语法描述
例:文法G为E→E+E|E*E|(E)|i,
即:(i*i+i)是G的一个句子。§2.3程序语言的语法描述三、语法分析树与二义性 1、语法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国橄榄苦苷行业市场发展评估及投资战略分析报告
- 2024-2030年中国实木家俱套房市场专题研究及市场前景预测评估报告
- 2024至2030年中国冷库行业市场运营状态与投资风险预测报告
- 2024至2030年中国交互式电子白板市场竞争态势及未来发展前景预测报告
- 中原房地产销售实战手册
- 手卫生依从性考试试题及答案
- 物业综合服务合同
- 商务租车服务合同
- 酒店预订合同
- 互联网服务框架合同
- 汽车辆租赁项目服务方案技术服务方案
- 主诊医师负责制的实施与管理
- 国产数据库发展研究报告
- 消防设备设施日常、月度、季度、年度巡检及检查细则表检查内容、标准与检查方法
- 2022年《现代写作》教案
- 水利工程项目管理策划书(附多图)
- 《观沧海》PPT
- 国电吉林江南热电有限公司一、二号机组整套启动验收会议材料
- 2019上海中学生物理竞赛试题
- 艺用人体解剖学优秀课件
- 2017新版教科版科学六年级上册教学计划含进度表
评论
0/150
提交评论