要求分析和规格详细说明.docVIP

  • 0
  • 0
  • 约2.01万字
  • 约 20页
  • 2018-11-16 发布于江苏
  • 举报
要求分析和规格详细说明

要求分析和规格说明 PL语言分析 相对于PASCAL和PS语言而言,PL语言是一种定义非常狭窄的小的程序设计语言,它的简单类型仅有整型(integer)和布尔型(Boolean),过程定义不能有参数, 符号: 保留字: Boolean Proc array begin call const do end false fi if integer od read skip true write 专有符号: - * := , / = [ ( - \ ~ | + ) ] ; [] 数字 数字是十进制整数,范围从-32767到32767。 标识符 由字母开头的,后跟0个或多个字母或数字组成。 数据类型: PL具有有两种基本数据类型,整型 integer 和布尔类型 Boolean。结构类型只有数组,不可以定义自己新的数据类型。 程序结构: 得到一个PL程序是分程序后跟有一个句号(圆点)的程序。分程序有定义部分DP和语句部分SP组成: begin DP SP end; 分程序描述了在命名对象上的操作。对象是一个常量、变量或过程(类型由保留字表示)。每个对象有定义说明。不存在标准对象。作用域规则与PS相同。分程序内每个操作产生其内定义的变量的一个新实例。分程序的定义部分是后跟有分号的定义的序列: D1;D2; …Dn; 例如: begin const a = 1; $常量部分 integer b; $变量定义 b:=10; $数值输出 end. 常量定义 一般形式:const 常量名 = 常量 常量定义说明常量的名字:const n =100 变量定义 一般形式:类型符 变量表 或:类型符 array 变量表 [ 常量 ] 前者是定义一般变量,后者是定义数组变量。数组的常量必须是自然数1,2,……,n。它代表要定义的数组的元素个数,而数组的下标是从1开始的。例: integer a,b,c; integer A [10]; $定义有10个元素的数组变量A PL遵循变量先定义后使用的规则,而且在同一个作用域范围内不允许有相同的变量名。但不同作用域变量名可以相同。也不能用PL的保留字做变量名。 过程定义说明 一般形式:Proc 过程名 分程序 PL的过程遵循先定义后使用的规则,而且在同一个作用域范围内不允许有相同的过程名。但不同作用域过程名可以相同。也不能用PL的保留字做过程名。 Proc write $错误,这是PL的标准过程,不能重定义 PL的语句 空语句: 一般形式:skip; 它表示什么也不做。 读语句 一般形式:read 变量访问表; 其中 变量访问表 :变量访问 { , 变量访问 } 它是PL的标准过程,也是唯一的一条输入语句。表示输入一个或多个整数并赋值给相应变量。例:read a, b, c; 写语句 一般形式:write 表达式表; 其中 表达式表 :表达式 { , 表达式表 } 它是PL的标准过程,也是唯一的一条输出语句。表示输出一个或多个由表达式定义的整数。 例:write a, b, c*d, 100; 赋值语句 一般形式:变量访问表 := 表达式表 ; PL的赋值语句具有并行赋值的特点。 例:a, b := 1, x+y; 它表示依次把右边的表达式的值分别赋给左边对应的变量。上例就是把1赋给变量a, 把x+y的值赋给变量b。 过程语句 一般形式:call 过程名; 它表示调用用户自己定义过程,PL规定过程必须是先定义后使用的。 if语句 一般形式:if 警戒命令表 fi; 其中 警戒命令表 :警戒命令 { [] 警戒命令 } 警戒命令: 表达式 - 语句部分 PL依次检测各警戒命令,如果表达式的值为true则执行相应的语句部分,然后忽略其余警戒命令,执行if后面的语句。如果所有表达式的值均为false这发出“if 语句逻辑错误”的提示并终止程序的执行。 例:if ab - t := a; [] ab - t := b; fi; do语句 一般形式:do 警戒命令表 do; 其中 警戒命令表 :警戒命令 { [] 警戒命令 } 警戒命令: 表达式 - 语句部分 PL依次检测各警戒命令,如果表达式的值为true则执行相应的语句部分,然后重新检测各警戒命令,直到所有表达式的值均为false才继续执行do后面的语句。 例:do i 100 - read i ; od 程序注释 PL的注释以“$”字符开头,直到本行

文档评论(0)

1亿VIP精品文档

相关文档