Linguaggi di programmazione
In questa pagina potrete trovare contenuti relativi al corso di Linguaggi di programmazione. La pagina
è in corso di aggiornamento perciò alcune risposte/nozioni potrebbero essere imprecise.
Domande Gorrieri Orale
Domande assolutamente da sapere
-
Che cos'è un interprete?
-
Che cos'è un compilatore?
-
Quando un interprete si può dire corretto? Quando un compilatore si può
dire corretto?
-
Definizione di grammatica libera da contesto
-
Elencare le varie fasi in cui si articola un compilatore. Descrivere
in dettaglio ogni singola fase.
-
Cosa fa l'analizzatore lessicale?
-
Definizione di espressioni regolari (sintassi) e di linguaggio associato (semantica).
-
Definizione di NFA (automa finito nondeterministico).
-
Definizione di DFA (automa finito deterministico).
-
Come si costruisce un NFA a partire da una espressione regolare.
-
Definizione di grammatica regolare.
-
Cos'è Lex? Qual è il suo input e il suo output?
-
Intestazione e dimostrazione del pumping lemma.
-
Come si può utilizzare il pumping lemma (a rovescio) per dimostrare che un
linguaggio non è regolare?
-
Cos'è un parser?
-
Definizione di automa a pila nondeterministico (PDA).
-
Intestazione del “Pumping Theorem".
-
Come si può utilizzare tale teorema (a rovescio) per dimostrare che un
linguaggio non è libero?
-
Definizione di DPDA (automa a pila deterministico) e di linguaggio libero
deterministico.
-
Da cosa si parte per costruire un analizzatore sintattico (ovvero parser)? Da una
espressione regolare? Da una grammatica libera? Da un PDA?
-
Cosa prende in input e cosa produce in output un parser?
-
Le tecniche top-down e bottom-up in che cosa differiscono?
-
Definizione di First(α) e di Follow(A).
-
Quando una grammatica G si dice di classe LL(1)? Quali sono le condizioni
necessarie e sufficienti per G affinché sia di classe LL(1)?
-
Cos'è un parser bottom-up (o shift-reduce)? Qual è il suo input e il suo
output? Perché sono chiamati parser LR?
-
Cos'è un item LR(0)?
-
Cos'è YACC? Qual è il suo input e il suo output?
-
Quando un linguaggio è detto Turing-completo?
Capitolo 1 - Macchine astratte, interpreti, compilatori
-
Cos'è una macchina astratta e come si differenzia da una macchina fisica?
-
Cos'è un interprete? In cosa consiste il ciclo fetch-decode-execute?
In cosa consiste il ciclo fetch-decode-execute?
-
Cos'è il linguaggio macchina?
-
Possono esistere macchine diverse con lo stesso linguaggio macchina?
-
In quali modi è possibile implementare una macchina astratta? Elencare vantaggi e svantaggi
delle varie tecniche.
-
In quali modi è possibile implementare una macchina astratta? Elencare vantaggi e svantaggi
delle varie tecniche.
-
Relativamente alla tecnica d'implementazione software, descrivere la tecnica
d'implementazione interpretativa pura e quella compilativa pura.
-
Quando un interprete si può dire corretto? Quando un compilatore si può dire corretto?
-
Confrontare l'implementazione di una macchina astratta su una macchina ospite per mezzo di un
interprete o di un compilatore.
-
Come vengono implementate nella realtà le macchine astratte? Che cos'è la
macchina intermedia?
-
Quando si dice che una implementazione è di tipo interpretativo e quando di tipo
compilativo? Fare esempi di linguaggi la cui implementazione è di un tipo o dell'altro.
-
Cos'è la Just-in-Time compilation?
-
L'interprete e il compilatore si possono sempre realizzare?
-
Che cosa è l'implementazione via kernel?
-
Quando si parla di bootstrapping?