string - sirve - La historia detrás de la definición de una ''cadena''
principales tags de html (10)
De this referencia:
La OED de 1971 (pág. 3097) cita un Diccionario del Siglo de 1891 en una fuente del Milwaukee Sentinel del 11 de enero de 1898 (sección 3, pág. 1) en el sentido de que este es un término para el compositor. Las impresoras pegarían el texto que habían generado en una larga franja de caracteres. (Presumiblemente, ¡fueron pagados por el pie, no por la palabra!) La cita dice que no era raro que los compositores crearan más de 1500 (caracteres?) Por hora.
Nunca he pensado hasta hace poco, pero no estoy seguro de por qué llamamos strings
. Soy un programador .NET, pero creo que el concepto de cadenas existe en prácticamente todos los lenguajes de programación.
Fuera de la programación, no creo haber escuchado la string
palabras utilizada para describir palabras o letras. Una búsqueda rápida en Google de ''Definir: cadena'' produce un montón de definiciones que no tienen nada que ver con el concepto de letras, palabras o cualquier cosa de la naturaleza asociada a la programación.
Mi conjetura de esto es que, en el pasado, las cadenas eran en realidad solo arreglos de caracteres de una longitud particular, a menudo con un carácter delimitante al final. Pero, no veo una transición natural de la "matriz de caracteres" a la string
.
¿Alguien puede ofrecer alguna idea de por qué llamamos strings
?
De la búsqueda a través de la bibliografía ACM parece que la cadena de palabras adquirió su significado en ciencias de la computación durante la década de 1960. Al principio, una cadena es un tipo general de secuencia o lista, por ejemplo, un lenguaje de comandos para manejar cadenas de símbolos desde 1958.
Este artículo menciona explícitamente "cadenas de caracteres" en 1964.
Lamentablemente no puedo acceder a los textos completos, que están detrás de una cabina de peaje.
En una charla sobre el historial de Javascript, Douglas Crockford dice "Nadie sabe" y ofrece algunas alternativas: http://www.youtube.com/watch?v=RO1Wnu-xKoY#t=2989
Encontré el informe que en él, supuestamente, existe la primera referencia en la historia de la computadora a una serie de caracteres como una "cadena". Creo que está en la columna superior derecha de la página 4 del pdf, que tiene el número 47:
http://web.eecs.umich.edu/~bchandra/courses/papers/Naure_Algol60.pdf
Había adivinado que los matemáticos usaban la "cuerda" mucho antes de su adopción en los lenguajes de programación. Las máquinas de Turing funcionan efectivamente en cuerdas. Turing puede no haber usado el término, pero se usa en todas partes en los libros de texto de autómatas, desde hace décadas.
La primera referencia que pude encontrar fue un fragmento en los libros de Google de un artículo de 1944 "Conjuntos recursivamente enumerables de enteros positivos y sus problemas de decisión" por el lógico Emil Post en el Boletín de la AMS. Afortunadamente, AMS proporciona archivos en línea de artículos completos gratuitos para descargar. Aquí hay un enlace: http://www.ams.org/journals/bull/1944-50-05/S0002-9904-1944-08111-1/S0002-9904-1944-08111-1.pdf
Creo que hay pocas dudas de que esté usando "cuerdas" en el sentido convencional que se usa en ciencias de la computación. P. 286 "Para fines de trabajo, introducimos la letra b, y consideramos" cadenas "de 1 y b como 11b1bb1. Una operación en cadenas tales como" b1bP produce P1bb1 "se denomina operación normal. Esta normal particular la operación es aplicable solo a las cadenas que comienzan con b1b, y la cadena derivada se obtiene de la cadena dada eliminando primero la b1b inicial, y luego insertando 1bb1 al final. Así, b1bb se convierte en b1bb1 ".
La palabra se usó originalmente para diferenciar entre un conjunto de valores en los que no importa el orden particular de los elementos (por ejemplo, un conjunto de muestras aleatorias de mediciones) y otro que solo podría conservarse su significado cuando el orden también se conserva. . Originalmente, una cadena podría ser un conjunto de cualquier tipo de valores, pero dado que en la era posterior al mainframe, una cadena de caracteres es, con mucho, la más común, el hecho de que los valores sean caracteres se convirtió en un "valor predeterminado".
La primera referencia que pude encontrar en informática es de METEOR: un intérprete de LISP de marzo de 1963 por Daniel G. Bobrow en los Laboratorios de AI de MIT.
Sin embargo, la definición 15d. en el Diccionario de Inglés de Oxford es:
Cálculo de una secuencia lineal de registros o datos.
... y con una primera cita de una revista de 1956 de la Association for Computing Machinery :
Las áreas se reservan para desplazar cadenas de campos de control hacia adelante y hacia atrás hasta obtener una secuencia completamente ordenada.
Este uso sigue naturalmente de la definición 15c .:
Mates. , etc. Una secuencia de símbolos o elementos lingüísticos en un orden definido.
... y se usó por primera vez en la lógica simbólica de Clarence Irving Lewis y Cooper Harold Langford (1932):
Las proposiciones no son cadenas de marcas, o series de sonidos, excepto incidentalmente.
Esto, a su vez, se desprende de muchas otras definiciones mucho más tempranas para cosas en una línea.
Mi suposición siempre ha sido que el término de programación se originó a partir de la siguiente definición de la palabra "cadena" (de Merriam-Webster):
(1): una serie de cosas dispuestas en o como si estuvieran en una línea <una cadena de autos> <una cadena de nombres>
(2): una secuencia de elementos similares (como bits, caracteres o palabras)
Dado que una cadena en la programación es simplemente una secuencia ordenada de caracteres, referirse a esto como una "cadena de caracteres" (o simplemente "cadena") parece ser el origen más probable.
Se llama cadenas, porque en realidad es una matriz de elementos de tipo char.
Dicho esto, se "encadenan" (o se encadenan) a través de esta matriz, que los convierte en una "cadena".
Una cadena es una secuencia de objetos discretos (generalmente char
).
Dado eso, probablemente aventuraría una suposición de que podría tener que ver con una metáfora relacionada con "cadena de perlas". Cada cuenta en la cadena es un solo carácter.
Sospecho que se debe a que la string
originalmente significaba solo una secuencia de valores de datos: "Sólo uniré estos", etc. Estos valores no tenían que ser caracteres. Un uso muy común para este concepto general fue una secuencia de caracteres, y esto se hizo cargo del significado general de la palabra.