Come si è sviluppata l'abitudine di utilizzare parentesi quadre per gli elementi dell'array?

8

Molti linguaggi di programmazione usano la sintassi a[i] per riferirsi all'elemento i th di un array, sequenza o vettore a - in particolare, C e Pascal (dalla fine degli anni '60 e primi anni '70) fanno questo . D'altra parte, alcune lingue precedenti, come quella di Fortran (degli anni '50), non usano questa convenzione. Inoltre, ho studiato un po 'di matematica, ei matematici usano parentesi quadre per gli intervalli, e gli indici per, beh, l'array e l'indice della matrice (o parentesi regolari se l'array è pensato come una funzione da numeri interi non negativi).

Quindi, la mia domanda è: dove / come / in che contesto si sono sviluppate le parentesi quadre per gli abbonati array e da chi?

Nota: Niente affatto un dupe di questa domanda sull'uso delle parentesi graffe in C.

    
posta einpoklum 24.03.2018 - 11:34
fonte

2 risposte

9

Il principale linguaggio precursore di C e Pascal era Algol . La prima versione di questo era Algol 58 che usava parentesi quadre per dichiarazioni e riferimenti di array.

Il motivo per cui Algol ha usato parentesi quadre piuttosto che, ad esempio, tra parentesi era triplice:

  1. perché potrebbero. Le prime tastiere IBM, con cui è stato progettato Fortran, avevano solo parentesi. Ciò era cambiato quando è stato specificato Algol.
  2. L'esperienza di
  3. con Fortran aveva dimostrato che i programmatori erano spesso confusi con l'uso eccessivo delle parentesi, quindi era visto come un importante cambiamento sintattico.
  4. l'intento di Algol era che sarebbe stato usato per descrivere gli algoritmi, quindi avere un approccio più vicino alla notazione matematica standard aveva senso.

Nota, a differenza di C, che utilizza principalmente gli array per indicizzare la memoria, Algol ha permesso di specificare sia i limiti inferiore che superiore dell'indice. Di nuovo, questo era in linea con il suo intento più matematico. Tanto che, in effetti, l'Algol era la lingua de facto per lo pseudocodice per molti anni.

    
risposta data 26.03.2018 - 12:05
fonte
5

Questa è una lettura interessante: link

Le seguenti sono le mie osservazioni.

I progettisti di C hanno preso molta cura adottando il significato di personaggi e costrutti così come erano stati usati per centinaia di anni nella lingua scritta regolare. E così facendo, hanno dovuto lavorare con il sottoinsieme piuttosto limitato di caratteri ASCII. Nella lingua occidentale, più caratteri di raggruppamento sono usati nel testo scritto, ma questi semplicemente non lo fanno in ASCII.

Nella lingua normale, il significato delle parentesi fornisce informazioni secondarie senza interrompere il messaggio principale. Questo ha senso quando si chiama una procedura: il messaggio principale è l'azione da eseguire e le sotto-informazioni sono gli argomenti.

Le parentesi graffe vengono utilizzate per il raggruppamento. "Questa raccolta di parole appartiene insieme, deve essere separata dal resto". Quindi ha senso utilizzarli per blocchi di codice, dichiarazioni composte.

Le parentesi quadre sono utilizzate per gli inserimenti nel testo che non facevano parte dell'originale, per chiarire il testo originale e fornire il contesto. O per indicare l'omissione con ellissi: [...]. "Lei [la regina] non era divertita". Nella programmazione di computer ha un senso usare la parentesi per l'indicizzazione degli array perché è un tipo di contesto che viene fornito. "Array? Quale array? Beh, in particolare quell'elemento." Ma anche se il significato originale non copre completamente l'uso in un linguaggio informatico, non ci sono troppe opzioni in ASCII.

Quindi direi che è una combinazione di arte nota e ciò che era disponibile al momento che porta all'uso di parentesi quadre per l'indicizzazione degli array.

[modifica a causa del commento di Alex]

Secondo la fonte , ASCII è stato introdotto nel 1963 e ha ottenuto l'approvazione governativa nel 1968. Lo sviluppo del linguaggio C non è iniziato fino al 1969 , secondo questa wiki . Quindi sembra probabile che il signor Ritchie tenesse d'occhio questo nuovo standard ampiamente supportato chiamato ASCII quando sceglieva i suoi personaggi.

Si prega di vedere anche l'altra risposta (s) che presenta una causa per Algol, "la madre di molte lingue", essendo una strong influenza.

    
risposta data 25.03.2018 - 09:38
fonte

Leggi altre domande sui tag