troff

由AT&T為Unix開發的文字處理軟體。

簡介

troff是一個由AT&T為Unix開發的文字處理軟體。troff的歷史能夠回溯到一個叫做RUNOFF的排版程式,在20世紀六十年代中期由Jerome H. Saltzer為MIT的CTSS作業系統編寫。(其名稱據傳是來自於當時一個短語I'll run off a document的縮寫。)

Robert Morris把它移植到GE 635體系結構上並稱其roff(runoff的縮寫)。它為了能在PDP-7上運行被重寫為rf,與此同時,Douglas McIlroy用BCPL程式語言重寫了一個roff的擴展和簡化了的版本。

第一個版本

Unix的第一個版本是在貝爾實驗室里的一台PDP-7上開發出來的。在1971年開發者們為了能在作業系統上做進一步的工作想獲得一台PDP-11。為了能夠協調這台設備的成本,他們建議說他們應該為AT&T的專利部門開發一個文檔處理系統。第一個處理程式是對McIlroy的roff的重新編寫,由Joe F. Ossanna完成。

發展進程

當他們需要一個更加靈活的語言時,編寫了一個roff的新版本叫做nroff(Newer ‘roff’)。該版本有著更加複雜的句法,但是它為未來的版本奠定了基礎。當他們獲得了一個圖像設備CAT照相排版機時,為了能夠驅動它,Ossanna又編寫了nroff的一個版本。這個版本被叫做troff,因為它是排字機(typesetter)的roff。為此,troff的發音應該是t-roff而不是trough。 隨troff而來的有nroff,它是為針式印表機和字元終端設備產生輸出的。它理解troff所理解的任何事情,並且不再使用不合適的命令(比如字型改變)。

不幸的是,Ossanna的troff是用PDP-11的彙編語言編寫的,所以只能產生CAT照相排版機的輸出。他用C語言進行了重寫,儘管這變成了7000行無注釋的代碼並且仍然依賴CAT。隨著CAT越來越不常見,並且不再受到製造商的支持,使troff支持其他設備就成為了一個要優先解決的問題。可是在這被完成之前Ossanna就去世了。Brian Kernighan接手了重寫troff的工作。新寫的版本產生了一個與設備無關的帶代碼,這讓後繼者非常容易容易閱讀並改寫成適合其他印表機的代碼。同時,這個新版本的troff(因為是device independent troff被稱為ditroff)具有了幾項擴展,其中包含了繪圖函式。該版在貝爾實驗室的一篇題為《一個與排版機無關的troff》的計算機科學技術報告中得到描述,該報告經gzip壓縮的PostScript版可在計算機科學技術網這裡獲得。該文章定義了ditroff的輸出格式,改格式被像GNUgroff這樣的許多現代troff的克隆版本所使用。

troff的工具集最終被稱作Documenter's WorkBench(DWB),並且直到1994年還在貝爾實驗室和後來抽資脫離貝爾實驗室的UNIX系統實驗室(USL)中繼續開發。當時,SoftQuad公司接管了維護任務,儘管Kernighan自己還在改進troff。因此現在有四個起初貝爾實驗室的troff的變體:

一個由Bill Joy編寫的古老變體,現在仍然由Sun公司掌管

SoftQuad的DWB,基於USL1994年的DWB 2.0

朗訊的DWB 3.4

troff,Plan 9中的版本

troff及其家族的使用在20世紀九十年代有了某種程度的減少,但是仍然被廣泛地使用著。雖然troff正在被像Interleaf、FrameMaker和LaTeX這樣的其他程式所取代,但它仍然是Unix手冊的預設格式。 始於1990年的GNU項目重新編寫了該軟體,起名為groff。另外,由於早期Unix版本的開源化,以及其現代的後繼者OpenSolaris和9號計畫,AT&T的troff的幾個版本均可在不同的開源許可證下獲得。

相關詞條

相關搜尋

熱門詞條

聯絡我們