Definizione di linguaggio di programmazione
Cenni sui linguaggi di programmazione I linguaggi di programmazione permettono di scrivere algoritmi eseguibili da un sistema di elaborazione. Un algoritmo scritto in un linguaggio di programmazione viene chiamato programma e il processo di scrittura del programma, a partire dall’algoritmo, viene chiamato codifica. I linguaggi di programmazione sono costituiti da: Un insieme di parole chiavi (le parole che hanno un senso in quel linguaggio). Un insieme di simboli speciali (caratteri con particolari significati come separatori, simboli di fine istruzione, ecc). Un insieme di regole (la sintassi del linguaggio) che devono essere rispettate per scrivere programmi sintatticamente corretti.
Ogni linguaggio è caratterizzato da Lessico: l’insieme di regole formali per la scrittura di parole e la composizione di programmi in un linguaggio. Sintassi: l’insieme di regole formali, che dettano le modalità di combinazione tra le parole chiave del linguaggio stesso, per costruire correttamente istruzioni (frasi). Semantica: l’insieme dei significati da attribuire alle frasi (sintatticamente corrette) costruite nel linguaggio scelto. Nota: una frase può essere sintatticamente corretta e tuttavia non avere significato!
Il linguaggio macchina Il linguaggio macchina costituito da zero ed uno è l'unico che può controllare direttamente le unità fisiche dell'elaboratore in quanto è l’unico comprensibile dall’elaboratore stesso. È però estremamente complicato scrivere programmi in tale linguaggio, naturale per la macchina, ma completamente innaturale per l’uomo. Il linguaggio macchina è direttamente eseguibile dall'elaboratore, senza nessuna traduzione, le istruzioni si dividono in due parti, un codice operativo ed, eventualmente, uno o più operandi: Il codice operativo specifica l’operazione da compiere. Gli operandi individuano le celle di memoria a cui si riferiscono le operazioni.
Il linguaggio Assembly Il linguaggio Assembly è il più vecchio linguaggio di programmazione ed è una rappresentazione simbolica del linguaggio macchina. La scrittura di programmi è enormemente semplificata, infatti il linguaggio assembly utilizza simboli facili da ricordare e non incomprensibili sequenze binarie. Le istruzioni corrispondono univocamente a quelle de linguaggio macchina, ma vengono espresse tramite nomi simbolici (parole chiave). I riferimenti alle celle di memoria sono fatti mediante nomi simbolici(identificatori). Identificatori che rappresentano dati (costanti o variabili) oppure istruzioni (etichette). Per essere eseguito dall'elaboratore un programma in linguaggio assembly deve essere tradotto in linguaggio macchina; tale lavoro è a carico di un programma detto assemblatore.
I limiti del linguaggio macchina e Assembly Questi due tipi di linguaggi, detti anche linguaggi di basso livello sono propri di ogni macchina. I programmi dipendono strettamente dalle caratteristiche architetturali del microprocessore: NON C'E` PORTABILITA` !!!
I linguaggi ad alto livello I linguaggi di alto livello sono più vicini al linguaggio naturale, sono orientati ai problemi piuttosto che all'architettura della macchina, rendono cioè la scrittura di un programma molto vicina a quella che si produrrebbe se l'esecutore fosse un umano, piuttosto che una macchina con esigenze e, per esempio, modi di gestire le parti di un elaboratore, che dipendono da come sono costruite e non dalle funzioni svolte. Non fanno riferimento ai registri fisicamente presenti sulla macchina ma a variabili. Per essere eseguiti devono essere tradotti in linguaggio macchina, e tale traduzione viene svolta da un programma detto compilatore. I linguaggi di alto livello sono in larga misura indipendenti dalla macchina, possono essere eseguiti su qualsiasi elaboratore a patto che esista il corrispondente compilatore che ne permetta la traduzione. I linguaggi di alto livello si caratterizzano per essere orientati a specifiche aree applicative. Questi linguaggi vengono anche detti della terza generazione. Per ultimi in ordine di tempo sono arrivati i linguaggi della quarta generazione, ancora più spiccatamente rivolti a specifiche aree applicative e utilizzabili in modo intuitivo dall'utente non esperto.