高级语言概述.pptVIP

  • 2
  • 0
  • 约6.57千字
  • 约 71页
  • 2025-12-08 发布于浙江
  • 举报

编译原理数组元素地址计算数组A[10,20]的A[1,1]为a,各维下标为1,按行存放,那么A[i,j]地址为:a+(i-1)*20+(j-1)数组元素地址计算公式编译原理编译原理内情向量把数组的有关信息记录在一个“内情向量”中,每个数组的内情向量必须包括:维数,各维的上、下限,首地址,以及数组(元素)的类型。编译原理2记录逻辑上说,记录结构由已知类型的数据组合在一起的一种结构。 record{charNAME[20]; integerAGE; boolMARRIED; }CARD[1000]访问:复合名CARD[k].NAME存储:连续存放域的地址计算:相对于记录结构起点的相对数OFFSET。编译原理3字符串、表格、栈字符串:符号处理、公式处理表格:本质上是一种记录结构线性表:一组顺序化的记录结构栈:一种线性表,后进先出,POP,PUSH编译原理三抽象数据类型一个抽象数据类型包括:数据对象的一个集合;作用于这些数据对象的抽象运算的集合;这种类型对象的封装,即,除了使用类型中所定义的运算外,用户不能对这些对象进行操作。程序设计语言对抽象数据类型的支持Ada语言通过程序包(package)提供了数据封装的支持Smalltalk、C++和Java语言则通过类(Class)对抽象数据类型提供支持。编译原理2.2.4语句与控制结构一.表达式表达式由运算量(也称操作数,即数据引用或函数调用)和算符(操作符)组成。形式:中缀、前缀、后缀X*Y-AP↑表达式形成规则编译原理算符的优先次序一般的规定PASCAL:左结合A+B+C=(A+B)+CFORTRAN:对于满足左、右结合的算符可任取一种,如A+B+C就可以处理成(A+B)+C,也可以处理成A+(B+C)。注意两点:代数性质能引用到什么程度视具体的语言不同而不同;在数学上成立的代数性质在计算机上未必完全成立。编译原理二.语句赋值语句:A:=B名字左值:该名字代表的那个单元(地址)称为该名字的左值。(所代表的存贮单元的地址)右值:一个名字的值称为该名字的右值。(所代表的存贮单元的内容)编译原理控制语句:无条件转移语句gotoL条件语句ifBthenSifBthenS1elseS2循环语句whileBdoSrepeatSuntilBfori:=E1stepE2untilE3doS过程调用语句callP(X1,X2,...,Xn)返回语句return(E)编译原理说明语句:定义各种不同数据类型的变量或运算,定义名字的性质。编译原理简单句和复合句简单句:不包含其他语句成分的基本句复合句:句中有句的语句编译原理复习:程序语言的定义程序语言由两方面定义:语法:一组规则,用它可以形成和产生一个合式(well-formed)的程序词法规则:单词符号的形成规则。常数、标识符、基本字、算符、界符等。有限自动机语法规则:语法单位的形成规则。表达式、语句、分程序、过程、函数、程序等;上下文无关文法语义:一组规则,用它可以定义一个程序的意义编译原理复习:程序语言的基本功能和层次结构程序语言的基本功能:描述数据和对数据的运算。所谓程序,本质上说是描述一定数据的处理过程。程序|子程序或分程序、过程、函数|语句|表达式|数据引用算符函数调用编译原理复习:高级语言的一般特性高级语言的分类程序结构数据类型与操作初等数据类型数据结构抽象数据类型语句与控制结构编译原理2.3程序语言的语法描述几个概念:考虑一个有穷字母表∑字符集其中每一个元素称为一个字符∑上的字(也叫字符串)是指由∑中的字符所构成的一个有穷序列不包含任何字符的序列称为空字,记为ε用∑*表示∑上的所有字的全体,包含空字ε例如:设∑={a,b},则∑*={ε,a,b,aa,ab,ba,bb,aaa,...}编译原理∑*的子集U和V的连接(积)定义为UV={??|??U??V} 设:U={a,aa}V={b,bb}那么: UV={ab,abb,aab,aabb}编译原理∑*的子集U和V的连接(积)定义为UV={??|

文档评论(0)

1亿VIP精品文档

相关文档