Cenni sui linguaggi di programmazione
Classi di linguaggi
Ad oggi esistono circa 2500 linguaggi di
programmazione più o meno noti e diffusi: questi
vengono normalmente classificati in tre grandi
famiglie basate sul concetto di istruzione:
• i linguaggi imperativi
• i linguaggi funzionali
• i linguaggi logici
Classi di linguaggi
Nei linguaggi imperativi l'istruzione è un comando
esplicito, che opera su una o più variabili e le
istruzioni vengono eseguite in un ordine
prestabilito. Scrivere un programma in un
linguaggio imperativo significa essenzialmente
occuparsi di cosa la macchina deve fare per
ottenere il risultato che si vuole e mettere a punto
gli algoritmi necessari a manipolare i dati.
Classi di linguaggi
I linguaggi funzionali sono basati sul concetto
matematico di funzione. In un linguaggio
funzionale puro l'assegnazione esplicita risulta
addirittura completamente assente (si utilizza
soltanto il passaggio dei parametri). In tale
modello rivestono particolare importanza la
ricorsione, e, come struttura dati, la lista
(sequenza ordinata di elementi)
Classi di linguaggi
Nei linguaggi logici l'istruzione è una clausola che
descrive una relazione fra i dati: programmare in
un linguaggio logico significa descrivere l'insieme
delle relazioni esistenti fra i dati e il risultato
voluto. Non c'è un ordine prestabilito di
esecuzione delle varie clausole, ma è compito
dell'interprete trovare l'ordine giusto
Linguaggi di scripting
I linguaggi di questo tipo nacquero come
linguaggi batch: vale a dire liste di comandi di
programmi interattivi che invece di venire digitati
uno ad uno su una linea di comando, potevano
essere salvati in un file.
Il passo successivo fu quello di far accettare a
questi programmi anche dei comandi di salto
condizionato e delle istruzioni di ciclo, regolati da
simboli associati a variabili.
Linguaggi di scripting
In ambito web i linguaggi di scripting più diffusi
sono:
JavaScript (client-side: il linguaggio di programmazione viene interpretato ed elaborato dal computer locale)
Asp e Php (server-side: i linguaggi di programmazione vengono interpretati ed elaborati dal server il quale, successivamente, invia i risultati al
client: il browser dell'utente).
Concetti base
Tutti i linguaggi di programmazione esistenti
possiedono questi due concetti chiave:
Variabile: un dato o un insieme di dati, noti o
ignoti, già memorizzati o da memorizzare. I
linguaggi inoltre attribuiscono alle variabili un
tipo, con differenti proprietà (stringhe di testo,
numeri, liste, ecc.)
Istruzione: un comando, una funzione, oppure una
regola descrittiva: anche il concetto di istruzione è
molto variabile fra i vari linguaggi
Alcuni concetti sono poi presenti nella gran
parte dei linguaggi:
Espressione: una combinazione di variabili e
costanti, unite da operatori; le espressioni
sono state introdotte inizialmente per
rappresentare le espressioni matematiche, ma
in seguito la loro funzionalità si è estesa
Strutture di controllo: che permettono di
governare il flusso dell'esecuzione del
programma, alterandolo in base al risultato di
una espressione (che può ridursi al contenuto
di una variabile, o essere anche molto
complessa)
…………. sono poi presenti nella gran parte dei
linguaggi:
Sottoprogramma: un blocco di codice che può
essere richiamato da qualsiasi altro punto del
programma.
Strutture dati: meccanismi che permettono di
organizzare e gestire dati complessi.
Il codice sorgente
Programmare
in
un
dato
linguaggio
di
programmazione significa generalmente scrivere
uno o più semplici file di testo, chiamato codice
sorgente. I font, i colori e in generale l'aspetto
grafico sono irrilevanti ai fini della programmazione in sé: per questo i programmatori non
usano programmi di videoscrittura ma degli editor
di testo.
La compilazione
Il codice sorgente, contenente le istruzioni da
eseguire, può essere poi eseguito passandolo ad
un interprete che eseguirà le istruzioni in esso
contenute, il che è la prassi normale per i
linguaggi di scripting.
Oppure può venire compilato, cioè tradotto in
istruzioni di linguaggio macchina da un
programma compilatore: il risultato è un file
binario eseguibile che non ha bisogno di altri
programmi per andare in esecuzione, ed è anche
molto più veloce di un programma interpretato.
La compilazione
La compilazione offre numerosi vantaggi, primo
fra tutti il fatto di ottenere eseguibili velocissimi
adattando vari parametri di questa fase
all'hardware a disposizione.
Ha lo svantaggio nel fatto che bisogna ricompilare
ogni volta che si cambia sistema operativo e
hardware su cui ci si basa se si vuole rendere
disponibile il programma su più piattaforme.