Snowball es un lenguaje de programación de procesamiento de cadenas pequeñas diseñado para crear algoritmos de derivación para su uso en la recuperación de información . [1]
El nombre Snowball fue elegido como homenaje al lenguaje de programación SNOBOL , con el que comparte el concepto de patrones de cadenas que entregan señales que se utilizan para controlar el flujo del programa. El creador de Snowball, Dr. Martin Porter , "jugó con la idea de llamarlo 'strippergram'", porque "proporciona efectivamente un 'sufijo STRIPPER GRAMmar'". [1]
El compilador Snowball traduce un script Snowball (un archivo .sbl) a un programa en ANSI C , Java , Ada, C#, Go, Javascript, Object Pascal, Python o Rust. Para ANSI C, cada secuencia de comandos Snowball produce un archivo de programa y el archivo de encabezado correspondiente (con extensiones .c y .h). [2] El compilador Snowball comprueba la coherencia de su guión, y esta comprobación se utilizó para descubrir un error tipográfico en un artículo académico fundamental de Lovins que no había sido detectado durante 30 años. [3]
Los tipos de datos básicos que maneja Snowball son cadenas de caracteres, enteros con signo y valores de verdad booleanos , o más simplemente cadenas, números enteros y booleanos. Los caracteres de Snowball tienen un ancho de 8 bits o de 16 bits, según el modo de uso. En particular, se admiten tanto ASCII como Unicode de 16 bits . Al igual que el lenguaje de programación SNOBOL , el flujo de control en Snowball se organiza mediante el uso implícito de señales (cada declaración devuelve un valor verdadero o falso), en lugar del uso explícito de construcciones como if, then y break que se encuentran en C y muchos otros lenguajes de programación. [4]