閱讀筆記 > 程序設計語言( PDL )

程序設計語言( 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 到代碼流程的確是有用的工具。不妨試一下。

摘自 《代碼大全》
發佈了48 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章