Please enable JavaScript.
Coggle requires JavaScript to display documents.
LINGUAGGI DI PROGRAMMAZIONE - Coggle Diagram
LINGUAGGI DI PROGRAMMAZIONE
cos'è un programma?
è una sequenza ordinata di i
struzioni elementari
, scritte in un linguaggio e eseguite da un calcolatore,
il programma
il linguaggio con il quale viene scritto il programma si chiama linguaggio di programmazione
che lingua parla?
il linguaggio del calcolatore si chiama "linguaggio macchina"
formato da soli 0 e 1
l'istruzione si divide in:
codice operativo
dato
indirizzo
a cosa serve?
usare il linguaggio macchina può creare problemi
TIPI DI LINGUAGGI
basso livello
vicini alla logica della macchina, utilizzano l'Assembler, possiedono massima efficienza
Assembly
tipi di file
object file
:ottenuto dal compilatore ,non ancora eseguibile
executable
: ottenuto dal compilatore, eseguibile
se l'output del compilatore non è eseguibile, è necessario chiamare il
linker
, che riunirà i file ogetto
source code
: passato al compilatore
viene apposta un'etichetta ad ogni istruzione, ha una completa utilizzazione delle risorse, ha un rapporto 1:1 con il codice, non è portatile
lontani dalla logica umana, richiesta la conoscenza dell'hardware e del sistema operativo
alto livello
altissimo livello
usato per intelligenza artificiale
simbolici, parola chiave
"astrazione"
vicini alla logica umana, permettono un astrazione maggiore, non richiedono conoscenze dell'hardware
non esiste un linguaggio migliore o peggiore
CLASSIFICAZIONE:
modello procedurale
programmazione imperativa
individuazione e definizione delle procedure risolutive
risolve il problema "come"
dare un comando
FORTRAN, COBOL, BASIC, Pascal, C, JavaScript, PHP
programmazione object- oriented (OOP)
considerare le parti del programma come oggetti con caratteristiche e proprietà
Small Talk, Eiffel, C++, C#, Java
modello dichiarativo
ne fanno parte i linguaggi nei quali si trova la soluzione dal punto di vista descrittivo
si cercano le proprietà della soluzione "come"
programmazione funzionale
si può calcolare tramite il processo di valutazione
ogni simbolo di operazione corrisponde ad una funzione
Lisp, Haskell, Scheme
programmazione logico
basato sulla logica dei predicati applicando le regole del calcolo proposizionale
usata nell'intelligenza artificiale e nei sistemi aperti
Prolog, Datalog, AnsProlog
COMPILATORI E INTERPRETI
prima di essere eseguito il programma deve essere trasformato in una sequenza di istruzioni scritte in linguaggio macchina
la trasformazione avviene in due modi
compilazione
(come in C,C++, FORTRAN..)
traduzione e esecuzione sono fatte in tempi diversi, alla fine della compilazione è disponibile la versione tradotta, che è specifica della macchina sulla quale è stata compilata. Per eseguire il programma basta la versione tradotta
fasi
generazione del codice
: esegue la traduzione
ottimizzazione del codice:
riesamina il codice per migliorarne le performance
analisi sintattica (parsing):
organizza le frasi e segnala le sottosequenze errate
analisi semantica:
verifica la consistenza del significato
analisi lessicale (scanning):
riconosce i lessemi del linguaggio
preprocessing:
operazioni di editing
tipi di errori statici
fatal errors: errori gravi che non consentono di proseguire la compilazione
warnings:avvertimenti che non compromettono la traduzione
Linguaggi pseudo-compilati
il source code viene prima compilato in un codice intermedio e poi eseguito da un interprete
la velocità è intermedia tra compilazione e interpretazione, il programma ha massima portabilità
Java, C#, VB.NET, JIT-ter
interpretazione
(come in Basic, Perl, JavaScript..)
se si vuole rieseguire il programma occorre ritradurlo
vengono rilevati subito sia i Comile-times errors , sia i Run-Time errors
al termine non vi è alcuna versione tradotta
più portabili, ma richiedono un interprete specifico. Più lenti
traduzione e esecuzione fatte contemporaneamente