Mientras que las otras respuestas señalan que argv
proviene de C, ¿de dónde sacó C la idea de llamar a un conjunto un "vector"?
Directamente, vino de BCPL . Aunque se argv
refiere al vector de los argumentos (de cadena), BCPL tenía cadenas almacenadas en vectores, pero eran literales de cadena y funcionaban como cadenas de Pascal. El vector tenía dos elementos: la longitud en literal!0
y los caracteres en literal!1
. De acuerdo con Clive Feather , las cadenas se manipularon "desempacándolas" en matrices de caracteres, transformando la matriz y luego "reempaquetándolas" en cadenas: compárelo con C donde las cadenas son matrices de caracteres.
Entonces sí, C usó v para vector porque algo más lo había hecho antes. Ahora, ¿hizo algo antes de que BCPL usara el vector de esta manera? BCPL era en sí misma una simplificación del "lenguaje de programación Cambridge [o combinado]": esto se usaba vector
como sinónimo de una matriz unidimensional y matrix
como sinónimo de una matriz bidimensional. Esto es consistente con la notación en matemáticas de vectores y matrices, aunque en CPL son simples mnemónicos y no tienen ninguna de las propiedades asociadas con las estructuras matemáticas.
¿Podemos retroceder más en el tiempo con respecto a los lenguajes de computación? Una rama potencial de nuestro sendero se enfría. La CPL estuvo fuertemente influenciada por Algol 60 (la actualización de 1963). Ahora ALGOL 68 tenía tipos que se describían como "vectores empaquetados", como bits
y bytes
: pero no estaban en versiones anteriores de Algol que solo se ARRAY
referían a la matriz. Como BCPL proviene de 1966, CPL debe haber sido antes (pero después de 1963): ALGOL 68 (estandarizado en 1968 y 1973) no puede haber sido una influencia directa.
Por otro lado, las características principales de CPL también hacen referencia al sistema LISP de McCarthy . Si bien esto no utiliza vector para referirse a una estructura de datos en el sistema en sí, aquellos ser S-expresiones , M-expresiones y L-expresiones (L-expresiones son cadenas, por lo que cualquier asociación entre el vector y la cadena ha desaparecido), se no uso vector en otro sentido para representar los "valores de una serie de variables" representa "el estado de la máquina en cualquier momento". Por lo tanto, tenemos evidencia de una suposición hecha en los comentarios: que el uso de la palabra 'vector' para significar 'matriz' en computación proviene de la aplicación del término similar en matemáticas.