编译原理-陈火旺版-第二章.ppt
《编译原理-陈火旺版-第二章.ppt》由会员分享,可在线阅读,更多相关《编译原理-陈火旺版-第二章.ppt(44页珍藏版)》请在三一办公上搜索。
1、1,编译方法,中国人民大学信息学院陈文萍,2,第二章 高级语言及其语法描述,高级程序语言:描述算法和计算机实现不同的应用侧重点不同:数值计算-FORTRAN 系统程序设计-C事务处理-COBOL VLSI设计-VHDL人工智能-PROLOG大型嵌入式实时处理-Ada 符号处理-SNOBOL,3,内容,2.1 程序语言的定义2.2 高级语言的一般特性2.3 程序语言的语法描述,4,2.1 程序语言的定义,程序设计语言:是由一组记号所构成的集合。语言的定义语言用户:语言的成分,使用意义编译程序:语言的规则,语法单位对应的含义组成部分语法(Syntax)语义(Semantics)语用(Pragmat
2、ics),5,语法,语法(Syntax):程序构成的一组规则词法规则:单词符号的形成规则单词符号:语言中具有独立意义的最基本的结构类型:常数,标识符,基本字,算符,界符例如:字符串 100-(8a)*0.5100,8:整型常数;0.5:实型常数;-,=,*:算符;(,):界符分析工具:正规式和有限自动机,6,语法,语法规则:语法单位的形成规则语法单位:比单词符号更大的语法结构例如:表达式,语句,分程序,函数,过程,程序分析工具:上下文无关文法,7,语义,语义(Semantics)定义程序的含义的一组规则例如:C 语句a=18+b;分析方法:基于属性文法的语法制导翻译方法语用(Pragmatic
3、s)程序设计技术和语言成分的使用方法,8,程序的层次结构,程序,子程序,语句,表达式,数据引用,算符,函数调用,9,2.2 高级语言的一般特性,高级高级语言的分类:按语言范型强制式语言,应用式语言,基于规则的语言,面向对象的语言强制式语言:命令驱动,面向语句。一个强制式语言程序由一系列的语句组成,每个语句的执行引起若干存储单元中的值的改变,这种语言的语法形式通常具有如下形式:语句1;语句2;语句n;例如-C,Fortran,Pascal,10,应用式语言,注重程序所表示的功能,而不是一个语句接一个语句地执行程序的开发过程是从前面已有的函数出发构造出更复杂的函数这种语言通常的语法形式是:Func
4、tion n(function2(function1(data)程序执行:执行一个个函数,得到数据上的变换,最终得到的结果例如:ML,Lisp,11,基于规则的语言,程序的执行过程:检查一定的条件,当它满足值,则执行适当的动作。也称逻辑程序设计语言:基本允许条件是谓词逻辑表达式。这类语言的语法形式通常为:条件1 动作1条件2 动作2条件3 动作3例如:Prolog,12,面向对象的语言,主要特征:封装性,继承性和多态性例如:C+,JAVA,13,程序结构,不同的语言,如 Fortran,Pascal,Ada,Java程序结构不同名字的作用域不同例如:Pascal 的最近嵌套原则 procedu
5、re P;var x:interger;procedure Q;var x:real;begin x:=1.2;end;begin x:=5;end;,14,数据类型,数据类型的三要素:属性,值,操作属性:包括类型和作用域类型:决定数据可以是什么样的值,允许的运算,计算机内如何表示作用域:值的有效范围初等数据类型数值数据:如整型,实型逻辑数据:布尔型字符数据:字符型(字符串型)指针类型:指向另一种数据类型,15,数据类型,数据结构:从初级数据定义的复杂(高级)数据数组内情向量:便于计算数据元素的地址,包括:维数,各维的上、下限,首地址,数组元素类型等。例如:Pascal的说明 var a:ar
6、ray1.50 of char 是一个下标从1至50的字符数组记录:由已知类型的数据组合而成例如:Pascal 语言中Student:record name:array 120 of char;age:integer;id:array 18 of char;major:integer;classid:integer;end;字符串,表格,栈,队列抽象数据类型:数据对象,运算,封装,16,语句与控制结构,表达式:由操作数和算符组成例如:x-y,-x通常的形成规则变量,常数是表达式若E1,E2是表达式,是二元算符,则E1E2是表达式若E是表达式,是一元算符,则E或 E是表达式若E是表达式,则(E)
7、是表达式算符的优先级,17,语句,分类:按功能说明性语句:定义名字的性质执行性语句:描述程序动作赋值语句控制语句转移语句:goto条件语句:如 if then else循环 语句:如while do过程调用语句:如 call返回语句:如 return输入/输出语句:如 read,write,18,2.3 程序语言的语法描述,预备知识上下文无关文法语法分析与二义性形式语言概述,19,预备知识,符号:可以相互区别的记号(元素)字母表:符号(元素)的非空有穷集合,用表示符号串:由字母表中的符号组成的任何有穷序列1.空符号串(没有符号的符号串)是上的符号串 2.若x是上的符号串,a是的元素,则xa是上
8、的符号串 3.y是上的符号串,当且仅当它可以由1和2导出。例如,字母表=a,b,则,a,b,aa,ab,ba,bb,aaa,aab,都是上的符号串,20,预备知识,符号串的运算符号串的长度:符号串中符号的个数.符号串s的长度记为|s|,的长度为0连接:符号串x、y的连接,是把y的符号写在x的符号之后得到的符号串xy 如 x=ab,y=cd 则 xy=abcd 有a=a 方幂:符号串自身连接n次得到的符号串 an 定义为 aaaa(n个a)a1=a,a2=aa a0=,21,预备知识,符号串的集合:若集合A中所有元素都是某字母表上的符号串,则称A为字母表上的符号串集合。*:表示上的所有符号串的全
9、体空集:,不含任何元素符号串集合的运算:积(连接):两个符号串集合A和B的积定义为 AB=xy|xA且yB 例如:集合A=ab,cde B=0,1,则 AB=ab1,ab0,cde0,cde1闭包:V*=V 0 V 1 V 2 V 3.,*称为的闭包V 0=,22,预备知识,正则闭包:V+=V 1 V 2 V 3.,V*=V+,+称为的正闭包。例:=a,b*=,a,b,aa,ab,ba,bb,aaa,aab,+=a,b,aa,ab,ba,bb,aaa,aab,23,上下文无关文法,语言的表示语言有穷:将句子逐一列出语言无穷:找出语言的有穷表示,两个途径:生成方式(文法):语言中的每个句子可以用



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 陈火旺版 第二

链接地址:https://www.31ppt.com/p-6599807.html