Che si tratti del PC di casa, del moderno smartphone o del calcolatore industriale o scientifico, i computer in generale operano per mezzo di un sistema binario: acceso/spento, carico/scarico, 1/0. Una successione di bit indica al computer cosa fare. Mentre agli albori dell’informatica i comandi si realizzavano ancora con questi due stati, da ormai molto tempo si è passati a scrivere le applicazioni in un linguaggio di programmazione che sia leggibile dagli esseri umani.
Il che potrà sembrare strano agli occhi di un profano, che continua a vedere il codice sorgente solo come un ammasso di geroglifici. Difatti “leggibile dagli esseri umani” in questo contesto è da intendersi come espressione opposta a “linguaggio macchina”: mentre i computer lavorano esclusivamente con valori numerici, gli esseri umani si servono delle parole per comunicare. Proprio come le lingue straniere, anche i linguaggi di programmazione vanno innanzitutto imparati prima di poter esser utilizzati.
Differenti linguaggi di programmazione
Esistono centinaia di linguaggi di programmazioni differenti. Non ci sono linguaggi migliori e linguaggi peggiori, bensì dipende sempre dal contesto del progetto e dall’applicazione per cui viene utilizzato il codice sorgente. Tra i linguaggi di programmazione più famosi ritroviamo:
- BASIC
- Java
- C
- C++
- Pascal
- Python
- PHP
- JavaScript
Tuttavia affinché il computer sia in grado di capire tali linguaggi, devono essere prima tradotti in linguaggio macchina.
Compilatore e interprete
Per fare in modo che i computer possano rielaborare il codice sorgente redatto dai programmatori, serve un traduttore che funga da intermediario sotto forma di ulteriore programma. Questa applicazione ausiliare può presentarsi sotto forma di compilatore o in alternativa di interprete:
- Compilatore
Questo tipo di applicazione traduce (compila) il codice sorgente in un codice che il processore sia in grado di comprendere ed eseguire. Questo codice macchina è salvabile sotto forma di file eseguibile.
- Interprete
L’interprete traduce il codice sorgente riga per riga e lo esegue direttamente. Pertanto il processo di traduzione avviene molto più velocemente che con un compilatore; tuttavia in cambio l’esecuzione è più lenta e necessita di un grande spazio di archiviazione.
La scelta non è libera, è infatti il linguaggio di programmazione a stabilire se deve entrare in azione un compilatore o un interprete. Al giorno d’oggi si ricorre spesso anche a una soluzione intermedia, ovvero la compilazionejust-in-time (JIT): questo tipo di traduzione tenta di combinare i vantaggi di entrambi i programmi (analisi ed esecuzione veloci) e viene utilizzata dai browser per utilizzare JavaScript, PHP o Java in maniera più efficiente.
Linguaggi di markup
Anche per la struttura di un sito web si parla di codice sorgente. La base non è però un linguaggio di programmazione, bensì il linguaggio di markup HTML. Questo tipo di linguaggio stabilisce come si struttura il contenuto, pertanto grazie all’HTML si possono ad esempio definire intestazioni, paragrafi ed evidenziazioni. Un file HTML di per sé non costituisce un programma, ma ne può contenere uno, per esempio sotto forma di codice JavaScript. Lo stesso vale anche per altri linguaggi di markup come l’XML.