Sei sulla pagina 1di 3

LEZIONE LINGUAGGI DI PROGRAMMAZIONE

DA COSA È COMPOSTO?
Un linguaggio di programmazione è composto da un alfabeto (insieme di simboli).
Nella lingua italiana vi sono insieme di lettere che compongono parole con un senso e non, in informatica con
l’alfabeto vengono costruite le configurazioni lecite.
Una configurazione lecita è per esempio un nome di una variabile, dove posso comporre questo nome con le lettere
che voglio ma ci sono delle regole da rispettare (esempio non posso chiamare la variabile cout o farla iniziare con un
numero).
L’insieme di regole da rispettare per scrivere correttamente è la sintassi.
INTERPRETAZIONE DALLA MACCHINA
I linguaggi di programmazione possono essere classificati, questa classifica si base sull’interpretazione della macchina
con l’uomo.
Le macchine non hanno un interpretazione umana, non possiamo sotto intendere nulla.
Si chiama polisimia quando abbiamo parole che possono avere più significati contemporaneamente.
Un interprete umano riuscirebbe a capire dal contesto che significato stiamo dando alla parola, una macchina invece
non può.
Esempio: “la maglia costa venti”, un interprete umano capisce che parliamo di soldi, una macchina potrebbe
confonderlo con il vento.
LINGUAGGIO MACCHINA
L’unico linguaggio che una macchina può capire ed eseguire è il linguaggio macchina.
Questo linguaggi è basato su una codifica estremamente compatta e poco intiutiva e richiede una conoscenza
approfondita del funzionamento di un particolare calcolatore.
Il linguaggio macchina:

 è un insieme di istruzioni eseguibili dalla CPU


 ogni istruzione genera una sequenza di segnali di controllo
 si può accedere direttamente alle funzionalità di base del calcolatore
 è complesso da utilizzare: ogni istruzione esegue un’operazione elementare
 è estremamente efficiente, i programmi sono più veloci ma più complessi.
NASCITA E CLASSIFICAZIONE DEI LINGUAGGI
Data la difficoltà di questo linguaggio, nasceranno i primi linguaggi di programmazione, cioè i linguaggi assemblativi
che sono più immediati da usare anche se ancora orientati alla macchina e non al problema da risolvere, hanno la
capacità di definire variabili, simboli ecc…
Di seguito sono stati sviluppati dei linguaggi di programmazione sempre più evoluti, più semplici e poveri, con poche
parole chiave, poche regole e privi di qualsiasi ambiguità.
Alcune possibili classificazioni sono:

 livello di complessità
 per paradigmi (o modelli) di programmazione
 program domain
 per formato del codice
Come livello di complessità si intende la difficoltà per la macchina di capire ed eseguire il codice.
LINGUAGGI DI PROGRAMMAZIONE A BASSO LIVELLO
Più il livello è basso e più si avvicina al linguaggio macchina.
I vantaggi dei codici a basso livello sono: l’ottimizzazione delle risorse e la massima efficienza con il codice meno
pesante.
Gli svantaggi dei codici a basso livello sono: necessaria una conoscenza perfetta dei dispositivi e del compilatore
tipico del microprocessore in uso.
Alcuni esempi sono Fortran(serve per creare calcoli matematici molto complicati), Assembly e Cobol(usato anche in
alcune banche, serve principalmente per applicazioni gestionali).
LINGUAGGI DI PROGRAMMAZIONE AD ALTO LIVELLO
La programmazione ad alto livello è nata per gestire strutture dati astratte e teoriche permettendo al programmatore di
concentrarsi solo sugli aspetti algoritmici senza gestire fisicamente i dispositivi.
I vantaggi dei codici ad alto livello sono: programmazione orientata all’uso di moduli che consentono riuso e
portabilità del codice e maggiore vicinanza al linguaggio naturale.
Gli svantaggi sono una gestione flessibile ma non ottimizzata delle risorse ed efficienza che dipende
dall’implementazione della libreria standard.
Alcuni esempi sono Limp e Prolog (principalmente utilizzati nel campo dell’intelligenza artificiale.
LINGUAGGI DI PROGRAMMAZIONE A MEDIO LIVELLO
C’è una terza categorie oltre alle due sopra elencate, è quella del medio livello, comprende linguaggi che possiedono
caratteristiche di entrambi i livelli, con questi linguaggi si può scrivere procedure complesse con un codice
decisamente ottimizzato.
I più conosciuti sono C, C++ e Javascript.
CLASSIFICAZIONE PER PARADIGMI DI PROGRAMMAZIONE
A seconda del linguaggio ci sono diversi approcci da eseguire.

LINGUAGGI D PROGRAMMAZIONE IMPERATIVI


I linguaggi imperativi sono legati all’architettura di Von Neumann, costituita da due componenti fondamentali:
Memoria (componente passiva) e Processore(componente attiva).
Nei linguaggi imperativi:

 Il modello computazionale è basato sui cambiamenti di stato della memoria della macchina.
 È centrale il concetto di assegnazione di un valore ad una locazione di memoria.
 Il compito del programmatore è costruire una sequenza di assegnazioni che producano lo stato finale.
Quindi un programma scritto in un linguaggio imperativo prescrive le operazione che il processore deve compiere, e le
istruzioni vengono eseguite nell’ordine in cui appaiono nel programma.

Programma = Algoritmo + Dati


La struttura del programma consiste nella dichiarazione, dove si dichiarano tutte le variabili del programma e il loro
tipo e in un’altra parte dove si descrive l’algoritmo risolutivo utilizzato mediante istruzioni del linguaggio.
Le istruzioni si dividono in:

 Istruzioni di lettura e scrittura


 Istruzioni di assegnamento (astrazione di cella di memoria)
 Istruzioni di controllo
I linguaggi imperativi sono divisi nelle tre categorie:

 Procedurali, con un ordine organizzato in procedure.


 Orientati agli oggetti (qualcosa che svolge azioni in autonomia)
 Paralleli
I linguaggi imperativi procedurali hanno una sequenza ben definita.
La programmazione orientata agli oggetti (OOP) vede un programma come un insieme di oggetti che interagiscono tra
loro.
L’oggetto è un ambiente chiuso e indipendente che svolge azioni in autonomia.
In questi linguaggi esiste un nuovo tipo di dato, la classe che serve appunto per modellare un insieme di oggetti, la
vera forza di questi linguaggi è proprio il poter lavorare con le classi.
I linguaggi OOP permettono un miglior riuso del software, alcuni dei linguaggi OOP più diffusi sono C++, Java e
Javascript.
LINGUAGGI D PROGRAMMAZIONE DICHIARATIVI
Sono estremamente legati alla logica matematica, sono basati sulla dichiarazione di affermazioni che descrivono una
data realtà ed il problema che in tale contesto si desidera risolvere.
I linguaggi dichiarativi sono divisi in tre categorie:

 Linguaggi logici, combinati con le regole della logica per arrivare al risultato.
 Linguaggi funzionali dove il problema viene risolto valutando le funzioni degli elementi base.
 Linguaggi per la funzione dei database in cui si utilizzano appositi costrutti per gestire i dati.
Paradigma funzionale, usato nei linguaggi funzionali dove l’unica operazione utilizzata è l’applicazione di funzioni
combinate tra loro.
La struttura del programma consiste nella definizione di una funzione e l’esecuzione del programma consiste nella
valutazione di tale funzione.
Un esempio di linguaggio funzionale è il LISP.
Il concetto primitivo è la deduzione logica.
La base è la logica formale e l’obbiettivo è formalizzare il ragionamento.
Questi studi hanno aperto la strada alla possibilità di usare la logica come linguaggio di programmazione.
//mancano un po’’’’’’’’’’’’ di appunti

Potrebbero piacerti anche