Icono (lenguaje de programación)


Icon es un lenguaje de programación de muy alto nivel basado en el concepto de "ejecución dirigida a objetivos" en el que el código devuelve un "éxito" junto con valores válidos, o un "fracaso", lo que indica que no hay datos válidos para devolver. El éxito y el fracaso de un bloque de código determinado se utiliza para dirigir el procesamiento posterior, mientras que los lenguajes convencionales suelen utilizar la lógica booleana escrita por el programador para lograr los mismos fines. Debido a que la lógica de las estructuras de control básicas a menudo está implícita en Icon, las tareas comunes se pueden completar con un código menos explícito.

Icon fue diseñado por Ralph Griswold después de dejar Bell Labs , donde fue uno de los principales contribuyentes al lenguaje SNOBOL . SNOBOL era un lenguaje de procesamiento de cadenas con lo que se consideraría sintaxis fechada según los estándares de principios de la década de 1970. Después de mudarse a la Universidad de Arizona , desarrolló aún más los conceptos subyacentes de SNOBOL en SL5, pero consideró que el resultado fue un fracaso. Esto condujo a Icon, significativamente actualizado, que combina el código corto pero conceptualmente denso de los lenguajes similares a SNOBOL con la sintaxis más familiar de los lenguajes inspirados en ALGOL como C o Pascal .

Al igual que los lenguajes que lo inspiraron, el área principal de uso de Icon es la gestión de cadenas y patrones textuales. Las operaciones de cadenas a menudo fallan, por ejemplo, al encontrar "el" en "mundo". En la mayoría de los idiomas, esto requiere pruebas y bifurcaciones para evitar el uso de un resultado no válido. En Icon, la mayoría de este tipo de pruebas simplemente no son necesarias, lo que reduce la cantidad de código escrito por el programador. El manejo de patrones complejos se puede lograr en unas pocas líneas de código conciso, similar a lenguajes más dedicados como Perl pero conservando una sintaxis más orientada a funciones familiar para los usuarios de otros lenguajes similares a ALGOL.

Icon no está orientado a objetos , pero en 1996 se desarrolló una extensión orientada a objetos llamada Idol que eventualmente se convirtió en Unicon . También inspiró a otros lenguajes, siendo sus generadores simples especialmente influyentes; Los generadores de Icon fueron una gran inspiración para el lenguaje de programación Python . [2]

El esfuerzo original de SNOBOL , conocido retroactivamente como SNOBOL1, se lanzó en el otoño de 1962 en el Departamento de Estudios de Investigación de Programación de Bell Labs . [3] El esfuerzo fue una reacción a las frustraciones de intentar usar el lenguaje SCL para la manipulación de fórmulas polinómicas, la integración simbólica y el estudio de las cadenas de Markov . SCL, escrito por el jefe de departamento Chester Lee, era lento y tenía una sintaxis de bajo nivel que generaba volúmenes de código incluso para proyectos simples. Después de considerar brevemente el lenguaje COMIT, Ivan Polonsky, Ralph Griswold y David Farber, todos miembros del departamento de seis personas, decidieron escribir su propio lenguaje para resolver estos problemas. [4]

Las primeras versiones se estaban ejecutando en IBM 7090 a principios de 1963, y para el verano se habían construido y se usaban en Bell. Esto condujo casi de inmediato a SNOBOL2, que agregó una serie de funciones integradas y la capacidad de vincularse a código de lenguaje ensamblador externo. Fue lanzado en abril de 1964 y se usó principalmente dentro de Bell, pero también tuvo algún uso en Project MAC . La introducción de las funciones del sistema sirvió principalmente para indicar la necesidad de funciones de usuario, que fue la principal característica de SNOBOL3, lanzado en julio de 1964. [5]