CARATTERISTICHE DEI PARADIGMI DI PROGRAMMAZIONE
IMPERATIVO LOGICO FUNZIONALE
Nato come astrazione diretta Modello di astrazione non Modello di astrazione
della macchina hardware convenzionale non convenzionale
convenzionale (von Neumann)
Programmazione procedurale Program. dichiarativa Program. dichiarativa (controllo di sequenza) (calcolo di relazioni) (calcolo di funzioni) Semantica Funzione Livello di astrazione Livello di astrazione
Input/Output maggiore rispetto maggiore rispetto
all'imperativo. all'imperativo.
Deterministico Non deterministico Deterministico
Flusso controllo guidato Flusso controllo Flusso controllo da istruzioni strutturate guidato dai dati guidato dai dati
(unificazione) (composizione di
funzioni)
--- Invertibilità del calcolo ---
delle relazioni
Efficienza legata alla Macchina intermedia Macchina intermedia vicinanza della macchina non convenzionale non convenzionale astratta del linguaggio e
quella di una architettura convenzionale
Tipi forti o deboli No tipi nel modello di base. Tipi forti e ordine superiore (no ordine superiore) Esistono estensioni con tipi
(no ordine superiore).
--- APPLICAZIONI
Tipi di dati astratti --- Tipi di dati astratti
O.O. Calcolo simbolico Calcolo simbolico
Stato modificabile di un oggetto. Prototipazione rapida Prototipazione rapida
Ereditarietà Basi di dati deduttive
(estensione delle relazionali).
Sistemi esperti (diagnosi, ecc.). Sistemi esperti.
Intelligenza artificiale (robotica, ecc.).
Constraint Logic Programming (soluzione di sistemi di
vincoli complessi)