SNOBOL

SNOBOL

infobox programming language
name = SNOBOL
paradigm = multi-paradigm: object-oriented, functional, logic
year = 1962
designer = David J. Farber, Ralph E. Griswold and Ivan P. Polonsky
developer = David J. Farber, Ralph E. Griswold, Ivan P. Polonsky, and Bell Labs
latest release version = SNOBOL4
latest release date = 1967
implementations = SNOBOL, SPITBOL
influenced = Icon

SNOBOL ("String Oriented Symbolic Language") is a computer programming language developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polensky. (The name is a jocular reference to COBOL and ALGOL, but these languages have no other connection and no other notable similarities).

During the 1950s and 1960s there was a flourishing of interest in special-purpose computer languages. SNOBOL was one of a number of text-string-oriented languages, and one of the more successful; others included COMIT and TRAC.

SNOBOL was widely used in the 1970s and 1980s as a text manipulation language in the humanities, but in recent years, its popularity has faded as newer languages such as Awk and Perl have made string manipulation by means of regular expressions popular. However, the pattern matching capabilities of SNOBOL are significantly more powerful than those of regular expressions. SNOBOL is now used mainly by enthusiasts, and new implementations are rare.

Features

The SNOBOL4 (StriNg Oriented symBOlic Language number 4) version is the fourth and final incarnation of such a series of special purpose programming languages for character string manipulation.

The SNOBOL4 variant of the language supports a number of built-in data types, such as integers and limited precision real numbers, strings, patterns, arrays, and tables (associative arrays), and also allows the programmer to define additional data types and new functions. SNOBOL4's programmer-defined data type facility was advanced at the time (it preceded, and resembles, Pascal's "records" and C's "structs").

SNOBOL4 stands apart from the mainstream programming languages of that time by having patterns as a first-class data type ("i.e." a data type whose values can be manipulated in all ways permitted to any other data type in the programming language) and by providing operators for pattern concatenation and alternation. Strings generated during execution can be treated as programs and executed.

A SNOBOL pattern can be very simple or extremely complex. A simple pattern is just a text string (e.g. "ABCD"), but a complex pattern may be a large structure describing, for example, the complete grammar of a computer language.

SNOBOL provides the programmer with a rich assortment of features including some rather exotic ones. As a result it is possible to use SNOBOL as if it were an object-oriented language, a logical programming language, a functional language or a standard imperative language by changing the set of features used to write a program. It also concatenates strings that are simply placed next to each other in a statement. It keeps strings in a memory heap, and frees programmers from concerns about memory allocation and management for strings.

Implementations

The classic implementation was on the PDP-10; it has been used to study compilers, formal grammars, and artificial intelligence, especially machine translation and machine comprehension of natural languages. The original implementation was on an IBM 7090 at Bell Labs, Holmdel, N.J. SNOBOL4 was specifically designed for portability; the first implementation was on an IBM 7094 but it was rapidly ported to many other platforms.

It is normally implemented as an interpreter because of the difficulty in implementing some of its very high-level features, but there is a compiler, the SPITBOL compiler, which provides nearly all the facilities that the interpreter provides.

The Gnat Ada Compiler comes with a package (GNAT.Spitbol) which implements all of the Spitbol string manipulation semantics. This can be called from within an Ada program.

Several implementations are currently available. Macro SNOBOL4 in C written by Phil Budne is a free, open source implementation, capable of running on almost any platform. It is available at http://www.snobol4.org/. Catspaw, Inc. at http://www.snobol4.com/, provides a commercial implementation of the SNOBOL4 language for many different computer platforms, including DOS, Macintosh, Sun, RS/6000, and others. An older version, SNOBOL4+, is now available free from Catspaw. Minnesota SNOBOL4, By Viktors Berstis, is also free.

Although SNOBOL itself has almost a complete absence of structured programming features,a structured version of SNOBOL called Snostorm existed at University College London UCLbetween 1982 and 1984, and another by Andrew Koenig called Snocone. [http://www.acceleratedcpp.com/authors/koenig/bibliography/snocone.pdf]

See also

* SPITBOL
* Icon programming language
* Unicon programming language

References

Further reading

* 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).
* Hockey, Susan M. "Snobol Programming for the Humanities". New York: Clarendon Press; Oxford: Oxford University Press, 1985 (ISBN 0-19-824676-5).

External links

* [http://www.snobol4.com/ Catspaw, Inc. offers implementations of and support for SNOBOL4]
* [http://dmoz.org/Computers/Programming/Languages/Snobol/ Open Directory Project Category for Snobol]
* [http://drofmij.awardspace.com/snobol/ Introduction to Snobol by James Ford]
* [http://www.engin.umd.umich.edu/CIS/course.des/cis400/snobol/word.html A sample program in SNOBOL]
* [http://special.lib.umn.edu/findaid/xml/cbi00190.xml Charles Hall Collection on the SNOBOL Programming Language] . [http://www.cbi.umn.edu Charles Babbage Institute] , University of Minnesota, Minneapolis.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Snobol — Desarrollador(es) David J. Farber, Ralph E. Griswold, Ivan P. Polonsky y Laboratorios Bell Información general Paradigma Multiparadigma, orientado a objetos, funcional …   Wikipedia Español

  • SNOBOL — 4 (String Oriented symbolic Language number 4) ist die vierte und letzte Ausprägung einer Reihe von Programmiersprachen mit dem Zweck der Manipulation von Zeichenketten. Diese Sprachen wurden zwischen 1962 und 1967 in den Bell Laboratories von AT …   Deutsch Wikipedia

  • Snobol — fue diseñado en los Bell Laboratories por D. J. Farber, R. E. Griswold y F. P. Polensky a principios de los años 60. Se trata de un lenguaje de muy alto nivel orientado a la manipulación de cadenas de caracteres con rasgos muy avanzados. A pesar… …   Enciclopedia Universal

  • SNOBOL —   [Abk. für String Oriented Symbolic Language, dt. »zeichenkettenorientierte symbolische Sprache«], eine 1964 in den AT&T Bell Laboratories entwickelte imperative Programmiersprache zur Verarbeitung von Zeichenfolgen, z. B. von Text. Snobol hat… …   Universal-Lexikon

  • SNOBOL — das; Kunstw.; <wohl nach der verwendeten Zeichenkette> imperative Programmiersprache für Textverarbeitung, deren wichtigster Datentyp die Zeichenkette ist (EDV) …   Das große Fremdwörterbuch

  • SNOBOL — /snōˈböl/ noun String Oriented Symbolic Language, a high level computer language for handling strings of symbols …   Useful english dictionary

  • Snobol — Снобол язык программирования высокого уровня, разработанный в 1962 1967 гг. и предназначенный преимущественно для обработки текстовых данных. Основной целью языка Снобол являлось показать принцип (возможность его полноценного существования), что… …   Википедия

  • SNOBOL — String Oriented Symbolic Language SNOBOL (abréviation de StriNg Oriented symBOlic Language) est un langage de base de données basé sur le traitement des chaînes de caractères. Ce standard a été défini entre 1960 et 1962 dans les Laboratoires Bell …   Wikipédia en Français

  • SNOBOL — ● np. m. ►LANG►HISTO StriNg Oriented symBOlic Language. Langage de base de données basé sur le traitement de chaîne de caractères, défini entre 1960 et 1962 aux laboratoires Bell. Il est resté peu connu jusqu à sa version 4 (SNOBOL4), qui a eu… …   Dictionnaire d'informatique francophone

  • SNOBOL — String Oriented Symbolic Language (Computing » General) …   Abbreviations dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”