伪码(描述模块算法设计和处理细节的语言)
基本介绍
伪码特点
1.关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。为了使结构清晰和可读性好,通常在所有可能嵌套使用的控制结构的头和尾都有关键字。
2.自然语言的自由语法,它描述处理特点。
3.数据说明的手段。应该既包括简单的数据结构,又包括复杂的数据结构。
4.模块定义和调用的技术,应该提供各种接口描述模式。
伪码结构
用PDL表示的程序结构一般有下列几种结构:
1) 顺序结构
采用自然语言描述顺序结构:
处理S1
处理S2
…
处理Sn
2) 选择结构
(1) IF-结构:
IF 条件 IF 条件
处理S1 或 处理S
ELSE endif
处理S2
ENDIF
(2) IF-ORIF-ELSE结构:
IF 条件1
处理S1
ORIF 条件2
…
ELSE 处理Sn
ENDIF
(3) CASE结构:
CASE OF
CASE(1)
处理S1
CASE(2)
处理S2
…
ELSE 处理Sn
ENDCASE
3) 重复结构
(1) FOR 结构:
FOR i=1 TO n
循环体
END FOR
(2) WHILE 结构:
WHILE 条件
循环体
ENDWHILE
(3) UNTIL 结构:
REPEAT
循环体
UNTIL 条件
4) 出口结构
(1) ESCAPE 结构(退出本层结构):
WHILE 条件
处理S1
ESCAPE L IF 条件
处理S2
ENDWHILE
L: …
(2) CYCLE结构(循环内部进入循环的下一次):
L: WHILE 条件
处理S1
CYCLE L IF 条件
处理S2
ENDWHILE
5) 扩充结构
(1) 模块定义:
PROCEDURE 模块名(参数)
…
RETURN
END
(2) 模块调用:
CALL 模块名(参数)
(3) 数据定义:
DECLARE 属性 变量名, …
属性有:字符、整型、实型、双精度、指针、数组及结构等类型。
(4) 输入/输出:
GET(输入变量表)
PUT(输出变量表)
伪码示例
现以××系统主控模块详细设计为例,说明如何用PDL来描述。
PROCEDURE模块名( )
清屏;
显示××系统用户界面;
PUT(“请输入用户口令:”);
GET(password);
IF password<>系统口令
提示警告信息;
退出运行
ENDIF
显示本系统主菜单;
WHILE(true)
接收用户选择ABC;
IF ABC=“退出”
Break;
ENDIF
调用相应下层模块完成用户选择功能;
ENDWHILE;
清屏;
RETURN
END
从示例可以看到PDL的总体结构与一般程序完全相同。外语法同相应程序语言一致,内语法使用自然语言,易编写,易理解,也很容易转换成源程序。除此以外,还有以下优点:
(1) 提供的机制较图形全面,为保证详细设计与编码的质量创造了有利条件。
(2) 可作为注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于软件的维护。
(3) 可自动生成程序代码,提高软件生产率。目前已有PDL多种版本(如PDL/pascal, PDL/C, PDL/Ada等),为自动生成相应代码提供了便利条件。