L'orale consiste in un insieme di domande (3/4) scritte, uguali per tutti, che poi controlla e in caso non sono complete chiede di approfondire (capita anche che non chieda nulla).
Queste sono le domande che ho raccolto:
1. Structural e nominal subtyping
2. Garbage collection
3. Locking coarse e fine grain
1. Wildcard ? In java
2. Garbage collection, contatori di riferimento
3. Principio di sostituzione di Liskov
Buono studio!
Domande orale Milazzo
1. Discutere sul ruolo e struttura del ROOT-SET (garbage collector mark&swept)
2. dynamic dispatch in java illustrando la struttura del run-time (poi fa vedere un codice)
3. caratteristiche tipi generici ? limite di quelli di java
4. discutere le modalita in cui i linguaggi ad oggetti affrontano il problema della sincronizzazione dei thread
5. nell'interprete qual' erano i ruoli del evt e exp
19 gen 23
1. spiegare il concetto di confluenza del lambda calcolo (teorema di church rosser)
2. scrivi codice di oggetti che siano in relazione di sottotipo strutturale , nominale, e oggetti che non lo siano
3. descrivere la soluzione utilizzata all'interno della JVM per la gestione delle interfacce con itables
4. descrivere la nozione di iteratore in java e i vantaggi che offre in termini di astrazione
20 gen 23
1. enunciare e spiegare le proprietà di progresso e conservazione per espressioni aritmetiche oppure per il lambda calcolo tipato
2. descrivere garbage collector basato su reference counting e fare un esempio di dove emerge il suo problema
3. in java, Integer è un sottotipo di number. che relazione c'è tra List<int> e list<num>? perchè?
4. descrivere la 2 fase locking
dic 23
1. meccanismo locking multithread e com'è implementato in java
2. cosa sono i mixin
dic 23
1. deadlock quando si verifica
2. tipologie di garbage collector, pregi e difetti
3. l'ereditarietà multipla come si gestisce. (Diamond problem)
dic 23
1. proprietà della conservazione e del progresso
2. deadlock
3. reference counting con esempio di codice dove non funziona (perchè non riconosce i cicli)
19 dic 23
1. discutere le caratteristiche di structurale e nominal (sub)typing nella oop facendo riferimento ad un esempio
2. importanza lock e unlock. differenza coarse vs fine grained
3. struttura compilatore (front-end e back-end) e le fasi della compilazione svolte nel front-end
dic 23
1. Memoria della java virtual machine com'è fatta con Esercizio Memoria JVM
2. Differenza tra typechecking statico e dinamico
3. Dynamic dispatch
17 gen 24
1. Spiegare differenza tra type-checking dinamico e statico, dire anche vantaggi e svantaggi
2. Descrivere le problematiche che porta l'ereditarietà multipla, soluzione
3. Problematica del deadlock
19 gen 24
1. Garbage collector Copying collections
2. Spiegare i generics e spiegare la covarianza
3. Codice con 2 classi, disegnare i dynamic dispatch. Poi spiegare lo sharing strutturale
ALTRE Orale
Spiegami come funziona il virtual
Problema della covarianza in java
Come è strutturata la JVM?
Come funziona il mixin?
Differenza typechecking statico e dinamico
Perche i Generics non sono covarianti?
Confluenza nel lambda calcolo?
Come risolvere il problema del deadlock?
Subtyping nominale e strutturale
Garbage collection con reference counting?
Garbage collection con mark and sweep?
2-phase lock?
Dynamic dispatch?
Sostituzione di liskov?
Tipo apparente e tipo effettivo?
Chi usa quello apparente e chi quello effettivo?
Quali rischi si incorrono con un downcast esplicito e come mitigarli?
Come usa il costrutto virtual C++?
Il concetto di iteratore?
Come è fatto un compilatore? Quali sono le fasi della compilazione?
Cosa succede nel dispatch vector quando vengono implementate più interfacce? Come funziona la itable?
Come funziona il cacheing nelle itables?
Garbage collector generazionale?
Call by name e call by value?
Qual'è tra call by value e call by name è più usata dai linguaggi? --> Call by value
Come risolve l'eredità multipla python?
Cosa succede se modifico la lista durante un'operazione dell'iteratore?
2. dynamic dispatch in java illustrando la struttura del run-time (poi fa vedere un codice)
3. caratteristiche tipi generici ? limite di quelli di java
4. discutere le modalita in cui i linguaggi ad oggetti affrontano il problema della sincronizzazione dei thread
5. nell'interprete qual' erano i ruoli del evt e exp
19 gen 23
1. spiegare il concetto di confluenza del lambda calcolo (teorema di church rosser)
2. scrivi codice di oggetti che siano in relazione di sottotipo strutturale , nominale, e oggetti che non lo siano
3. descrivere la soluzione utilizzata all'interno della JVM per la gestione delle interfacce con itables
4. descrivere la nozione di iteratore in java e i vantaggi che offre in termini di astrazione
20 gen 23
1. enunciare e spiegare le proprietà di progresso e conservazione per espressioni aritmetiche oppure per il lambda calcolo tipato
2. descrivere garbage collector basato su reference counting e fare un esempio di dove emerge il suo problema
3. in java, Integer è un sottotipo di number. che relazione c'è tra List<int> e list<num>? perchè?
4. descrivere la 2 fase locking
dic 23
1. meccanismo locking multithread e com'è implementato in java
2. cosa sono i mixin
dic 23
1. deadlock quando si verifica
2. tipologie di garbage collector, pregi e difetti
3. l'ereditarietà multipla come si gestisce. (Diamond problem)
dic 23
1. proprietà della conservazione e del progresso
2. deadlock
3. reference counting con esempio di codice dove non funziona (perchè non riconosce i cicli)
19 dic 23
1. discutere le caratteristiche di structurale e nominal (sub)typing nella oop facendo riferimento ad un esempio
2. importanza lock e unlock. differenza coarse vs fine grained
3. struttura compilatore (front-end e back-end) e le fasi della compilazione svolte nel front-end
dic 23
1. Memoria della java virtual machine com'è fatta con Esercizio Memoria JVM
2. Differenza tra typechecking statico e dinamico
3. Dynamic dispatch
17 gen 24
1. Spiegare differenza tra type-checking dinamico e statico, dire anche vantaggi e svantaggi
2. Descrivere le problematiche che porta l'ereditarietà multipla, soluzione
3. Problematica del deadlock
19 gen 24
1. Garbage collector Copying collections
2. Spiegare i generics e spiegare la covarianza
3. Codice con 2 classi, disegnare i dynamic dispatch. Poi spiegare lo sharing strutturale
ALTRE Orale
Spiegami come funziona il virtual
Problema della covarianza in java
Come è strutturata la JVM?
Come funziona il mixin?
Differenza typechecking statico e dinamico
Perche i Generics non sono covarianti?
Confluenza nel lambda calcolo?
Come risolvere il problema del deadlock?
Subtyping nominale e strutturale
Garbage collection con reference counting?
Garbage collection con mark and sweep?
2-phase lock?
Dynamic dispatch?
Sostituzione di liskov?
Tipo apparente e tipo effettivo?
Chi usa quello apparente e chi quello effettivo?
Quali rischi si incorrono con un downcast esplicito e come mitigarli?
Come usa il costrutto virtual C++?
Il concetto di iteratore?
Come è fatto un compilatore? Quali sono le fasi della compilazione?
Cosa succede nel dispatch vector quando vengono implementate più interfacce? Come funziona la itable?
Come funziona il cacheing nelle itables?
Garbage collector generazionale?
Call by name e call by value?
Qual'è tra call by value e call by name è più usata dai linguaggi? --> Call by value
Come risolve l'eredità multipla python?
Cosa succede se modifico la lista durante un'operazione dell'iteratore?