PDL(程序设计语言)是由 Came,Fat her 和 Gordon 共同开发的,在 1975 年发表之后.曾作过重大修改。因为 PDL 是在模仿英语,所以认为任何像是英语的 PDL,都可以正确表达思想是很自然的。但是,事实上 PDL之间的好坏是有判别的。下面是有效使用 PDL的一些方针:
当 PDL 写好之后,就可以根据它来编码,而PDL则成为程序语言的注释。这可以省去大量的注释工作。如果PDL遵循了这一指导方针,那 么注释将是非常完备而且富有意义的。
以下则是一个几乎违背了上述所有原则的错误使用 PDL的例子:
Increment resource number by l
allocate a dlg struct using malloc
if malloc() returns NULL then return l
invoke OSrsrc _init to initialize a resource for the operation system
* hRstcPtr=resource number
return 0
这个 PDL 的意图是什么?由于它写得很糟糕,因此很难说清楚。之所以称之为一个错误使用 PDL的典型,是为它使用了像*hRstcPtr 这种特定的 c 语言指针标志和 malloc( )这个特定的语言函数,即它采用了代码语句。这段 PDL 的中心是如何写代码,而不是说明设计意义。不管子程序返回 1 还是返回 0,这段 PDL都引入了代码细节。如果从是否变为一个好的注释的观点来看这段 PDL,你就会发现它毫无意义。
以下是对同一个操作的设计,使用的是大大改进了的 PDL:
Keep track of current number of resource in use
If another resource is available
Allocate a dialog box structure
If a dialog box structure could be allocated
Note that one more resource is in use
Initialize the resource
Store the resource number at the location provided by the caller
Endif
Endif
Reture TRUE if a new resource was created; else return FALSE
这段 PDL 要好于前一个。因为它完全是用自然语言写成的,没有使用任何目标程序语言语句。在第一段 PDL 中,它只能用 C语言来实现,而第二段却并没有限制所使用的语言。同时,第二段 PDL 也是在意图层次上写成的。第二段 PDL 的意图是什么?其意图理解起来比前一个要容易多了。尽管第二段 PDL是完全用自然语言写成的,但它却是非常详细和精确的,很容易作为用程序语言编码的基础。如果把这段 PDL转为注释段,那它则可以非常明了地解释代码的意图。
以下是你使用这种风格的 PDL 可以获得的益处:
作为一种详细设计工具,PDL 是无可比拟的。程序员们往往愿意用 PDL 而不愿使用缺陷表。事实上程序员们愿意使用缺陷表以外的任何工具,调查表明,程序员们愿意使用 PDL,是因为它很容易用程序语言实现,而且 PDL 可以帮助发现详细设计中的缺陷,并且 PDL 也很容易写成文件,改动也很方便,PDL 并不是详细设计的唯一工具,但是 PDL 和 PDL 到代码流程的确是有用的工具。不妨试一下。