Paradigma | multi-paradigma: objektově orientované, funkcionální, logické |
---|---|
Vznik | 1962 |
Autor | David J. Farber, Ralph E. Griswold and Ivan P. Polonsky |
Vývojář | David J. Farber, Ralph E. Griswold, Ivan P. Polonsky, and Bellovy laboratoře |
Poslední verze | SNOBOL4 (1967) |
Hlavní implementace | SNOBOL, SPITBOL |
Ovlivnil jazyky | Icon, Lua, SL5 |
SNOBOL (angl. StriNg Oriented and symBOlic Language) je programovací jazyk vyvíjen v letech 1962 až 1967 v AT&T Bellových laboratořích pány David J. Farber, Ralph E. Griswold a Ivan P. Polonsky, jehož poslední verzí je jazyk SNOBOL4. Byl jedním z několika textově orientovaných jazyků vyvíjených v 50. a 60. letech, mezi které patří i COMIT a TRAC.
SNOBOL4 se liší od většiny programovacích jazyků tím, že má vzory jako primární datový typ (tj. datový typ, jehož hodnoty mohou být měněny všemi způsoby povolenými kterémukoliv jinému datovému typu programovacího jazyka) a poskytováním operátorů pro řetězení a měnění vzorů. S řetězci generovanými během vykonávání programu může být zacházeno jako s programy a mohou být spouštěny.
SNOBOL4 byl v 60. a 70. letech docela široce vyučován na velkých univerzitách a v 70. a 80. letech byl též široce využíván jako jazyk pro práci s textem v humanitních oborech.
V 80. a 90. letech jeho užívání upadávalo, protože nové jazyky, jako například AWK a Perl, umožňovaly manipulaci s řetězci pomocí regulárních výrazů. Vzory SNOBOL4 zahrnují gramatiky BNF, které jsou ekvivalentní bezkontextové gramatice a silnější než regulární výrazy. Regulární výrazy v současných verzích AWK a Perl jsou ve skutečnosti rozšířením regulárních výrazů v tradičním smyslu. Ale regulární výrazy, na rozdíl od vzorů jazyka SNOBOL4, nemohou být rekurzívní, což je značnou výhodou vzorů SNOBOL4. Nicméně regulární výrazy v jazyce Perl mohou být od verze Perl 5.10 (vydané v prosinci roku 2007) také rekurzívní.
Jeden z vývojářů jazyka SNOBOL, Ralph Griswold, navrhl nástupce jazyka SNOBOL4 nazvané „SL5“ a „Icon“, které kromě jiných nově přidaných funkcí také kombinovaly backtracking vzorů SNOBOL4 a obvyklejší ALGOL strukturu.