Linguaggio o linguaggi?

Un luogo comune che va sfatato è che i programmatori passino il tempo a riempire lo schermo di 0 e 1 perché, si sa, i computer sono binari. Davvero?

Intanto: se fosse così, perché avere una tastiera con 80 tasti? Ne basterebbero due,no?

Keyboard
Source: https://reddit.com
In realtà, negli anni'40 i programmatori erano costretti a scrivere in codice binario, perché quello era l'unico linguaggio comprensibile dai computer. Anzi: non potevano nemmeno scrivere, ma inserivano spinotti dentro prese, coem facevano le prime addette al Coding, oppure facevano buchi su schede.

Fortran Card
Source: http://www.herongyang.com/Computer-History/
Quegli stessi programmatori, insieme agli altri studiosi delle nascente informatica, hanno inventato dei linguaggi più facili da usare per gli umani, i cosiddetti linguaggi "di alto livello". Alto non significa bello o elegante; significa che si può scrivere un programma senza sapere esattamente come è fatto il computer. Un'istruzione di basso livello assomiglia a questa: "prendi il numero 3 e mettilo nella posizione 1; poi prendi il numero 4 e mettilo nella posizione 2; ora fai la somma di quello che c'è nella posizione 1 e nella posizione 2 e mettilo nella posizione 3; adesso restituisce quello che c'è nella posizione 3". Ad esempio, in Assembly:
  .data
  var1 DWORD 30000h
  var2 DWORD 40000h
  .code
  move eax,var1
  add eax,var2
Un'istruzione di alto livello invece assomiglia a "dammi il risultato di 3 + 4". Più corta, più semplice da imparare, meno soggetta ad errori.

Ad esempio, questa è una versione in FORTRAN che chiede due numeri e stampa il risultato della loro somma:

  100 READ(5,10) I1, I2
   10 FORMAT(3I5)
      ISUM = I1 + I2
      WRITE(6,20) I1, I2, ISUM
   20 FORMAT(7HSUM OF , I5, 2H, , I5, 5H AND , I5,
     *   4H IS , I6)
      GOTO 100
      END
Fonte: http://www.herongyang.com/Computer-History/FORTRAN-Program-Store-on-Punch-Card.html

Il trucco è stato quello di spostare il compito difficile dall'umano al computer (d'altra parte è stato inventato appunto per fare cose difficili, oltre che ripetitive) ovvero insegnare ai computer a leggere i programmi scritti con quei nuovi linguaggi.

Ma non come non c'era un solo tipo di computer, così non bastava un solo tipo di linguaggio. D'altra parte, dopo le prima applicazioni dei computer al calcolo delle traettorie, o alla statistica, si era capito presto che con i computer si potevano fare moltissime cose diverse, e che un solo linguaggio non era per forza adatto a tutte.

Così nacquero linguaggio adatti ai calcoli e linguaggi adatti a trattere parole, linguaggi essenziali che richiedevano mesi di studio e linguaggi prolissi ma usabili anche dai meno esperti.

Ma anche usando lo stesso linguaggio, due programmatori finivano per scrivere codice in maniera diversa. Insieme ai linguaggi sono nati gli stili di programmazione: chi andava di fretta e badava all'essenziale e chi perdeva tempo a scrivere un codice leggibile, equilibrato, elegante. Chi trattava il computer da schiavo efficiente impartendo ordini e chi ci dialogava chiedendo sempre "per favore".

Così è iniziato un processo circolare: ogni nuovo linguaggio permetteva nuovi stili di programmazione, che a loro volta facevano venire in mente idee per nuovi linguaggi. Non tutti utili, anzi alcuni francamente pensati solo per divertimento, come i linguaggi esoterici. Ma anche i linguaggi più assurdi e i programmi più pazzi hanno fatto avanzare la capacità dei programmatori di costruire mondi nuovi e impensati fino a quel momento.

Programmare non è (solo) mettere in sequenza caratteri strani, ma costruire testi complessi, sceneggiature in cui procedure e funzioni entrano in scena come personaggi di una storia.

Prossimo pannello:  Errori



Versione: 12/01/2022 - 19:23:38

Parole: 296

Pannelli

Concetti                    
MagiaDigitale               
Programmi                   
Codice                      
Linguaggi                   
Errori                      
Esecuzione                  
Algoritmi                   
🔎