SNOBOL

Da Wikipedia, l'enciclopedia libera.
Snobol
Autore David J. Farber, Ralph E. Griswold, Ivan P. Polonsky
Data di origine 1962
Ultima versione 4
Utilizzo general purpose e analisi di testi
Paradigmi Imperativo
Tipizzazione
Estensioni comuni sno
Ha influenzato Icon, Lua, SL5
Implementazione di riferimento
Implementazione CSNOBOL4 release 2.0 2015.01.01
Sistema operativo Unix-like, Windows
Licenza varie
Sito web www.snobol4.org

Storia[modifica | modifica wikitesto]

SNOBOL (StriNg Oriented and symBOlic Language) è il nome generico di un linguaggio di programmazione per calcolatore sviluppato tra il 1962 e il 1967 da David J. Farber, Ralph E. Griswold e Ivan P. Polonsky presso i Laboratori AT&T Bell. L'ultima versione del linguaggio ha preso il nome di SNOBOL4. SNOBOL è stato uno di una serie di linguaggi orientati alle stringhe sviluppato tra gli anni cinquanta e i sessanta (tra gli altri, COMIT e TRAC).

SNOBOL4 si differenzia dalla maggior parte dei linguaggi di programmazione poiché fornisce il pattern come tipo di dato di prima classe (ovvero, un tipo di dato i cui valori possono essere manipolati in qualsiasi modo permesso a qualsiasi altro tipo di dato nel linguaggio) e operatori per concatenzione e alternanza di pattern. Le stringhe generate durante l'esecuzione possono essere trattate come programmi e quindi eseguite.

SNOBOL4 è stato spesso insegnato in grandi università statunitensi verso la fine degli anni 1960 e all'inizio degli anni 1970 ed è stato ampiamente utilizzato nei due decenni seguenti come linguaggio di manipolazione del testo in ambito umanistico.

In anni recenti SNOBOL ha ceduto il passo a nuovi linguaggi quali Awk e Perl, che hanno reso di moda la manipolazione di stringhe mediante espressioni regolari. Tuttavia, i pattern di SNOBOL4 sussumono le grammatiche BNF, che sono equivalenti alle grammatiche libere dal contesto e più potenti delle espressioni regolari.[1] Le espressioni regolari implementate nelle attuali versioni[non chiaro] di Awk e Perl, infatti, sono estensioni delle espressioni regolari intese in senso tradizionale, ma esse - al contrario dei pattern di SNOBOL4 - non possono essere ricorsive.[2]

Uno dei progettisti di SNOBOL, Ralph Griswold, ne ideò due successori, chiamati SL5 e Icon, che combinavano il meccanismo di pattern matching di SNOBOL4 con una strutturazione più standard stile ALGOL.

Esempi[modifica | modifica wikitesto]

Il programma "Hello World":

        output = "Hello world"
end

Un programma per identificare le vocali all'interno di una stringa proposta dall'utente:

        Vocali = "aeiou"
        Testo = input
loop    Testo ? any(Vocali) . output rem . Testo :s(loop)
end

Se l'utilizzatore scrive ad esempio aiuole il programma restituisce in sequenza i caratteri aiuoe. Se l'utilizzatore scrive abbassata il programma restituisce aaaa.

Implementazioni disponibili[modifica | modifica wikitesto]

Disponibile sia per sistemi Unix-like sia per Windows è l'implementazione Macro SNOBOL4 in C scritta da Phil Budne: è gratuita e open source [3]. Anche Dave Shields sviluppa attivamente una sua versione del linguaggio [4], che continua lo Spitbol (Speedy Implementation of Snobol) realizzato da Catspaw, Inc. [5]; Catspaw distribuisce ora gratuitamente molto materiale su Snobol e Spitbol.

Note[modifica | modifica wikitesto]

  1. ^ (EN) Gimpel, J. F. 1973. A theory of discrete patterns and their implementation in SNOBOL4. Commun. ACM 16, 2 (Feb. 1973), 91-100.
  2. ^ (EN) Programs that transform their own source code or the Snobol foot joke
  3. ^ http://www.snobol4.org/
  4. ^ https://github.com/daveshields
  5. ^ http://www.snobol4.com/

Bibliografia[modifica | modifica wikitesto]

  • Dewar, Robert BK, Mark B. Emmer, and Robert E. Goldberg. Macro Spitbol. The High-Performance SNOBOL4 Language. Salida, Colorado, Catspaw Inc., 2000².
  • Emmer, Mark B. SNOBOL4+: The SNOBOL4 Language for the Personal Computer User. Englewood Cliffs, NJ: Prentice Hall, 1985 (ISBN 0-13-815119-9).
  • Gimpel, James F. Algorithms in SNOBOL4. New York: Wiley, 1976 (ISBN 0-471-30213-9); republished Salida, CO: Catspaw, 1986 (ISBN 0-939793-00-8).
  • Griswold, Ralph E. The Macro Implementation of SNOBOL4. San Francisco, CA: W. H. Freeman and Company, 1972 (ISBN 0-7167-0447-1).
  • Griswold, Ralph E., J. F. Poage, and I. P. Polonsky. The SNOBOL4 Programming Language. Englewood Cliffs, NJ: Prentice Hall, 1968 (ISBN 0-13-815373-6).
  • Griswold, Ralph E. String and List Processing in SNOBOL4: Techniques and Applications. Englewood Cliffs, NJ: Prentice Hall, 1975 (ISBN 0-13-853010-6).
  • Hockey, Susan M. Snobol Programming for the Humanities. New York: Clarendon Press; Oxford: Oxford University Press, 1985 (ISBN 0-19-824676-5).

Collegamenti esterni[modifica | modifica wikitesto]