Tipi di linguaggi per computer
Il linguaggio per computer o linguaggio di programmazione è una sintassi codificata usata dai programmatori per comunicare con un computer. È l'unico linguaggio che computer, software e hardware possono capire. Stabilisce un flusso di comunicazione tra programmi software. Permette all'utente di dettare i comandi che il computer deve eseguire per elaborare dati. Esiste in vari tipi che usano sintassi diverse.
Linguaggio macchina (Machine Language)
Il linguaggio macchina (machine code) è il linguaggio nativo capito direttamente dalla CPU (unità elaborazione centrale). Non è facile da capire: usa solo un sistema binario (serie di 1 e 0) per produrre comandi. Il processore deve convertire i linguaggi ad alto livello in questo prima di eseguire un programma o comando utente. Per convertire un linguaggio in machine code, serve un compilatore (compiler): programma che converte codice sorgente da un linguaggio a sintassi diversa. Il compilatore genera un file binario/eseguibile che la CPU esegue. Ogni processore ha il proprio set di machine code. Il machine code determina cosa deve fare il processore e come.
Linguaggio a livello assembly (Assembly Level Language)
Uno studio nei primi anni '50 portò allo sviluppo di linguaggi a basso livello o Assembly Level Language. Considerato linguaggio di seconda generazione, è un set di codici eseguibili direttamente sul processore. Più appropriato per scrivere sistemi operativi e mantenere applicazioni desktop. Permette al programmatore: accesso registri, gestione memoria, corrispondenza cicli clock. Con l'assembly, è più facile definire comandi perché il programmatore sceglie i nomi delle variabili. Tuttavia, non è flessibile: non si può riutilizzare il codice scritto in questo linguaggio. Meno esplicativo degli altri. Va criptato in machine language perché il computer processi i comandi.
Linguaggio ad alto livello (High Level Language)
Lo sviluppo di linguaggi ad alto livello nacque quando i programmatori ebbero problemi per la crescente mancanza di portabilità dei computer. Ignorano dettagli inutili dei linguaggi a basso livello. Molti programmatori considerano l'high level language una soluzione importante grazie a facilità d'uso e bassa tendenza a produrre bug. Spesso definiti mid-level languages che usano concetti di astrazione e costrutti all'estremo.