Barra invertida - Backslash

\
Barra invertida
En  Unicode U + 005C \ REVERSE SOLIDUS (HTML \  · \ )
 ⧵   ⧹ 
Operador solidus inverso Solido inverso grande Solidus inverso de ancho completo

La barra invertida \ es una marca tipográfica que se utiliza principalmente en informática y es la imagen reflejada de la barra inclinada común / . A veces se le llama hack , whack , escape (de C / UNIX ), slash invertido , slosh , downwhack , backslant , backwhack , bash , reverse slant y reverse virgule . En Unicode y ASCII está codificado en U + 005C \ REVERSE SOLIDUS (92 decimal ).

Historia

Diseño de teclado teletipo ASR-33 con juego de caracteres ASCII, antes del 14 de junio de 1966, con barra invertida en shift + L

A mayo de 2021, los esfuerzos para identificar el origen de este personaje o su propósito antes de la década de 1960 no han tenido éxito. La primera referencia conocida encontrada hasta la fecha es un manual de mantenimiento de 1937 de Teletype Corporation con una fotografía que muestra el teclado de su perforador Wheatstone . Queda por descubrir el propósito de la clave, ya que el símbolo no tenía una codificación en código Morse y, por lo tanto, no se habría transmitido.

En junio de 1960, IBM publicó un "estándar de juego de caracteres extendido" que incluye el símbolo en 0x19. En septiembre de 1961, Bob Bemer (IBM) propuso al comité de estándares X3.2 que [, ]y \se hiciera parte del estándar propuesto, describiera la barra invertida como un "operador de división inversa" y citó su uso anterior por Teletype en telecomunicaciones. En particular, dijo, se necesitaba \ para que los operadores booleanos ALGOL ( conjunción lógica ) y ( disyunción lógica ) pudieran componerse usando / \ y \ / respectivamente. El Comité adoptó estos cambios en el proyecto de Norma Americana (posteriormente llamado ASCII ) en su reunión de noviembre de 1961.

Estos operadores se utilizaron para min y max en las primeras versiones del lenguaje de programación C suministrado con Unix V6. y V7

El Teletype Model 33 ("ASR-33") parece ser la primera unidad disponible comercialmente que tiene el carácter de teclado estándar para la venta en algunos mercados; este modelo tiene un juego completo de caracteres ASCII.

Uso

Lenguajes de programación

En muchos lenguajes de programación como C , Perl , PHP , Python , lenguajes de scripting Unix y muchos formatos de archivo como JSON , la barra invertida se usa como un carácter de escape , para indicar que el carácter que le sigue debe tratarse de forma especial (si fuera necesario de lo contrario se trataría normalmente) o normalmente (si de lo contrario se trataría de forma especial). Por ejemplo, dentro de un literal de cadena C, la secuencia \nproduce un byte de nueva línea en lugar de una 'n', y la secuencia \"produce una comilla doble real en lugar del significado especial de la comilla doble que termina la cadena. Una barra invertida real se produce mediante una barra invertida doble \\.

Los lenguajes de expresión regular lo usaron de la misma manera, cambiando los caracteres literales subsiguientes en metacaracteres y viceversa. Por ejemplo, \ || b busca '|' o 'b', la primera barra se escapa y se busca, la segunda no se escapa y actúa como una "o".

Fuera de las cadenas entre comillas, el único uso común de la barra invertida es ignorar ("escapar") una nueva línea inmediatamente después. En este contexto, puede denominarse "línea continua", ya que la línea actual continúa en la siguiente. Algún software reemplaza la barra invertida + nueva línea con un espacio.

Para admitir equipos que carecían del carácter de barra invertida, se agregó el trígrafo C ??/ , que es equivalente a una barra invertida. Dado que esto puede escapar al siguiente carácter, que en sí mismo puede ser un ?, el uso moderno principal puede ser para la ofuscación del código . Se eliminó el soporte para trígrafos en C ++ 17 .

En Visual Basic (y algunos otros dialectos de BASIC ), la barra invertida se usa como símbolo de operador para indicar la división de enteros . Esto se redondea hacia cero.

El lenguaje de programación ALGOL 68 utiliza "\" como símbolo de exponente decimal . ALGOL 68 tiene la opción de 4 símbolos de exponentes decimales: e, E, \ o 10 . Ejemplos: 6.0221415e23 , 6.0221415E23 , 6.0221415 \ 23 o 6.0221415 10 23 .

En APL \ se llama Expandir cuando se usa para insertar elementos de relleno en matrices, y Escanear cuando se usa para producir reducción de prefijo (pliegue acumulativo).

En PHP versión 5.3 y superior, la barra invertida se usa para indicar un espacio de nombres .

En Haskell , la barra invertida se usa tanto para introducir caracteres especiales como para introducir funciones lambda (ya que es una aproximación razonable en ASCII de la letra griega lambda, λ).

Nombres de archivo

MS-DOS 2.0, lanzado en 1983, copió el sistema de archivos jerárquico de Unix y, por lo tanto, usó la barra inclinada (hacia adelante) pero (posiblemente por insistencia de IBM) agregó la barra invertida para permitir que las rutas se escriban en el indicador de línea de comandos del intérprete mientras se conserva la compatibilidad. con MS-DOS 1.0 donde la barra era el indicador de opción de la línea de comandos (al escribir " DIR / W " se le dio la opción "amplia" al comando " DIR ", por lo que se necesitaba algún otro método si realmente deseaba ejecutar un programa llamado W dentro de un directorio llamado DIR ). A excepción de COMMAND.COM , todas las demás partes del sistema operativo aceptan ambos caracteres en una ruta , pero la convención de Microsoft sigue siendo utilizar una barra invertida y las API que devuelven las rutas usan barras invertidas. En algunas versiones, el carácter de la opción se puede cambiar de / a - a través de SWITCHAR , lo que permite que COMMAND.COM conserve / en el nombre del comando.

La familia de sistemas operativos Microsoft Windows heredó el comportamiento de MS-DOS y, por lo tanto, todavía admite cualquiera de los caracteres, pero los programas y subsistemas individuales de Windows pueden, erróneamente, aceptar solo la barra invertida como un delimitador de ruta, o pueden malinterpretar una barra inclinada si es utilizado como tal. Algunos programas solo aceptarán barras diagonales si la ruta se coloca entre comillas dobles . El hecho de que las funciones de seguridad de Microsoft no reconozcan las barras en direcciones inesperadas en rutas locales y de Internet, mientras que otras partes del sistema operativo aún actúan sobre ellas, ha provocado algunos fallos graves en la seguridad. Se ha accedido a los recursos que no deberían estar disponibles con rutas que utilizan mezclas particulares, como http://example.net/secure\private.aspx .

Marcado de texto

La barra invertida se usa en el sistema de composición tipográfica TeX y en los archivos RTF para comenzar con las etiquetas de marcado.

En USFM , la barra invertida se usa para marcar características de formato para editar traducciones de la Biblia .

En notación de intercalación , ^\representa el carácter de control 0x1C, separador de archivos . Esto es completamente una coincidencia y no tiene nada que ver con su uso en rutas de archivos.

Matemáticas

Se utiliza un símbolo similar a una barra invertida para la diferencia de conjuntos .

La barra invertida también se usa a veces para indicar el espacio lateral derecho .

Especialmente cuando se describen algoritmos de computadora, es común definir una barra invertida para que a \ b sea ​​equivalente a a / b . Esta es una división entera que se redondea hacia abajo, no hacia cero. En Wolfram Mathematica, la barra invertida se usa de esta manera para la división de enteros.

En MATLAB y GNU Octave, la barra invertida se usa para la división de la matriz izquierda , mientras que la barra inclinada (hacia adelante) es para la división de la matriz derecha.

Confusión con ¥ y otros personajes

En las codificaciones japonesas ISO 646-JP (un código de 7 bits basado en ASCII ), JIS X 0201 (un código de 8 bits) y Shift JIS (una codificación de varios bytes que es de 8 bits para ASCII), el código el punto 0x5C que se usaría para la barra invertida en ASCII se representa en su lugar como un signo de yen ¥ . Debido al uso extensivo del punto de código 005C para representar el signo yen, incluso hoy en día algunas fuentes como MS Mincho representan el carácter de barra invertida como ¥, por lo que los caracteres en los puntos de código Unicode 00A5 (¥) y 005C (\) se representan como ¥ cuando se seleccionan estas fuentes. Los programas informáticos todavía tratan 005C como una barra invertida en estos entornos, pero lo muestran como un signo de yen, lo que genera confusión, especialmente en los nombres de archivo de MS-DOS.

Varias otras versiones de ISO 646 también reemplazan la barra invertida con otros caracteres, incluidos (coreano), Ö (alemán, sueco), Ø (danés, noruego), ç (francés) y Ñ (español), lo que genera problemas similares, aunque con menos impacto duradero en comparación con el signo del yen.

RFC 1345 sugiere //como un mnemónico único de dos caracteres que puede usarse en los estándares de Internet como "una forma práctica de identificar [este] carácter, sin referencia a un juego de caracteres codificados y su código en [ese] juego de caracteres codificados".

Ver también

Referencias

enlaces externos