Yanhong+Annie+Liu
在計算機領域中,設計是指建立計算機程序,包括算法的步驟和數(shù)據(jù)表示,以滿足特定的要求。在設計過程中,人們會因為解決了一項明確的計算任務而獲得興奮感,也會因必須注意一些細節(jié)、服從諸多限制和反復試驗而感到沮喪。應運而生的系統(tǒng)化程序設計方法,可以幫助開發(fā)人員確保程序的正確性和性能,同時降低開發(fā)成本。所謂系統(tǒng)化設計是指將問題一步一步描述成理想的效果,其本質是再現(xiàn)、自動化并加快創(chuàng)造與開發(fā)過程,其中:理解、部署和演化的程序注重規(guī)范的清晰度,程序驗證、使用和生存周期注重實施效率。系統(tǒng)化設計方法可以讓我們從繁瑣且易錯的環(huán)節(jié)中解放,避免重復工作,致力于真正創(chuàng)造性工作。本書在之前很多重要的研究者的研究工作中開發(fā)出了一種統(tǒng)一系統(tǒng)化的程序設計方法。
全書由7章組成:1.引言。提出了在計算機程序設計、算法設計和解決一般問題時采用清晰且有效的系統(tǒng)化設計方法的必要性,并提出了所面臨的挑戰(zhàn),介紹了一種基于增量方法:迭代、增量與實施,解釋了支持對于給定問題的清晰的規(guī)范的語言的必要性和成本模型,給出了全書中使用的術語和符號;2.循環(huán):增量。闡釋了基于增量的方法中的核心步驟:增量,介紹了循環(huán)中的基本語法和數(shù)組結構,以及如何實現(xiàn)相對循環(huán)增量保持不變增量原理,給出了在硬件中二進制整數(shù)開根號算法與圖像處理中增量模型中的應用,討論了數(shù)據(jù)、控制抽象的必要性;3.集合:增量與實現(xiàn)。介紹了為解決數(shù)據(jù)抽象的增量與實施中的集合表達式,說明了涉及定點運算時,迭代將運算轉換為循環(huán)的工作原理及過程,增量步驟將大的集合表達式轉化為組和增量維護代碼,降低了運行時間,實施中則關注設計鏈接數(shù)據(jù)結構,給出了訪問控制和查詢優(yōu)化實例,討論了遞歸中控制抽象的必要性;4.遞歸:迭代與增量。研究了將迭代后的增量應用遞歸優(yōu)化,介紹了遞歸函數(shù)應用范圍廣泛但效率較低的特點,闡述了在迭代中確定最低增量和轉化遞歸函數(shù)為迭代過程,在增量中產(chǎn)生增量函數(shù)和達到動態(tài)規(guī)劃,以及實施過程中,使用鏈接與索引數(shù)據(jù)結構,給出了在組合優(yōu)化及在數(shù)學中的問題實例;5.規(guī)則:迭代、增量與實現(xiàn)。提出了兩個示例應用程序:程序分析和信任管理,討論了在構建大型應用程序進行模塊抽象的必要性;6.對象:跨模塊抽象增量。介紹了在大規(guī)模應用中的模塊抽象規(guī)范與實現(xiàn),討論了在應用模塊時產(chǎn)生的清晰度與效率的沖突及解決辦法,介紹了電子健康記錄數(shù)據(jù)庫與機器人游戲中的應用實例;7.結論。對增量模型進行了深層次研究,介紹了三種排序例子的思想,以及建立并打破抽象的程序設計需求,討論了該方法在實現(xiàn)和實驗中的問題,并指出了該方法的局限性和未來的研究方向。
本書在每一章后均給出了問題相關的歷史工作和文獻注釋,使讀者對正文中提到的某些問題有較為全面的認識。在本書的最后,列出了所有參考文獻,為讀者研究書中提到的方法及問題提供系統(tǒng)的參考。
本書適合從事計算機科學、編程語言和軟件設計和應用邏輯研究的高年級本科生及一年級碩士研究生閱讀和參考,適用于自學與課堂講授。對于有一些計算機科學背景知識的讀者及有經(jīng)驗的計算機科學研究人員和從業(yè)人員,本書也將提供很有用的幫助。
張進興,碩士研究生
endprint