複製鏈接
請複製以下鏈接發送給好友

文學編程

鎖定
文學編程是由高德納發明的編程方法,用以替代20世紀70年代提出的結構化編程範型。
中文名
文學編程
外文名
Literate Programming
作    者
高德納
隸    屬
編程方法
目    的
替代結構化編程範型

目錄

文學編程信息簡介

正如高德納所構想的那樣,文學編程範型不同於傳統的由計算機強加的編寫程序的方式和順序,而代之以讓程序員用他們自己思維內在的邏輯和流程所要求的順序開發程序。文學編程自由地表達邏輯,而且它用人類日常使用的語言寫出來,就好像一篇文章一樣,文章裏包括用來隱藏抽象的和傳統的源代碼。文學編程工具用來從文學源文件中獲得兩種表達方式,一種用於計算機進一步的編譯和執行,稱作“繞出”(tangled)的代碼,一種用於格式化文檔,稱作從文學源代碼中“織出”(woven)。雖然第一代文學編程工具特定於計算機語言,但後來的工具可以不依賴具體語言,並且存在於比編程語言更高的層次中。

文學編程概念

文學程序是用自然語言(比如英語)寫出來的對程序邏輯的解釋,程序中交織點綴着宏和傳統源代碼段。在文學編程的源文件中,宏很簡單,它或與標題類似,或是解決編程問題時用人類語言描述抽象的解釋性短語。它把代碼段或更低層次的宏隱藏了起來,且與計算機科學教學時經常用到的,用偽碼寫的算法相似。這些任意解釋的短語成為新的精確的操作符,操作符由程序員在運行過程中創建,組成了在基本編程語言之上的“元語言”。 預處理器用於替換任意層級,説得更準確些是“在'網'和宏之間創建聯繫”,用命令"tangle"產生可編譯源代碼,用命令"weave"產生文檔。預處理器還提供了寫出宏的內容的能力和在文學程序源文件中的任何地方增加已創建的宏的能力,由此不必受傳統編程語言強加的那些限制或是打斷自己的思路。

文學編程工具

第一個發佈的文學編程環境是WEB,由高德納於1981年為他的TeX排版系統而引入。它使用Pascal作為其基礎編程語言,使用TeX作為文檔排版工具。其它的文學編程概念的實現有noweb和FunnelWeb,它們都是源代碼獨立的。Haskell編程語言對半文學編程有原生支持,其來源於CWEB但用了較簡單的實現。