编译原理第2章_第1页
编译原理第2章_第2页
编译原理第2章_第3页
编译原理第2章_第4页
编译原理第2章_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章高级语言

及其语法描述

高级程序设计语言回顾、语法与语义的概念、语法描述程序语言§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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论