SNOBOL簡史
SNOBOL是在1962年由Bell實驗室的一個研究小組研製出來的,用來處理它們自己的符號公式。在1966年出現的改進擴充型稱為SNOBOL 3,並在幾種機器上運行。後來又進一步做了強化,稱為SNOBOL 4,它的通用性更強。SNOBOL 4是第三種型號,它是在1969年9月份研製出來的。
SNOBOL語言是為字元串處理提供完善功能的一種獨特的、較為豐富和複雜的程式設計語言。但它實現起來比PL/1簡單得多。它是行處理語言,也能用作表加工。它的特點是具有定義新數據類型的功能(如模式數據類型),並能在執行時動態檢查數據結構與相應運算是否一致。例如,整數運算的運算對象是否是整數,浮點運算的運算對象是否是浮點數。用這種語言能設計出一個高質量的編譯程式,因此它已成為十幾種常用的、廣泛流行的語言之一。為了增加語雷的移植能力,它定義一種與機器相對無關的宏語言。這樣,只要實現了宏語言,語言的移植就能在新機器上容易實現。國外已有若干種機器配備了SNOBOL系統,還有專門的SN0BOL實現語言。
起源
SNOBOL(發音為snowball;Griswold等,1971)語言是20世紀60年代早期由貝爾實驗室(Bell Laboratories)的三個人D.J.Farber、R.E.Griswold和I.P.Polonsky設計的(Farber等,1964)。它是專為文本處理而設計的。SNOBOL語言的核心是一些用於字元串模式匹配的強大的運算符。SNOBOL語言早期的套用之一是編寫文本編輯器。由於SNOBOL語言的動態特徵,它比其他的語言慢,因此不再用於這樣的程式了。不過SNOBOL語言仍然是一種有生命力且有支持的語言,在一些不同的套用領域中用於各種文本處理任務。
SNOBOL的各種編譯程式
SNOBOL在很多機器上運行,主要是:
Burroughs B6700系統
CDC Cyber,6000系統
DEC PDP一10,PDP-15系統
Honcywell 600,6000系列
IBM360,370系列
Univac 1100系列
與其他的語言不同,SNOBOL的編譯程式可為許多計算機廠家所通用。
應甩範圍
SNOBOL語言主要用於文本處理套用領域。基本的數據類型主要是字元串。對字元串的主要操作是對文本的分析和綜合,這些文本是自然語言文本,
代數公式文本等等。
在文本處理中分析的基本單元是字元。相鄰的、長度可變的非空白字元是一個字,因此,文本處理分析所涉及的主要問題是對每個字的隔離和處理。
文本處理套用中的輸入一輸出功能也是不同的,要按照被傳送的信息,對定長記錄強加上一些人為的邊界。文本的長度一般說來是可變的,輸入單元可以是一個字,一個句子,或一個段落。一頁稱為一個輸入一輸出單元,在一頁中程式執行緩衝功能,即可把一頁的信息暫存起來,可以把一頁放到已有的段落、句子或字中,或者單獨建立字、句子或段落。
最新的SNOBOL文本有新的工具,使它具有更多的通用語言的特點。這些工具包括浮點算術運算,陣列和表格結構。
SNOBOL程式的書寫
SNOBOL程式是一個語句序列,這些語旬是說明
算法的。這些算法是
字元串處理。
SNOBOL語句可以說明很多功能。例如,基本賦值語句,比較和轉移操作可以結合到一個語句中。
此外,SNOBOL的語句類型幾乎沒有什麼區別。因此,有經驗的程式人員很容易掌握這種語言。程式人員的任務是用這種語言去有效地處理文本。通常,這比科學或數據處理領域更為困難,因為這種編程技術更複雜,需要的知識面更廣泛。