Astrazione (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 51:
 
I linguaggi di programmazione permettono astrazioni di strutture di controllo come uno dei loro compiti principali. I computer eseguono operazioni ad un livello molto basso, ad esempio muovendo alcuni [[bit]] da una locazione di memoria ad un'altra, producendo la somma di due sequenze di bit. I linguaggi di programmazione permettono che questo sia fatto ad un livello più alto. Consideriamo ad esempio questo codice scritto in Pascal: "<code>a := (1 + 2) * 5;</code>".
Per un uomo, questo sembra un semplice e ovvio calcolo (''"uno più due fa tre, per cinque fa quindici"''). Comunque, i passaggi a basso livello necessari per arrivare a questa conclusione, ritornare il valore "15", e assegnarlo alla variabile "a", sono inveroinvece più complesse. I valori devono essere convertiti in rappresentazione binaria (un processo più complicato di quanto si possa pensare) e i calcoli devono essere scomposti (dal compilatore o dall'interprete) in istruzioni in assembly (che sono molto meno intuitive al programmatore). Alla fine, assegnare il valore risultante "15" alla variabile chiamata "a", in modo che possa essere utilizzata successivamente, implica altri passaggi "dietro le quinte", come cercare la locazione di memoria dove inserire il valore "15", inserire il valore "15", e così via.
 
Senza questo tipo di astrazione, un programmatore dovrebbe specificare ''tutti'' i passaggi "registro/livello binario" anche solo per aggiungere o moltiplicare due numeri e assegnare il risultato ad una variabile. Questo tipo di compito ha due serie conseguenze negative: