我認爲這個想法可以追溯到Post systems,用字符串重寫(「如果你看到這個字符串,用它替換它」)。 Post系統具有圖靈功能,因此可以計算任何東西(包括程序文本!)。 Emil Post關於這些文章的論文可追溯到1943年,但據說他在20年代做了最初的概念化。
The General Purpose Macro Processor是最早被廣泛使用的產品之一,已於60年代初期上市。
TRAC是另一個可以追溯到同一時期的早期宏觀處理器。 History of Computer Languages (TRAC)表示它設計於1959年。
這兩個都是圖靈功能的宏處理器。
SNOBOL也是來自同一時期。
事實上,在60年代初建立的非常通用的宏處理器向我暗示,可能存在特殊用途的宏處理器,然後才能提供靈感。在這之前,我確信宏處理器在彙編器中正在使用,但我沒有具體的證據。
我知道COBOL有所謂的COPY庫,它是宏和包含文件之間的交叉。我不知道這是什麼時候引入到COBOL中的,但是它的語言可以追溯到1958年。
有趣的是,LISP宏可以被認爲是樹對樹重寫的特例(「if你看到一個看起來像這樣的s表達式,用一個看起來像這樣的s表達式替換它「)。樹可以很容易地建模爲字符串(請參閱:「LISP」:),因此LISP宏是字符串重寫的特例。
樹重寫的廣義案例現在是Program Transformation Systems的基礎,它可以對程序文本進行大規模更改。
謝謝 - 我已經忘記了彙編宏和郵政系統。這非常有用 - 而且我還會編輯我的問題以包含「第一個高級語言」 - 如果它是COBOL,還不清楚。 – Jay 2010-06-17 21:18:54