Barra invertida - Backslash

\
Barra invertida
Em  Unicode U + 005C \ REVERSE SOLIDUS (HTML \  · \ )
 ⧵   ⧹ 
Operador reverso solidus Solidus reverso grande Solidus reverso de largura total

A barra invertida \ é uma marca tipográfica usada principalmente na computação e é a imagem espelhada da barra comum / . Às vezes é chamado de hack , golpe , escape (do C / UNIX ), barra reversa , slosh , downwhack , backslant , backwhack , bash , inclinação reversa e virgula invertida . Em Unicode e ASCII , é codificado em U + 005C \ REVERSE SOLIDUS (92 decimal ).

História

Layout de teclado teletipo ASR-33 com conjunto de caracteres ASCII, anterior a 14 de junho de 1966, com barra invertida em shift + L

Em maio de 2021, os esforços para identificar a origem desse personagem ou seu propósito antes da década de 1960 não tiveram sucesso. A referência mais antiga conhecida encontrada até hoje é um manual de manutenção de 1937 da Teletype Corporation com uma fotografia mostrando o teclado de seu perfurador de Wheatstone . O propósito da chave ainda não foi descoberto, pois o símbolo não tinha uma codificação em código Morse e, portanto, não teria sido transmitido.

Em junho de 1960, a IBM publicou um "Padrão de conjunto de caracteres estendido" que inclui o símbolo em 0x19. Em setembro de 1961, Bob Bemer (IBM) propôs ao comitê de padrões X3.2 que [, ]e \se tornasse parte do padrão proposto, descreveu a barra invertida como um "operador de divisão reversa" e citou seu uso anterior pelo Teletipo em telecomunicações. Em particular, ele disse, o \ era necessário para que os operadores booleanos ALGOL ( conjunção lógica ) e ( disjunção lógica ) pudessem ser compostos usando / \ e \ / respectivamente. O Comitê adotou essas mudanças no projeto de Padrão Americano (posteriormente denominado ASCII ) em sua reunião de novembro de 1961.

Esses operadores foram usados ​​para min e max nas primeiras versões da linguagem de programação C fornecida com o Unix V6. e V7

O Teletype Model 33 ("ASR-33") parece ser a primeira unidade comercialmente disponível que tem o caractere como um teclado padrão à venda em alguns mercados; este modelo possui um conjunto completo de caracteres ASCII.

Uso

Linguagens de programação

Em muitas linguagens de programação , como C , Perl , PHP , Python , linguagens de script Unix e muitos formatos de arquivo como JSON , a barra invertida é usada como um caractere de escape , para indicar que o caractere que o segue deve ser tratado de maneira especial (se for caso contrário, ser tratado normalmente), ou normalmente (se de outra forma fosse tratado de forma especial). Por exemplo, dentro de um literal de string C, a sequência \nproduz um byte de nova linha em vez de um 'n', e a sequência \"produz uma aspa dupla real em vez do significado especial das aspas duplas finalizando a string. Uma barra invertida real é produzida por uma barra invertida dupla \\.

As linguagens de expressão regular o usavam da mesma maneira, transformando os caracteres literais subsequentes em metacaracteres e vice-versa. Por exemplo, \ || b procura por '|' ou 'b', a primeira barra tem escape e é pesquisada, a segunda não tem escape e atua como um "ou".

Fora das strings entre aspas, o único uso comum da barra invertida é ignorar ("escapar") uma nova linha imediatamente após ela. Neste contexto, ela pode ser chamada de "linha contínua", já que a linha atual continua na próxima. Alguns softwares substituem a barra invertida + nova linha por um espaço.

Para oferecer suporte a computadores que não tinham o caractere de barra invertida, o trigraph C ??/ foi adicionado, que é equivalente a uma barra invertida. Como isso pode escapar do próximo caractere, que pode ser um ?, o principal uso moderno pode ser para ofuscação de código . O suporte para trigraphs foi removido no C ++ 17 .

No Visual Basic (e alguns outros dialetos BASIC ), a barra invertida é usada como um símbolo de operador para indicar a divisão inteira . Isso gira em direção a zero.

A linguagem de programação ALGOL 68 usa o "\" como seu Símbolo Expoente Decimal . O ALGOL 68 tem a escolha de 4 símbolos expoentes decimais: e, E, \ ou 10 . Exemplos: 6.0221415e23 , 6.0221415E23 , 6.0221415 \ 23 ou 6.0221415 10 23 .

Em APL, \ é chamado de Expand quando usado para inserir elementos de preenchimento em matrizes, e Scan quando usado para produzir redução de prefixo (dobra cumulativa).

No PHP versão 5.3 e superior, a barra invertida é usada para indicar um namespace .

Em Haskell , a barra invertida é usada tanto para introduzir caracteres especiais quanto para introduzir funções lambda (uma vez que é uma aproximação razoável em ASCII da letra grega lambda, λ).

Nomes de arquivo

O MS-DOS 2.0, lançado em 1983, copiou o sistema de arquivos hierárquico do Unix e, portanto, usou a barra (para frente), mas (possivelmente por insistência da IBM) adicionou a barra invertida para permitir que os caminhos fossem digitados no prompt do interpretador de linha de comando, mantendo a compatibilidade com o MS-DOS 1.0 onde a barra era o indicador de opção de linha de comando (digitar " DIR / W " dava a opção "wide" para o comando " DIR ", então algum outro método era necessário se você realmente quisesse executar um programa chamado W dentro de um diretório chamado DIR ). Exceto para COMMAND.COM , todas as outras partes do sistema operacional aceitam ambos os caracteres em um caminho , mas a convenção da Microsoft continua a usar uma barra invertida e as APIs que retornam caminhos usam barras invertidas. Em algumas versões, o caractere de opção pode ser alterado de / para - via SWITCHAR , que permite que COMMAND.COM preserve / no nome do comando.

A família de sistemas operacionais Microsoft Windows herdou o comportamento do MS-DOS e, portanto, ainda suporta qualquer um dos caracteres - mas programas e subsistemas individuais do Windows podem, erroneamente, aceitar apenas a barra invertida como delimitador de caminho ou podem interpretar incorretamente uma barra se for usado como tal. Alguns programas só aceitarão barras se o caminho estiver entre aspas duplas . A falha dos recursos de segurança da Microsoft em reconhecer barras de direção inesperada em caminhos locais e da Internet, enquanto outras partes do sistema operacional ainda atuam sobre eles, levou a algumas falhas graves na segurança. Recursos que não deveriam estar disponíveis foram acessados ​​com caminhos usando combinações específicas, como http://example.net/secure\private.aspx .

Marcação de texto

A barra invertida é usada no sistema de composição do TeX e em arquivos RTF para iniciar as tags de marcação.

No USFM , a barra invertida é usada para marcar recursos de formato para editar traduções da Bíblia .

Em notação circunflexa , ^\representa o caractere de controle 0x1C, separador de arquivo . Isso é inteiramente uma coincidência e não tem nada a ver com seu uso em caminhos de arquivo.

Matemática

Um símbolo semelhante a uma barra invertida é usado para definir a diferença .

A barra invertida às vezes também é usada para denotar o espaço coset correto .

Especialmente ao descrever algoritmos de computador, é comum definir barra invertida de forma que a \ b seja equivalente a a / b . Esta é uma divisão inteira que arredonda para baixo, não para zero. No Wolfram Mathematica, a barra invertida é usada desta forma para a divisão de inteiros.

No MATLAB e no GNU Octave, a barra invertida é usada para a divisão da matriz à esquerda , enquanto a barra (para frente) é para a divisão da matriz à direita.

Confusão com ¥ e outros personagens

Nas codificações japonesas ISO 646-JP (um código de 7 bits baseado em ASCII ), JIS X 0201 (um código de 8 bits) e Shift JIS (uma codificação multibyte de 8 bits para ASCII), o código o ponto 0x5C que seria usado para barra invertida em ASCII é renderizado como um sinal de iene ¥ . Devido ao uso extensivo do ponto de código 005C para representar o símbolo do iene, ainda hoje algumas fontes como MS Mincho renderizam o caractere de barra invertida como um ¥, de modo que os caracteres nos pontos de código Unicode 00A5 (¥) e 005C (\) são renderizados como ¥ quando essas fontes são selecionadas. Os programas de computador ainda tratam 005C como uma barra invertida nesses ambientes, mas o exibem como um iene, causando confusão, especialmente em nomes de arquivo do MS-DOS.

Várias outras versões do ISO 646 também substituem a barra invertida por outros caracteres, incluindo (coreano), Ö (alemão, sueco), Ø (dinamarquês, norueguês), ç (francês) e Ñ (espanhol), levando a problemas semelhantes, embora com menos impacto duradouro em comparação com o sinal do iene.

A RFC 1345 sugere //como um mnemônico único de dois caracteres que pode ser usado nos padrões da Internet como "uma maneira prática de identificar [este] caractere, sem referência a um conjunto de caracteres codificados e seu código nesse conjunto de caracteres codificados".

Veja também

  • Barra (ou 'solidus'), /

Referências

links externos