Docenti:Daniele NardiGiorgio Grisetti (Canale A-L), Alberto Pretto (Canale M-Z)

Tutor:Bartolomeo Della Corte

Obiettivi Formativi. Il corso ha l'obiettivo di fornire allo studente la capacità di comprendere e progettare programmi che richiedano una conoscenza approfondita del modello di esecuzione dei programmi che, in particolare, gestiscano in maniera esplicita la memoria. A questo scopo il corso fa riferimento ad una caratterizzazione dell'architettura dell'elaboratore basata sul modello di Von Neumann ed utilizza il linguaggio C per la programmazione. Il corso ha una forte connotazione progettuale e prevede quindi esercitazioni settimanali in laboratorio, in ambiente LINUX.

Programma

  1. Modello di Von Neumann e caratterizzazione delle primitive di controllo in linguaggio macchina (corrispondenza sintassi Python - C, uso della grammatica per definire il linguaggio). Struttura del compilatore.
  2. Tipi di dato: tipi primitivi, array, strutture, allocazione di memoria,  compatibilità di tipo, cast, equivalenza strutturale.
  3. Funzioni, pila dei record di attivazione, passaggio dei parametri, campo d'azione, ricorsione
  4. Puntatori ed allocazione dinamica della memoria
  5. Strutture collegate lineari: pile, liste, code, insiemi


Orario delle lezioni:

  • Canale A-L  (Prof. Nardi - Prof. Grisetti)
    • Lun 10:00 - 12:00 (Lab. 15-16 via Tiburtina)
    • Mar 10:00 - 12:00 (Aula 13 - via Scarpa)
    • Gio 10:00 - 12:00  (Aula 13 - via Scarpa)
  • Canale M-Z  (Prof. Pretto)
    • Lun 12:00 - 14:00 (Lab. 15-16 via Tiburtina)
    • Mar 12:00 -14:00  (Aula 13 - via Scarpa)
    • Mer 13:00 - 15:00 (Aula 13 - via Scarpa)