A Snobol programozási nyelv

Bevezetés

Általános jellemzők

A SNOBOL-t stringkezelésre találták ki a '60-as években. Legelterjedtebb implementációja a SNOBOL4. Füzérfeldolgozásra és alakzatillesztésre használt magas szintű imperatív programnyelv. Két fő művelete a stringkonkatenálás és a mintaillesztés. Jellemző rá a gyenge típusosság (dynamically typed) - nincs típus deklarálás, és nincs megszorítás a változó értékének a típusára sem. Nem blokkstruktúrált nyelv, de használ függvényeket. A program egy sora 3 mezőből áll (mind opcionális): címke, törzs és GOTO. A SNOBOL interpreteres nyelv, a program fordítása és futtatása egyszerre történik és nem készül önmagában végrehajtható (exe) file. Azt is megtehetjük, hogy a program futása közben új utasításokat (sorokat) írunk hozzá a kódhoz és az újonnan bekerült részt azonnal kipróbáljuk. A SNOBOL nem objektum-orientált nyelv, nem támogatja a párhuzamosságot, nincs benne kivételkezelés.

Történet

A SNOBOL elődjének a COMIT és a TRAC tekinthető, ezek szintén szöveg-sztring orientált nyelvek voltak. Ezeket a nyelveket a természetes nyelvek feldolgozására találták ki.

Az első SNOBOL (String Oriented Symbolic Language) nyelvet David J. Farber, Ralph E. Griswold és Ivan P. Polonsky alkották meg az AT&T Bell Labs-nál 1962-ben. A SNOBOL-t eredetileg SEXI-nek (String Extraction Interpreter) nevezték.

Az eredeti SNOBOL rendszert BEFAP (Bell Laboratories FORTRAN assembly program) assembler-ben írták IBM 7090-re. A nyelvből hiányoztak a beépített eljárások, ezért az újabb verziót kibővítették, ez lett a SNOBOL2, ami 1964-ben készült el. A programozó által definiált eljárások lehetőségét a SNOBOL3-ban valósították meg, 1965-ben.

A SNOBOL3 modern implementációját Java-ban írta meg Dennis Heimbigner.

A harmadik generációs számítógépek eljövetelével a komputerek már több memóriával és gyorsabb CPU-val rendelkeztek, ezekre a gépekre készült el a SNOBOL4. Ebben a nyelvben tökéletesítették a mintákat (patterns), a numerikus adattípusokat (numeric data types), a tömböket (arrays), a struktúrákat (structures) és nem utolsó sorban a táblákat (tables). (A továbbiakban a nyelv jellemzésénél a SNOBOL4-gyel fogok foglalkozni.)

A SNOBOL4 1967-ben készült el, amit néha Macro SNOBOL4-nek neveztek. Persze a SNOBOL4-t portolták pc-kre is: Vanilla SNOBOL4 (ez a legelterjedtebb, ez alapján írom a nyelv jellemzését is), SNOBOL4+ (a Vanilla SNOBOL4 feljavított, kibővítetett verziója), Minnesota SNOBOL. (A példakódok kipróbálásánal a Vanilla SNOBOL4 fordítóját használtam.)

Később a nyelv különböző implementációit belefoglalták más nyelvekbe is: SPITBOL\360 és SPITBOL\370, Macro SPITBOL, SITBOL, FASBOL, ELFBOL. A teljesség igénye nélkül megemlítenék még 2 nyelvet. Az egyik az Icon, ami gyakorlatilag a SNOBOL utódjának tekinthető, 1974-ben jelent meg C és Pascal-szerű szintakszissal. A másik a Perl, ami tulajdonképpen a SNOBOL és az Icon modern analógiája.

A SNOBOL elnevezés megtévesztő lehet, hiszen nincs semmiféle kapcsolat és jelentős hasonlóság közte és a COBOL között!

Alkalmazási területek

A SNOBOL4-t szívesen használták az 1970-es és 1980-as években, igen elterjedt szövegmanipulációs nyelv volt a humán tárgyakban. Elsősorban kutatásra használták a nyelvtudományban és az irodalomban. Alkalmas volt az irodalmi művek és a zeneművek elemzésére. A nyelvben járatosak adatbázisok programozására is használták.

A SNOBOL4 valójában kétféle nyelv kombinációja: a konvencionális nyelvé, számos adattípussal és egyszerű, de erőteljes vezérlő szerkezettel, és a mintaillesztő nyelvé, egyedi szerkezetével. A konvencionális nyelv nem blokkstrukturált, és divatjamúlt már. A mintaillesztő nyelv, azonban, eleddig felülmúlhatatlan és kivételes a SNOBOL4-ben.

Hello World

Nézzük meg először, hogy SNOBOL-ban, hogy néz ki az egyszerű "Hello World!" program:

OUTPUT = 'Hello World!' END * Hello World!