# Snobol

SNOBOL (StriNg Oriented symBOlic Language) es un lenguaje de programación de computadoras de muy alto nivel que surgió en la década de los 60 en los Laboratorios Bell merced al equipo formado por David J. Farber, Ralph E. Griswold e Ivan P. Polonsky.

## Historia

Durante las décadas de los cincuenta y sesenta del siglo veinte había un importante interés en lenguajes de programación de computadoras de propósito especial. SNOBOL fue uno más de los lenguajes orientados a cadenas de texto y de entre ellos uno de los más exitosos. (v.g.: COMIT y TRAC).
Fue usado ampliamente durante las décadas de los setenta y ochenta del siglo veinte como un lenguaje de manipulación de texto en las disciplinas humanísticas, pero, en años recientes su popularidad se ha desvanecido merced a que lenguajes nuevos tales como AWK y Perl han hecho popular la manipulación de cadenas usando expresiones regulares; ahora es usado principalmente por aficionados siendo raro ver implementaciones recientes.
La implementación clásica fue en la PDP-10 y se ha usado para estudiar compiladores, gramáticas formales e inteligencia artificial, en particular traducción automática y comprensión automática de lenguajes naturales. La implementación original fue en una IBM 7090 en los Laboratorios Bell en Holmdel, Nueva Jersey. Fue diseñado expresamente para la portabilidad así que fue rápidamente exportado a otras plataformas.
Queda por comprobar lo que se dice al respecto de que el algoritmo de coincidencia de patrones de búsqueda es superior al de las expresiones regulares de modo que programas bien escritos y compilados usando la implementación SPITBOL del SNOBOL4 son del orden de 10 o más veces más rápidos en su ejecución que los equivalentes escritos en Perl. Se llamaba originalmente "SEXI" (StriNg EXpression Interpreter), que en español es algo así como: Intérprete de Expresiones de Cadenas. La versión SNOBOL4 es la cuarta y más reciente encarnación de una serie de lenguajes de programación de computadoras para el propósito especial de manipulación de cadenas de caracteres.
SNOBOL4 soporta una cantidad importante de tipos de datos tales como: enteros, números reales de precisión limitada, cadenas de texto, patrones de búsqueda, arreglos y tablas así como la capacidad de permitir al programador definir tipos de datos adicionales y nuevas funciones (esta última característica fue avanzada para su época además de parecerse y de que precede a los 'records' del Pascal o los 'structs' del C).
Sobresale de entre los lenguajes de programación más famosos de su tiempo por usar los patrones de búsqueda como un tipo de datos nativo al lenguaje y por proveer operadores para concatenación de patrones y alternación, además de que las cadenas generadas durante la ejecución pueden ser tratadas como programas que pueden a su vez ser ejecutados. Un patrón de búsqueda puede ser muy simple o extremadamente complicado. Un ejemplo de patrón simple puede ser una cadena de texto (v.g.: "ABCD"), y un ejemplo de patrón complicado puede ser una gran estructura que describa la gramática completa de un lenguaje de programación de computadoras.
Ofrece al programador una amplia variedad de características incluyendo algunas muy exóticas, de ahí que se pueda usar como si fuera un lenguaje orientado a objetos, un lenguaje de programación lógica, un lenguaje de programación funcional o un lenguaje de programación imperativa cambiando el conjunto de características usadas para escribir un programa. También concatena cadenas que estén una junto a la otra en una sentencia y mantiene las cadenas en un montículo de memoria liberando así a los programadores de preocupaciones tales como asignación de memoria y manejo de cadenas.
Se implementa normalmente como un intérprete debido a las dificultades para instrumentar algunas de sus características de muy alto nivel, pero hay un compilador, el SPITBOL, que provee casi todas las características que la versión interpretada. El lenguaje de programación de computadoras Icon es un descendiente de SNOBOL4.

### Ejemplo
## Bibliografía

* Griswold, Ralph E., J. F. Poage, and I. P. Polensky. The SNOBOL 4 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).