Can you summarize the following document?
        
  m4是POSIX標準中的一部分,所有版本的UNIX下都可用。雖然這種語言可以單獨使用,但大多數人需要m4僅僅是因為GNU autoconf中的“configure”指令碼依賴它。  巨集處理器(或前處理器)一般用作文字替換工具。終端使用者經常會用它來處理要反覆使用的文字模板,典型的是用於程式設計工具,還會用於文字編輯和文書處理工具。

  巨集處理器開始流行的時候,程式設計師還都在使用組合語言來程式設計。在早期,程式設計師發現他們的程式中包含了很多重複的程式碼,於是他們創造了這種簡單的方法來重用。程式設計師們很快發現它不僅能用於重用整塊程式碼,還能為類似的引數替換不同的值。這明確了巨集處理器的使用範圍。  在1977年,Kernighan和Ritchie基於Christopher Strachey的想法開發了m4。一些與眾不同的特徵有: 從一開始,Rational Fortran(RatFor)就使用m4作為它的巨集引擎,而大多數UNIX變種釋出時都包含了它。 截止2009年,許多應用仍在使用m4(作為GNU autoconf專案的一部分)。它還出現在sendmail(一個廣泛使用的郵件傳輸代理)的配置過程,以及用於gEDA工具包中生成腳印。  m4大多用於程式碼生成,和其他巨集處理器一樣,一旦出了問題會很難除錯。

  m4提供如下功能: 與大部分早先的巨集處理器不同,m4並不面向任何計算機語言或自然語言;但從歷史角度來說,它最初是為支援Fortran的方言Ratfor而開發的。此外,m4還是一種圖靈完備的程式語言。

  以下巨集程式碼可生成HTML程式碼:自動為每個章節編號。  上述程式碼在m4中執行,生成以下結果:  dnl用於刪除前面的空行。

  GNU實現了一個m4版本;FreeBSD、NetBSD和OpenBSD也提供一個m4語言的獨立實現版本;此外,OpenSolaris的Heirloom專案開發工具中也包含了一個m4語言的自由版本。
m4是一個通用的巨集處理器,由布萊恩·柯林漢和丹尼斯·裡奇設計。m4是基於Ritchie早先為AP-3小型機開發的m3巨集處理器擴充套件的。