Domanda

Un'altra domanda, Che cos'è una scheda verticale? , descrive cosa è la scheda verticalecarattere era originariamente utilizzato per.

Ma perché U+000B VERTICAL TAB è stato considerato abbastanza importante da assegnare una sequenza di escape ('\v') in primo luogo, in C e in molti altri linguaggi di programmazione?

Vedi anche: un tizio si lamenta di questo .

È stato utile?

Soluzione

È possibile che quando è stato creato C, ci si aspettava che i caratteri di tabulazione verticale e campana fossero sufficientemente utili come delimitatori all'interno del codice che sarebbe stato portato tra ASCII ed EBCDIC che il codice doveva fornire un modo leggibile e portatile di annotandoli. Sebbene si possa scrivere

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

Non penso che tale uso fosse legale nei primi dialetti del C. Inoltre, anche se tale uso fosse permesso, l'uso di macro speciali per versioni citate di caratteri sarebbe stato probabilmente considerato un po 'brutto. So che queste cose sono state necessarie negli identificatori di formato di tipo portatile printf, ma questo non significa che sia carino.

Un'altra cosa da considerare è che il C non è stato concepito per essere un linguaggio di programmazione che le persone avrebbero usato nei decenni a venire. È stato progettato per risolvere alcune necessità immediate. A K&R non sarebbe importato se qualcuno avrebbe voluto i personaggi VTAB dopo gli anni '70; se i loro clienti immediati avessero voluto usarli, quella era una ragione perfetta per includerli.

Altri suggerimenti

Risposta corretta: TELETYPE

Non ha nulla a che fare con i delimitatori. I miei genitori lavoravano con i big data e molte emittenti e Fortune 500 usavano ancora schede perforate fino agli anni '80. Ricorda che la maggior parte delle lingue sono state originariamente progettate per essere inserite e utilizzate su una telescrivente, non su uno schermo. La stampante non era solo per la stampa di documenti come lo è oggi. Non c'era alcun monitor . La stampa era il display.

Con questo in mente, le schede verticali sono state piuttosto utili. Anche dopo la telescrivente i miei genitori li usavano per rendere i moduli più velocemente sovrascrivendo solo le parti che erano cambiate. Perché allora anche la visualizzazione di solo testo era troppo lenta!

Video divertente: https://www.youtube.com/watch?v=qv5b1Xowxdk

Ma più precisamente: molte, molte, molte cose nei sistemi operativi moderni sono reliquie della macchina telescrivente ... non solo scheda verticale. Siamo così abituati a loro che le persone non ci pensano più, ma non sono meno strani. Sono sicuro che molti non si rendono conto da dove vengono queste convenzioni a meno che non abbiano programmato dagli anni '70.

  • Metti a capo il codice o il messaggio di posta elettronica su 80 colonne?
    Perché le schede perforate IBM erano larghe 80 caratteri.

  • Utilizzi elementi grafici che supportano la codifica dal basso verso l'alto, come le bitmap di Windows o qualsiasi libreria grafica con l'origine nell'angolo inferiore?
    Perché le macchine telescriventi scorrevano dal basso verso l'alto.

  • Utilizzi \nper indicare una nuova riga di testo?
    Perché \nsta per line feed, che proviene dalle macchine da scrivere manuali prima che fosse usato nei telescriventi.

  • Hai mai inviato un messaggio a un amico scrivendo a / dev / tty sotto Linux?
    Perché TTY è l'abbreviazione di telescrivente.

  • Hai mai detto a qualcuno di utilizzare una libreria esistente invece di reinventare la ruota? Hai mai usato tu stesso una libreria o un framework?
    Perché è così che gira il vecchio codice. Certamente, i benefici superano il danno, ma le biblioteche costruite sopra le biblioteche costruite sopra le biblioteche portano a questa dipendenza strisciante tale che anche quando la libreria originale è scomparsa da tempo, tutto ciò che era compatibile con essa fa sì che le sue convenzioni continuino ... e avanti ... e avanti ...

Queste convenzioni di telescrivente sono così saldamente radicate nel sistema operativo stesso che mi aspetto che rimarrà sempre fino a quando qualcuno non scriverà un sistema operativo da zero, e anche allora io " Non ne sono così sicuro. Non c'è dubbio sul motivo per cui il linguaggio C li ha raccolti. Ricorda, C è venuto molto dopo LISP, Forth, COBOL, FORTRAN, Pascal e persino BASIC.

P.S. Usare il carattere della campana come delimitatore sarebbe stata una cosa folle da fare. Macina macina macina BEEP macina macina BEEEEEEP macina chuka chuka BEEP macina chuka macina macina BEEEP. Whizzzz clunk. Macina macina BEEP ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top