Linguaggio di programmazione In informatica, qualsiasi
linguaggio artificiale utilizzato per esprimere una sequenza di
istruzioni (programma) che un computer è in grado di comprendere,
elaborare ed eseguire. In generale, i linguaggi di
programmazione
sono caratterizzati da una struttura sintattica estremamente rigida,
dettata da regole fisse che tengono conto del sistema di
elaborazione del computer. A seconda del livello di astrazione
permesso, si distinguono linguaggi di basso e di alto livello.
2
LINGUAGGI DI BASSO
LIVELLO
In un linguaggio di basso livello, le istruzioni di un
programma devono essere descritte in modo dettagliato, specificando
ogni operazione elementare che il microprocessore o il sistema
operativo deve compiere per eseguirle. Si dicono a basso livello
appunto perché consentono un basso livello di astrazione. Il più
diffuso, utilizzato principalmente per la
programmazione del
microprocessore, è il linguaggio assembly, o assembler.
È costituito da una serie di comandi (ad esempio, STORE, ADD o JUMP),
ciascuno associato a un singolo codice macchina, vale a dire a una
singola istruzione espressa in forma binaria, comprensibile e
immediatamente eseguibile dalla macchina. La
programmazione in
linguaggio assembly produce programmi veloci e compatti, ma ha lo
svantaggio di richiedere molto tempo, di essere estremamente
complessa e specifica per ogni tipo di processore; quest'ultima
caratteristica impone che il programma venga riscritto in caso lo si
voglia trasferire da una macchina all'altra.
3
LINGUAGGI DI ALTO
LIVELLO
I linguaggi di alto livello, tra i quali alcuni dei più
noti e diffusi sono il BASIC, il FORTRAN e il PASCAL, permettono di
far eseguire al computer istruzioni complesse. Con questo termine si
indicano istruzioni la cui esecuzione richiede una serie di
operazioni elementari non specificate nel programma, ma sottintese.
In concreto questo significa che a ogni istruzione del codice
sorgente non corrisponde una sola istruzione in codice binario, come
nei linguaggi di basso livello, ma più di una. Funzioni quali il
calcolo o l'elaborazione di testi sono considerate funzioni di alto
livello. I linguaggi di alto livello hanno una forma piuttosto
intuitiva, in quanto composti da espressioni vicine al linguaggio
parlato. Ad esempio, in BASIC, un comando del tipo "IF COUNT = 10
THEN STOP" chiede al computer di arrestare il processo quando la
variabile COUNT assume il valore 10. Si veda la tabella per una
panoramica dei diversi linguaggi e delle loro applicazioni.
4
COMPILATORI E
INTERPRETI
I programmi compilatori e interpreti traspongono le
istruzioni scritte in un determinato linguaggio in sequenze di
codici macchina comprensibili dal computer. I compilatori traducono
ogni programma in blocco, compilando una serie di istruzioni
eseguibili, detta codice oggetto, che viene memorizzata e utilizzata
per l’effettiva esecuzione del programma (ad esempio i file con
estensione .EXE). Gli interpreti, invece, non producono un codice
oggetto: durante l’esecuzione del programma procedono istruzione per
istruzione, traducendo ciascuna di esse al momento in cui deve
essere eseguita. Ne risulta un'esecuzione nettamente più lenta, ma
meno soggetta a guasti e più versatile rispetto a quella dei
programmi compilati. Trasporre una sequenza di istruzioni scritte in
linguaggio assembly (codice sorgente) nella corrispondente sequenza
di codici macchina (codice oggetto) è un'operazione abbastanza
semplice, che viene eseguita da appositi programmi, chiamati
assemblatori. Viceversa, la trasposizione di programmi di alto
livello in linguaggio macchina è più complessa, e richiede
compilatori o interpreti piuttosto complicati.