Title: Linguaggi di Programmazione Secondo Semestre / 03 - Le Espressioni

Def: Espressioni

Q: Notazione infissa prefissa e postfissa
A: Le operazione infisse, il simbolo di un operatore bianario è posto fra le due espressione che rappresentano i due operandi
Notazione prefissa mette l'operataore binario prima dei due operandi

Notazione prefissa algoritmo

Notazione postfissa

Q: Valutazione delle espressioni, effetti sull'ordine di valutazione
A: Valutazione corto circuito: è quando l'ordine della valutazione può influire sulla terminazione del programma

Q: Def: Comando
A: non sempre presenti nei pradigmi funzionale o logico

Q: Def: Variabile
A: Nonostante l'intuzione di variabile matematica (che prende il valore di un elemento di un insieme), le variabili nei linguaggi di programmazione imperativi sono modificabili, e quindi si avvicinano più al concetto di cella di memoria

Q: L'assegnamento
A: I linguaggi a modello di riferimento, non vengono copiate le variabili bensì la locazione di memoria.
Java per esempio utilizza il modello di riferimento per tutti i tipi che non sono primitivi.

Tipi di comandi di controllo

Q: Comandi per il controllo esplicito
A: Comando sequenziale Il comando sequenziale, indicato in molti linguaggi
da un ";" permette di specificare in modo diretto l'esecuzione sequenziale di due comandi
Comando composto: è il comando che in c è delineato da "{", "}", può essere utilizzato ovunque ci si aspetti un comando
Goto: il goto è ispirato al linguaggio assembly, dannoso perchè troppo espressivo (e con gli if e il while sono espressivi come un goto) (contrario ai principi della programmazione strutturata
Nei linguaggi più moderni per ovviare all'uso del goto, si è impolementato anche break/return, che serve per l'uscita programmata da un ciclo

Q: Comandi condizionali, strutturati
A: Presentano un punto di ingresso e uno d'uscita
Comando if: dove Bexp è un espression booleana e c1/c2 sono comandi
Comando case:
Esistono varie ottimizzazioni per il comando case, possono utilizzare una jumptable
O altre tecniche come gli if annidati in modo da fare una ricerca binaria o hashing

Q: Comandi iterativi
A: Iterazoine indeterminata: classico while dei moderni linguaggi di programmazione, è composta da una guardia è un corpo che viene eseguito.
Con l'assegnamento e i if si può creare un linguaggio tuoring completo.
Facile l'impolementazione sulla macchina fisica.
Interazione determinata: for (non tutti i linguaggi è determinata es in c non lo è )

Programmazione Strutturata

Principio di induzione

Tail recursion