阅读笔记 > 程序设计语言( PDL )

46 篇文章 0 订阅
10 篇文章 0 订阅
程序设计语言( PDL )

PDL(程序设计语言)是由 Came,Fat her 和 Gordon 共同开发的,在 1975 年发表之后.曾作过重大修改。因为 PDL 是在模仿英语,所以认为任何像是英语的 PDL,都可以正确表达思想是很自然的。但是,事实上 PDL之间的好坏是有判别的。下面是有效使用 PDL的一些方针:

  • 用模拟英语的语句来精确描述每一个特定操作。
  • 避免使用最终程序语言的语句。PDL使你比在代码稍高级的层次上进行设计工作。当使用程序语言进行创建时,就又回到了低层次上,从而得不到由于在高层次上进行设计的好处,而且会受到不必要的程序语言语法规则的限制。
  • 在设计意向这一层次上写 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 极大地减少了注释工作量。在典型的编码流程中,先写好代码,然后再加注释。而在 PDL 到代码的编码流程中,PDL 本身就是注释,而我们知道,从代码到注释的花费要比从注释到代码高得多。
  • PDL 比其它形式的设计文件容易维护。如果使用其它方式,设计与编码是分隔的,假如其中一个有变化,那么两者就毫不相关了。在从 PDL 到代码的流程中,PDL 语句则是代码的注释,只要直接维护注释,那么关于设计的 PDL 文件就是精确的。

  作为一种详细设计工具,PDL 是无可比拟的。程序员们往往愿意用 PDL 而不愿使用缺陷表。事实上程序员们愿意使用缺陷表以外的任何工具,调查表明,程序员们愿意使用 PDL,是因为它很容易用程序语言实现,而且 PDL 可以帮助发现详细设计中的缺陷,并且 PDL 也很容易写成文件,改动也很方便,PDL 并不是详细设计的唯一工具,但是 PDL 和 PDL 到代码流程的确是有用的工具。不妨试一下。

摘自 《代码大全》
  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值