Entonces, es obvio que una cadena de cosas es una secuencia de cosas y, por lo tanto, una secuencia de caracteres / bytes / etc. bien podría llamarse una cadena. ¿Pero quién los llamó primero cuerdas? ¿Y cuando? ¿Y en qué contexto se quedó? Siempre me he preguntado sobre esto.
58
Respuestas:
¿Podemos obtener una cita real antes de la referencia de Hugo de 1963? Si. John McCarthy usó la palabra "cadena" en funciones recursivas de expresiones simbólicas y su cálculo por máquina, Parte I , de abril de 1960.
pero más útil para esta pregunta, una referencia a una cadena como tipo de datos:
Ese no es un gran ejemplo. Al decir "una cadena de caracteres", McCarthy no está usando "cadena" en el sentido que los programadores especializados lo dicen hoy. Puede decir fácilmente "una cadena" a un programador de Java y sabrá que la parte "de caracteres" está implícita: el uso de McCarthy no demuestra esta característica. Intentemos retroceder a la década de 1950, para ver si McCarthy estaba jugando a lo seguro o si el término realmente no existía en ese momento. LISP probablemente no va a ayudar mucho aquí, ya que se basa en un cálculo matemático, por lo que las funciones de cadena de McCarthy pueden haber sido la primera aplicación de la idea al procesamiento de cadenas.
Un importante sistema de procesamiento de cadenas de la década de 1960 fue SNOBOL, un lenguaje de manipulación de cadenas de 1964 . Esto cita el artículo de McCarthy anterior, pero también analiza COMIT y SCL. El trabajo que citan en SCL es inédito: un callejón sin salida desafortunado.
COMIT es más fácil de rastrear. The Art of Computer Programming (Volumen 1, tercera edición, p.461) nos dice que VH Yngve escribió un artículo de 1963 CACM sobre él. Pero estoy buscando el uso más temprano de "string", así que haré una búsqueda de autor para publicaciones anteriores.
Lo primero que puedo encontrar es Un lenguaje de programación para la traducción mecánica , de julio de 1958. Esto solo contiene un uso de la palabra "cadena":
Una vez más, este uso es como el de McCarthy: esto no es evidencia de que se use "cadena" en su sentido actual. Mirando el documento en detalle, vemos que la estructura de datos es una "línea" en una tarjeta (permitiendo la continuación de "líneas" más largas).
OK, avanzaremos en la historia de COMIT y veremos qué podemos obtener. La primera referencia útil es el sistema COMIT para la traducción mecánica , de las actas de una conferencia de junio de 1959.
Esto parece más parecido a la forma en que lo usamos hoy en día: "string" está solo y, como bonificación, tiene un símbolo especial reconocible: el signo de dólar todavía se usa en algunos sabores BÁSICOS para significar una variable de cadena.
Alrededor de este tiempo, la palabra "cadena" también aparece muchas veces en el lenguaje de comando A para manejar cadenas de símbolos por Perlis y Smith de los Procedimientos ACM '58, y una vez en El Sistema Share 709: Implementación de Máquina de Programación Simbólica por Boehm y Acero.
La búsqueda de 'cadenas' en la biblioteca digital de ACM a principios de la década de 1960 arroja 62 resultados, incluidos títulos como "Manejo de cadenas en ALGOL", "Manipulación de cadenas en el nuevo idioma" y "Una técnica de almacenamiento de tipo de lista para información alfanumérica". Parece que la idea se ha atrincherado para entonces.
Yo diría que "cadena" en su sentido de jerga informática como una lista ordenada de caracteres se hizo común durante un par de años alrededor de 1960. Antes de eso, autores como Yngwe y McCarthy podían decir "cadena de caracteres" y asegurarse de que fueran entendido, pero no podía usar "cadena" como una palabra desnuda en el sentido que se usa hoy en día.
La taquigrafía probablemente fue presentada a la corriente principal de la informática por el artículo de Perlis y Smith. No ha sido ampliamente citado, pero una cita importante son los aumentos sintácticos y semánticos a ALGOL por Joseph W. Smith en abril de 1960 (en el mismo número de CACM que la descripción de McCarthy de LISP). De ese papel:
Para mí, esto constituye evidencia de "cadena" que significa un tipo de datos para la computación simbólica que se afirma en el léxico académico, y se introduce de manera importante en las herramientas utilizadas para la computación comercial.
Por cierto, los lenguajes de programación: Historia y futuro de Jean Sammet (1972) sugieren que COMIT y SNOBOL fueron los progenitores de la manipulación de cadenas, por lo que estoy bastante seguro de que no habrá ejemplos anteriores.
fuente
No es una respuesta completa, pero el uso de una cadena para significar "una cantidad de objetos dispuestos en una línea" ya existía a fines de la década de 1400. Fuente
Este es esencialmente el mismo uso.
fuente
La primera referencia que pude encontrar en informática es de METEOR: un intérprete de LISP para transformaciones de cadenas de marzo de 1963 , de Daniel G. Bobrow, en los laboratorios de IA del MIT.
El Oxford English Dictionary tiene un ejemplo informático anterior de una edición de 1956 del Journal of the Association for Computing Machinery :
fuente