Newsgroup: it.comp.ia
Titolo: Livelli di astrazione

{
Premessa: Si, lo so che esistono anche NG sull'informatica, ma qui non si
tratta di programmare, bensì di riflettere (parolone :-O) SUL calcolatore e
sul suo utilizzo. Dunque chi meglio, per risolvere i miei dubbi, di chi il
calcolatore lo usa per esprimere e rirappresentare la propria intelligenza
piuttosto che per venirne semplicemente stimolato mediante suoni e colori
...
}
Sto ordinando i miei appunti per un esame e vorrei un vostro parere sulla
verità ontologica :-) di questa mia distinzione di livelli.
In altre parole... esistono altri livelli intermedi tra hardware fisico e
software oltre quello della logica booleana che MERITINO di essere
evidenziati? (Segue testo)
Livelli di astrazione e funzionamento dei calcolatori
1) Livello base (meno astratto): fisico-elettrico
Il livello di funzionamento base dei calcolatori (meno astratto) è il
livello fisico-elettrico (segnali elettrici che si propagano attraverso i
circuiti)
2) Livello Intermedio: Logica Booleana
Livello di astrazione basato sulla logica booleana e sulla traduzione dei
fenomeni complessi in sequenze di bit (0/1)
E' il livello intermedio fra dimensione fisica del calcolatore e dimensione
logico/astratta
La logica Booleana è realizzata a livelo fisico sui calcolatori mediante
Transistor: Semiconduttori in grado di modulare il passaggio di corrente
Gate: Porte fisiche in grado di realizzare congiunzioni logiche (Or, And,
Nand, Not)
3) Livello di Astrazione elevato: Software
Ciao
Fm

evidenziati? (Segue testo)
E' di per se una categorizzazione un po' confusa, pero' diciamo di si'. :)
Per 2) il livello a cui chiunque debba ragionare sui calcolatori... ragiona :)
non e' certo logica booleana, ma macchine astratte di calcolo (ASF, macchine di Turing, etc). 
Proprieta' di problemi e algoritmi si studiano a questo livello. 
Ad esempio, per verificare la posizione di un problema nella gerarchia NP, in genere, o si usano 
direttamente MdT, o si dimostra l'equipollenza con un altro problema in una posizione simile.
Inoltre, anche questi modelli sono troppo dettagliati e ingombranti, in genere, 
per descrivere il funzionamento di un calcolatore+software - per cui si usano logiche e notazioni
ulteriori: tipicamente, calcolo dei predicati o del prim'ordine, lambda-calcolo, reti di petri,
etc.
Nota che per fare 'ste cose non serve nemmeno il livello fisico (per questo, dicevo,
la categorizzazione e' un po' confusa o furoviante: la computer science *non* necessita,
almeno fino ad un certo punto, di hardware fisico). La logica booleana e' un po' come l'aritmetica
quando analizzi 
Per 3), dipende dal tuo punto di vista. 
Con "software" astrai una marea di livelli che sono essenziali per il funzionamento finale
del sistema e molte sue caratteristiche: come minimo, dovresti distinguere tra sistema operativo
(se c'e'), shell e applicazioni; e ad esempio, ragionare e scrivere software in assembler 
e' decisamente diverso che ragionare e scrivere software in un linguaggio ad alto livello; 
e tra i linguaggi ad alto livello e' molto diverso usare un linguaggio dichiarativo, procedurale,
object oriented, su su fino a tecniche e linguaggi di modellazione e software enegineering - che 
fanno una differenza notevole.
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun