Pergunta

Outra pergunta, O que é uma guia vertical? , descreve o que é uma guia verticalpersonagem foi originalmente usado para.

Mas por que U+000B VERTICAL TAB foi considerado importante o suficiente para receber uma sequência de escape ('\v') em primeiro lugar, em C e em muitas outras linguagens de programação?

Veja também: algum cara reclamando disso .

Foi útil?

Solução

É possível que, quando C foi criado, fosse esperado que a tabulação vertical e os caracteres de sino fossem suficientemente úteis como delimitadores dentro do código que seriam transferidos entre ASCII e EBCDIC que o código deveria fornecer uma forma legível e portátil de anotando-os. Embora se possa escrever

#define QVTAB "\013"
printf("Field1" QVTAB "Field2");

Não acho que tal uso fosse legal nos primeiros dialetos de C. Além disso, mesmo se tal uso fosse permitido, usar macros especiais para versões citadas de caracteres provavelmente teria sido considerado um pouco feio. Sei que essas coisas acabaram sendo necessárias nos especificadores de formato do tipo portátil printf, mas isso não significa que seja bonito.

Outra coisa a considerar é que C não foi projetada para ser uma linguagem de programação que as pessoas usariam nas próximas décadas. Ele foi projetado para resolver algumas necessidades imediatas. K&R não teria se importado se alguém iria querer personagens VTAB depois dos anos 1970; se seus clientes imediatos quisessem usar para eles, esse seria um bom motivo para incluí-los.

Outras dicas

Resposta correta: TELETYPE

Não tem nada a ver com delimitadores. Meus pais trabalhavam com big data e muitas emissoras e Fortune 500 ainda usavam cartões perfurados até os anos 80. Lembre-se de que a maioria dos idiomas foi originalmente projetada para ser inserida e usada em uma máquina de teletipo, não em uma tela. A impressora não era apenas para imprimir documentos como é hoje. Não havia monitor nenhum . A impressão era o display.

Com isso em mente, as guias verticais foram muito úteis. Mesmo após o teletipo, meus pais usaram os formulários de renderização mais rápido, sobrescrevendo apenas as partes que mudaram. Porque naquela época até a exibição somente de texto era muito lenta!

Vídeo divertido: https://www.youtube.com/watch?v=qv5b1Xowxdk

Mas indo direto ao ponto: muitas, muitas, muitas coisas nos sistemas operacionais modernos são relíquias da máquina de teletipo ... não apenas guia vertical. Estamos tão acostumados com eles que as pessoas nem pensam mais neles, mas não são menos estranhos. Tenho certeza de que muitos não percebem de onde vêm essas convenções, a menos que tenham codificado desde os anos 70.

  • Você quebra seu código ou e-mail com 80 colunas?
    Porque os cartões perfurados IBM tinham 80 caracteres de largura.

  • Você usa gráficos que suportam codificação de baixo para cima, como bitmaps do Windows, ou qualquer biblioteca de gráficos com a origem no canto inferior?
    Porque as máquinas de teletipo rolam de baixo para cima.

  • Você usa \npara indicar uma nova linha de texto?
    Porque \nsignifica avanço de linha, que vem de máquinas de escrever manuais antes de ser usado em teletipos.

  • Você já enviou uma mensagem a um amigo escrevendo para / dev / tty no Linux?
    Porque TTY é a abreviatura de teletipo.

  • Você já disse a alguém para usar uma biblioteca existente em vez de reinventar a roda? Você já usou uma biblioteca ou estrutura?
    Porque é assim que o código antigo existe. Certamente, os benefícios superam os danos, mas bibliotecas construídas em cima de bibliotecas construídas em cima de bibliotecas levam a essa dependência crescente de tal forma que, mesmo quando a biblioteca original há muito se foi, tudo que foi compatível com ela faz com que suas convenções continuem ... e assim por diante ... e por diante ...

Essas convenções de teletipo estão tão firmemente arraigadas no próprio sistema operacional que espero que isso sempre permaneça até que alguém escreva um sistema operacional do zero, e mesmo assim eu ' não tenho tanta certeza. Não há dúvida de por que a linguagem C os escolheu. Lembre-se de que C veio muito depois de LISP, Forth, COBOL, FORTRAN, Pascal e até BASIC.

P.S. Usar o caractere de sino como um delimitador teria sido uma coisa louca de se fazer. Moer moer moer BEEP moer moer BEEEEEEP moer chuka chuka BEEP moer chuka moer moer BEEEP. Whizzzz clunk. Grind grind BEEP ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top