Can you summarize the following document?
        
  SNOBOL4超脫於同時代的多數程式語言的是將模式(pattern)作為第一類資料型別(這種資料型別的值可以被程式語言中的任何其他資料型別以所有允許的方式操縱),並提供算符(operator)用於模式串接和。SNOBOL4模式是某一種型別的物件並允許各種操縱,非常類似於後來的面嚮物件語言比如JavaScript的那種叫做正規表示式的模式。此外SNOBOL4在執行期間生成的字串可以被當作程式,並要麼解釋要麼編譯而執行(如同其他語言的eval函式那樣)。  在1960年代後期和1970年代前期,SNOBOL4在美國大學中被廣泛教授,並在1970年代和1980年代,在人文學科中作為文字操縱語言被廣泛使用。  在1980年代和1990年代,隨著新的語言比如AWK和Perl使得通過正規表示式方式的字串操縱成為時尚,對SNOBOL4的使用逐漸衰竭了。SNOBOL4模式歸類為BNF文法,它等價於上下文無關文法而比正規表示式更強力。不同於SNOBOL4模式,純粹的正規表示式是不遞迴的,這帶給SNOBOL4模式以明確的計算上的優勢;當前版本的AWK和Perl的“正規表示式”,實際上是正則語言意義上的正規表示式的擴充套件(遞迴表示式於2007年十二月發行的Perl 5.10中仍未出現)。  SNOBOL的設計者之一Ralph Griswold,設計了SNOBOL4的後繼者,叫做SL5和Icon,它們將SNOBOL4模式匹配的回溯演算法與更標準的類ALGOL結構結合起來,同時增加了它們自己的一些特徵。

  SNOBOL4支援很多內建資料型別,比如整數、有限精度的實數、字串、、陣列,和首創的叫做“表格”的關聯陣列,並允許程式設計者定義額外的資料型別和新函式。SNOBOL4的程式設計者定義資料型別的設施在當時是先進的,它類似於更早的COBOL和更晚的Pascal程式語言中的記錄。  所有SNOBOL的命令列語句都是如下形式的:  label subject pattern = object :transfer 這五種元素每個都是可選項。“標號”(label)位於行首用來標識語句,沒有標號的語句開始於一個空白字元,特例的單一標號codice_1表示程式結束。有四種基本型別的運算操作(operation):基礎、賦值、模式匹配和模式匹配替換,所有運算操作都有“主語”(subject)。基礎操作運算只有一個主語,構成主語的表示式被求值。賦值運算操作有“賓語”(object),等號右側的值被賦予左側的變數,如果對主語或賓語的求值失敗,則不發生賦值。在模式匹配時,針對“模式”(pattern)對主語進行匹配;如果這時存在賓語,則經由替換規則將其中任何匹配部分替換為賓語。“轉移”(transfer)可以是絕對分支,即codice_2;或依賴於前面運算操作的成功(success)或失敗(failure)的條件分支,即codice_3。還可以轉移到在執行期間程式自身所建立並編譯的程式碼。  SNOBOL模式可以非常簡單也可以非常複雜。一個簡單模式可以是已知的文字字串(比如codice_4),或對未知字串的種類的指定(比如模式函式codice_5);而一個複雜模式可以是一個大型的結構描述,例如一個計算機語言的完整文法。有可能在SNOBOL中實現一個語言的直譯器,幾乎直接源自它的巴科斯-諾爾正規化表示式,加上一些改變即可。  SNOBOL採用了隱式的輸入輸出機制,分別用特殊識別符號codice_6指示標準輸入,codice_7指示標準輸出。  SNOBOL4模式匹配使用了回溯演算法,這類似於邏輯程式語言Prolog所用的演算法,它通過提供了類似模式的構造。這個演算法使得利用SNOBOL作為邏輯程式語言比大多數其他語言都要容易。  SNOBOL在一個單一的有垃圾回收的堆中儲存變數、字串和資料結構。  SNOBOL在格式和程式設計風格的鮮明性上匹敵於APL,不同於更“標準”的過程式語言如BASIC、Fortran或C語言,二者都是很激進的。

  “Hello, World!”程式: END 向使用者要求輸入名字並把它填入輸出句子中的簡單程式:  END 根據使用者輸入與二個模式的匹配情況在三種不同語氣的輸出中進行選擇: MEH OUTPUT = "Hi, " Username :(END) LOVE OUTPUT = "How nice to meet you, " Username :(END) HATE OUTPUT = "Oh. It's you, " Username END 持續要求使用者一次一個輸入自己所有的名字,直到只按Enter鍵表示再無後續者為止,最後告知使用者一共輸入了幾個名字: AGAIN NameCount = NameCount + 1 GETINPUT OUTPUT = "Please give me name " NameCount + 1 END

  目前有一些實現能夠獲得。Macro SNOBOL4 in C是Phil Budne寫的自由開源實現,能夠在幾乎所有平臺上執行。 Catspaw公司提供了對很多計算機平臺的SNOBOL4語言商業實現,現在有可以免費獲得的版本。Viktors Berstis的Minnesota SNOBOL4是最接近IBM大型主機版本的PC實現,也是免費的。  儘管SNOBOL自身沒有結構化程式設計特徵,有叫做Snostorm的SNOBOL前處理器,由Fred G. Swartz於1970年代設計和實現,提供了IF、ELSEIF、ELSE、LOOP、CASE和PROCEDURE語句,並用於密歇根大學的(MTS)。  Andrew Koenig的Snocone向SNOBOL4增加了塊結構構造。Snocone是自包含的程式語言,而非SNOBOL4的真超集。  SPITBOL編譯器實現也介入了一些特徵,儘管不使用傳統的結構化程式設計關鍵字,卻可以用來提供很多通常被認作“結構化程式設計”的等價能力,最顯著的是巢狀if/then/else型別的構造。這些特徵已經被增加到最新近的SNOBOL4實現中。經過了很多年作為商業產品之後,在2009年四月,SPITBOL成為了在GNU通用公共許可證下發行的自由軟體。
SNOBOL(StriNg Oriented and symBOlic Language),即“面向字串和符號式的語言”,是AT&T貝爾實驗室的David J. Farber、Ralph E. Griswold和Ivan P. Polonsky,在1962年至1967年間開發的,以SNOBOL4告終的一系列程式語言。在1950年代和1960年代,開發了一些面向文字字串的語言,它是其中之一,其他語言包括COMIT和TRAC。