El circunflejo ( ^
) se equiparó al carácter de flecha hacia arriba en las teleimpresoras. Para cuando apareció SunOS y demás, esta parte tenía más de 10 años en el pasado. El mismo carácter (reemplazo) se usó en expresiones matemáticas, por ejemplo, ^
para poderes (donde otros podrían usar **
). También se usó en Pascal para indicar punteros.
Utilizado para indicar caracteres de control, esta fecha (al menos) es anterior a 1980. Puede encontrarlo utilizado en la documentación de DEC, por ejemplo (ciertamente estaba en uso a mediados de la década de 1970 cuando usé teco. El manual de utilidades de 1973 (página 927) muestra un controlCpor ejemplo.
Buscando una fuente adecuada, encuentro Códigos de comunicación de teletipo de Gil Smith que dice lo suficiente como para colocar esto a fines de la década de 1960 (lo que demuestra que el origen también es anterior a Unix):
ASCII-63 era casi idéntico a la versión actual de ASCII-67. Las definiciones de los caracteres de control (col-1 arriba) variaron entre las dos versiones, como se define a continuación. Además, en ASCII-63, las 32 posiciones superiores (col-4) no estaban definidas, excepto tres: RUB (0x7F), ACK (0x7C) y ESC (0x7E). Hay referencias inconsistentes a un carácter ALT-MODE (0x7D) en ASCII-63. En la versión de 1967, RUB se convirtió en DEL y permaneció en la misma posición, pero ACK y ESC se movieron al área de caracteres de control (col-1). En ASCII-67, ^ reemplazó el símbolo de flecha hacia arriba y _ reemplazó la flecha hacia la izquierda
ASCII-63 y ASCII-67 son las variantes comunes de ASCII, pero también parece haber algunas versiones de transición: en el manual de Teletype Model 33, hay referencias a una versión de 1965 de ASCII, que tenía SS en lugar de SUB (0x1A), \ for @ (0x40), ~ for \ (0x5C), un carácter extraño en lugar de | (0x7C) y | para ~ (0x7E). Una tarjeta de código de teletipo para máquinas M33 y M35 indica una versión de 1966 de ASCII, aunque los caracteres imprimibles que se muestran en la tarjeta eran idénticos en todas las versiones.
Esto solía ser bien conocido, debido a los problemas de intercambio de archivos entre diferentes codificaciones como ASCII y EBCDIC donde todavía había impresoras capaces de mostrar flechas hacia arriba, mucho después de que el carácter ya no existiera en ASCII.
vi
(al menos el de SunOS 3.5) usó un símbolo de intercalación / circunflejo delante de las letras para representar ctrl-C, ctrl-V, etc.stty
, y también lo hizo. Por otro lado,^
funcionó como sinónimo de|
scripts en shell durante esa época, por lo que siempre tendría que reducir la barra diagonal enstty
invocaciones. Buena pregunta.