vuoi
o PayPal
tutte le volte che vuoi
PROGRAMMAZIONE
ALGORITMO: sequenza finita di passi che
risolve un problema in un tempo finito. Un
programma è la formulazione testuale di
un algoritmo in un linguaggio di
programmazione.
LINGUAGGI DI PROGRAMMAZIONE:
1° DISTINZIONE:
- Basso livello: programmazione meno
intuitiva si possono sviluppare
programmi molto efficienti e questi
linguaggi interagiscono direttamente
con l'hardware.
- Alto livello: programmazione più rapida
ma non consente di produrre software
molto
efficienti.
2° DISTINZIONE:
- Imperativi: Il programmatore scrive
istruzioni passo dopo passo, come in
una ricetta, specificando l’ordine delle
operazioni.
- Dichiarativi: Il programmatore dichiara
il risultato desiderato e il linguaggio o
sistema si occupa di come ottenerlo.
Se scrivo in alto livello non comunico
direttamente con l’hardware, e per essere
leggibile all’hardware il mio programma
deve essere tradotto da un compilatore o
da un interprete. Questi leggono il mio
programma e creano il bytecode ovvero un
file che all’interno ja solo dei bit che
possono essere letti ed eseguiti
dall’hardware. Differenze:
Interprete: mentre scrivo il programma
- lui traduce in tempo reale, è più
semplice per il debug (trovi subito gli
iù lento perché la
errori), ma è p
traduzione avviene ogni volta che si
esegue il programma.
Compilatore: traduce il programma solo
- quando ho finito di scriverlo.
L’interprete è più efficace perché se scelgo di
cambiare una parte del programma posso
variare solo quella parte, invece con il
compilatore devo riscrivere tutto. Per un codice
compilato per passare su una piattaforma
hardware diversa da quella su cui è stata
scritta, o devo installare sul nuovo hardware
una virtual machine o devo riscrivere il
programma. Invece per un codice interpretato
esiste già un interprete sulla nuova piattaforma
Caratteristi Interprete Compilatore
ca Riga per riga, Tutto il
Traduzione a ogni programma, una
esecuzione volta sola
Velocità di Più lenta Più veloce
esecuzione
Debugging Più semplice Meno immediato
Nessun file File eseguibile
Output eseguibile generato
Maggiore (se Minore (binari
Portabilità interprete legati a
presente) OS/architettura)
VISIBILITA’ DELLE VARIABILI
I n Python il codice e quindi anche le
variabili, possono essere "salvati" in due
ambienti diversi chiamati local scope e
global scope, traducibili sostanzialmente
come ambito di visibilità locale e globale.
Possiamo pensare a questi due ambienti
come a dei contenitori distinti in cui
vengono definite e assegnate le variabili,
un contenitore globale e un contenitore
locale. Quando uno di questi contenitori
viene distrutto, quindi quando uno di
questi ambiti viene distrutto, lo stesso
accade per i valori delle variabili in esso
salvate che vengono quindi dimenticati.
Un ambito locale viene creato ogni volta
che una funzione viene chiamata, e
distrutto dopo che la funzione restituisce
un valore con return, quindi quando
eseguiamo le funzioni queste sono
eseguite non nell’area principale ma in una
memoria a parte, possono pertanto
esistere tanti Local Scope quante funzioni
abbiamo in esecuzione.. Le righe della
funzione hanno una visibilità locale non
globale, ad esempio posso dare alla s, la
definizione somma e il programma capisce
che sono diverse. I parametri che