5. Codifica degli algoritmi
in un linguaggio di alto livello
Ing. Simona Colucci
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
Indice
Obiettivi della programmazione in linguaggi di alto livello
La macchina astratta C
Struttura di un programma C
Istruzioni principali del C
Esempi di programmi in quasi C
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Obiettivi della programmazione in
linguaggi di alto livello
• Colmare il gap tra i due requisiti fondamentali di un
linguaggio per la descrizione di algoritmi:
– Precisione ed assenza di ambiguità interpretativa per
l’esecuzione di operazioni(requisito richiesto dalla macchina)
– Sintesi per la facilità di comprensione del
programmatore(requisito richiesto dall’uomo)
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Programmazione in linguaggi di alto livello
• Vantaggi:
– Possibilità di riferirsi agli elementi del programma(celle di
memoria, istruzioni, valori costanti) con identificatori (nomi
simbolici)
• Es.
a  cella di memoria 1001001100
– Possibilità di esprimere le istruzioni e il controllo della sequenza
della loro esecuzione in modo vicino al linguaggio naturale
• Es.
(a+b)*(c+d)  LOAD
ADD
STORE
LOAD
ADD
MULT
A
B
TEMP
C
D
TEMP
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
La macchina astratta del (nucleo) del C
• Capace di comprendere ed eseguire programmi in C
• Astrazione della macchina di Von Neumann
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
La macchina astratta del (nucleo) del C
Componenti:
• CPU
• Memoria centrale:
– divisa in celle elementari, contenenti un dato(valore numerico o
carattere), di un numero di bit variabile
• Bus
• Astrazione delle interfacce con le periferiche:
– Standard Input:
• unica unità di ingresso
• diviso in celle elementari, contenenti un dato (valore numerico o carattere),
di un numero di bit variabile
– Standard Output:
• unica unità di uscita
• diviso in celle elementari, contenenti un dato (valore numerico o carattere),
di un numero di bit variabile
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Elementi -e terminologia- essenziali
• Stringa: successione finita di caratteri, supposti
immagazzinati in celle consecutive
• Variabili: celle di memoria, il cui contenuto può cambiare
durante l’esecuzione del programma
• Identificatori simbolici: successione di lettere e cifre(o il
simbolo”_”), con al primo posto una lettera
– N.B. il C è CASE SENSITIVE
• Identificatori predefiniti e riservati: associati a priori ad
elementi del linguaggio e non utilizzabili per le variabili
• Parole chiave: altre parole del linguaggio predefinite e
riservate
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Struttura sintattica di un programma C
Un programma C è composto da un’intestazione seguita da
una sequenza di istruzioni racchiusa tra i simboli { e }
• L’intestazione è costituita dall’identificatore predefinito
main seguito da una coppia di parentesi ( ) (per il
momento vuote)
• Le istruzioni sono frasi del linguaggio di
programmazione; ognuna di esse termina con il simbolo
‘;’
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Le principali istruzioni del C
1. Istruzioni di sequenza:
•
Istruzioni di assegnamento
x = 23;
y = z;
x = x+1;
•
w = 'a';
r3 = (alfa*43–xgg)*(delta–32*ijj);
Istruzioni di ingresso e uscita
•
•
scanf(): identificatore predefinito di input; le parentesi
contengono informazioni relative alla variabile da leggere
printf(): identificatore predefinito di output; le parentesi
contengono informazioni relative alla variabile da scrivere
printf((a-z)/10);
temp = (a-z)/10; printf(temp);
printf(‘a’);
printf(“alfa”);
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Le principali istruzioni del C:
Le istruzioni composte
Sistemi Informativi
DEE - Politecnico di Bari
• Istruzioni composte:
– corrispondono ai costrutti visti nel capitolo 1
– Comprendono selezione ed iterazione visti nel capitolo 3
– producono effetti diversi a seconda del verificarsi o meno di
condizioni sul valore delle variabili
– Condizione(espressione booleana):
• espressione su variabili booleane il cui valore può essere vero o
falso
• Costruita tramite:
– Operatori di relazione (==; !=; <;>;<=;>=)
– Operatori logici (!;||;&&)
Es. di condizioni:
x == 0
alfa > beta && x != 3
!((a + b)*3 > x || a < c)
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Istruzioni composte:
selezione ed iterazione
2. Istruzioni di Selezione
if(x == 0) z = 5; else y = z + w*y;
if(x == 0) {z = 5;} else {y = z + w*y;}
if ((x+y)*(z-2) > (23+v)) {z = x + 1; y = 13 + x;}
if ((x == y && z >3) || w != y) z = 5; else {y = z +
w*y; x = z;}
– Istruzioni di selezione scorrette:
if (x == 0) else y = z; y = 34;
if (x == 0) a; else b + c;
3. Istruzioni di Iterazione (ciclo o loop)
while (x >= 0) x = x – 1;
while (z != y) {y = z – x; x = x*3;}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
Esempi in pseudo C
DEE - Politecnico di Bari
/*Programma NumeroMaggiore – prima versione */
main()
{
scanf(x);
scanf(y);
if (x > y) z = x; else z = y;
printf(z);
}
/*Programma NumeroMaggiore – seconda versione */
main()
{
scanf(x);
scanf(y);
if (x > y) printf(x); else printf(y);
}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Esempi in pseudo C
/*ProgrammaCercaIlPrimoZero */
main()
{
uno = 1;
scanf (dato);
while (dato !=0) scanf(dato);
printf(uno);
}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Esempi in pseudo C
/*ProgrammaSommaSequenza */
main()
{
somma = 0;
scanf(numero);
while (numero != 0)
{
somma = somma + numero;
scanf(numero);
}
printf(somma);
}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
Esempi in pseudo C
DEE - Politecnico di Bari
/*Programma per la valutazione di un triangolo */
main()
{
/*Lettura dei dati di ingresso */
scanf(X); scanf(Y); scanf(Z);
/* Verifica che i dati possano essere le lunghezze
dei lati di un triangolo */
if ((X < Y + Z) && (Y < X + Z) && (Z < X + Y))
/*Distinzione tra i vari tipi di triangolo */
if (X == Y && Y == Z)
printf("I dati letti corrispondono a un triangolo equilatero");
else
if (X == Y || Y == Z || X == Z)
printf("I dati letti corrispondono a un triangolo isoscele");
else
printf("I dati letti corrispondono a un triangolo scaleno");
else
printf("I dati letti non corrispondono ad alcun triangolo");
}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
•
•
Le variabili strutturate
Primo arricchimento della macchina astratta C
Consentono di trattare l’informazione aggregata
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Variabili strutturate: gli array
Array:
• sequenza di celle di memoria consecutive ed omogenee:
• identificato come qualsiasi altra variabile
• Composto da elementi che sono a loro volta variabili, accessibili
mediante un indice (in C il primo elemento di ogni array è
sempre lo 0-esimo)
• Elemento indicato tra parentesi quadre dopo l’identificatore
dell’array
Es.: scanf(s[2]);
a[3] = s[1] + x;
if (a[4] > s[1] + 3) s[2] = a[2] + a[1];
x = a[i];
a[i] = a[i+1];
a[i*x] = s[a[j+1]–3]*(y – a[y]);
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Esempi in pseudo C
/* Programma InvertiSequenza */
main()
{
indice = 0;
scanf(x);
while (x != '%')
{
sequenza[indice] = x;
indice = indice + 1;
scanf(x);
}
while (indice > 0)
{
indice = indice - 1;
printf(sequenza[indice]);
}
}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Dallo pseudo-C al C
• Che cosa manca per poter “far girare i programmi”
precedenti:
– Le direttive al compilatore
– La parte dichiarativa
– L’ I/O formalizzato in C nella parte esecutiva
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Un “vero” programma C
/* Programma SommaSequenza */
#include <stdio.h>
main()
{
int numero, somma;
somma = 0;
scanf("%d", &numero);
while (numero != 0)
{
somma = somma + numero;
scanf("%d", &numero);
}
printf("La somma dei numeri digitati è: %d\n", somma);
}
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
La struttura dei programmi C
DEE - Politecnico di Bari
• Un programma C deve contenere, nell’ordine:
− Una parte contenente direttive per il compilatore:
servono per l’inclusione delle librerie contenenti funzioni
da utilizzare nelle parte esecutiva
− L’identificatore predefinito main seguito dalle parentesi ()
− Due parti, racchiuse dalle parentesi {}:
− la parte dichiarativa: elenca tutti gli elementi che fanno
parte del programma, con le loro principali caratteristiche
− la parte esecutiva: consiste in una successione di
istruzioni
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
La parte dichiarativa
• Tutto ciò che viene usato va dichiarato, in
particolare:
− Dichiarazione delle costanti
− Dichiarazione delle variabili
• Perché questa fatica … inutile?
– Aiuta la diagnostica (ovvero segnalazione di errori):
x = alfa;
alba = alfa + 1;
– Senza dichiarazione, alba è una nuova variabile!
• Principio importante:
meglio un po’ più di fatica nello scrivere un
programma che nel leggerlo -e capirlo!
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
La parte dichiarativa
DEE - Politecnico di Bari
•
•
Una dichiarazione di variabile consiste in:
−
Uno specificatore di tipo, seguito da una lista di
uno o più identificatori di variabili separati da una
virgola
−
Ogni dichiarazione termina con ‘;’
Esempi
float
int
char
x,y;
i,j;
simb;
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
•
La parte dichiarativa
La dichiarazione di costanti:
const
const
const
const
float
float
int
char
PiGreco = 3.14;
PiGreco = 3.1415, e = 2.718;
N = 100, M = 1000;
CAR1 = 'A', CAR2 = 'B';
•
Un eventuale assegnamento a una costante sarebbe segnalato come
errore dal compilatore.
•
Esempio:
AreaCerchio = PiGreco*RaggioCerchio*RaggioCerchio;
è equivalente a:
AreaCerchio = 3.14*RaggioCerchio*RaggioCerchio;
(se si fa riferimento alla prima dichiarazione di PiGreco)
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Le istruzioni di I/O
• Istruzione per l’output:
printf (stringa di controllo, elementi da stampare);
– Stringa di controllo, costituita da
• caratteri semplici: di stampa immediata
• caratteri di conversione: tramutati in speciali visualizzazioni
• caratteri di formato: specificano il tipo delle variabili da stampare
– L’insieme degli elementi da stampare è una lista di variabili, di costanti
o di espressioni composte con variabili e costanti
• Esempi:
– printf ("Lo stipendio annuo dei dipendenti di categoria %d è pari a L.
%f", cat_dipend, stip_medio);
– printf("%s\n%c%c\n\n%s\n", "Questo programma è stato scritto da",
iniz_nome, iniz_cognome, "Buon lavoro!");
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Le istruzioni di I/O
• Istruzione per l’input:
scanf (stringa di controllo, elementi da leggere);
• La stringa di controllo contiene caratteri di
formato, che specificano il tipo delle variabili
da leggere
• Gli elementi da leggere sono indicati tramite i
nomi delle variabili destinate a contenere la
lettura preceduti dall’operatore unario &
• Esempio:
scanf("%c%c%c%d%f", &c1, &c2, &c3, &i, &x);
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
•
La direttiva #include
Ogni programma che utilizza al suo interno le
funzioni printf e scanf deve dichiarare l’uso di tali
funzioni nella parte direttiva che precede il
programma principale:
#include <stdio.h>
•
È una direttiva data a una parte del compilatore,
chiamata preprocessore
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Esempio in C
/* PrimoProgrammaC */
#include <stdio.h>
main()
{
printf("Questo è il mio primo programma in C\n");
}
•
NB: niente dichiarazioni!
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
Esempio in C
DEE - Politecnico di Bari
/* Programma SommaDueInteri */
#include <stdio.h>
main()
{
int a, b, somma;
printf (“inserisci come valore dei due addendi due numeri interi\n”);
scanf("%d%d", &a, &b);
somma = a + b;
printf("La somma di a+b è:\n%d \nArrivederci!\n", somma);
}
•
•
Se vengono inseriti i dati 3 e 5, l’effetto dell’esecuzione del
programma sullo Standard Output è il seguente:
La somma di a+b è:
8
Arrivederci!
Se fossero stati omessi i primi due simboli \n nella stringa di
controllo?
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Interpretazione e Compilazione
Il programma di traduzione da un linguaggio di alto livello
al linguaggio di macchina può:
• tradurre ed eseguire frase per frase (interprete)
• tradurre tutte le frasi e solo successivamente eseguire
(assemblatore o compilatore)
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Interpretazione
• Un Interprete è un programma che legge il
programma sorgente e, per ogni istruzione
1. Verifica la correttezza sintattica
2. Effettua la traduzione nella corrispondente sequenza
di istruzioni in linguaggio macchina
3. Esegue direttamente la sequenza di istruzioni in
linguaggio macchina
• Svantaggio: istruzioni eseguite più volte (es. ciclo)
vengono verificate e tradotte più volte
• Vantaggio: facile sviluppo e correzione dei programmi
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
•
Compilazione
Un Compilatore è un programma che legge il programma
sorgente e lo traduce interamente in un programma scritto in
linguaggio macchina(programma oggetto):
1. Verifica la correttezza sintattica di ciascuna istruzione
2. Il programma oggetto è generato solo in assenza di errori
sintattici
3. La correttezza semantica è verificata solo in fase di esecuzione
• Svantaggio: difficile correzione dei programmi
• Vantaggio: istruzioni eseguite più volte (es. ciclo) vengono
verificate e tradotte solo una volta
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Interpretazione vs Compilazione
• Velocità di esecuzione:
– Bassa per i linguaggi interpretati
– Alta per i linguaggi compilati
• Facilità di messa a punto dei programmi:
– Alta per linguaggi interpretati
– Bassa per i linguaggi compilati
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
L’ambiente di programmazione C
Le fasi:
1. Editazione
2. Preelaborazione
3. Compilazione
4. Linking
5. Caricamento
6. Esecuzione
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Editazione
• Editazione del codice in un file:
– Il file dovrà terminare con l’estensione .c
– Il programma che consente l’editazione è detto editor
– Il programma editato è memorizzato in un dispositivo di
memoria secondaria e viene detto programma sorgente
(source program)
– Esempio:
#include<stdio.h>
void main()
{ int n1,n2,sum;
printf(“inserire un numero intero”);
scanf(“%d”,&n1);
printf(“inserire un numero intero”);
scanf(“%d”,&n2);
sum=n1+n2;
}
Nell’esempio il source file è somma.c
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Preelaborazione
• Precompilazione del programma ed espansione delle macro:
– Il programma che esegue la precompilazione è detto preprocessore e
viene eseguito in maniera automatica prima che avvenga la
compilazione
– Il preprocessore obbedisce a comandi detti direttive del preprocessore
o macro che indicano che sul programma devono essere effettuate
delle manipolazioni prima della compilazione:
• Inclusione di altri file in quello da compilare
• Sostituzione di simboli speciali con un testo del programma
– Le linee per il preprocessore di macro iniziano con il simbolo #
– Esempio:
#define max 40
#include<stdio.h>
• Prima della compilazione del programma ogni occorrenza di max è sostituita
con il valore 40
• La riga #include<stdio.h> viene sostituita dal contenuto del file stdio.h.
Ciò consente al programma di usare le funzioni di libreria Printf e Scanf
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
La libreria standard del C
Principali componenti:
• <stdef.h> definizioni comuni
• <assert.h> diagnostica
• <ctype.h> gestione di caratteri
• <local.h> localizzazione
• <math.h> funzioni matematiche
• <stdio.h> I/O
• <stdlib.h> utilità generiche
• <string.h>gestione di stringhe
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Traduzione
(compilazione o interpretazione)
• Il traduttore (compilatore o interprete) trasforma le
istruzioni del programma in istruzioni in linguaggio di
macchina
• In particolare, il compilatore traduce il programma C
nel codice in linguaggio macchina, detto codice
oggetto
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Traduzione: Codice oggetto
• Un programma può essere suddiviso in parti separate,
dette moduli.
• Ciascun modulo può essere compilato separatamente
• La compilazione separata dei vari moduli genera moduli
oggetto separati
• Nel codice oggetto di ciascun modulo di programma solo
i nomi delle variabili definite nel modulo (indirizzi
simbolici) sono trasformati in indirizzi rilocabili:
– espressi in forma logica, indipendente dall’allocazione del
programma in memoria
– calcolati come se il programma fosse caricato a partire
dall’indirizzo zero
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Linking
• Il linking è eseguito da un programma detto linker, che:
– trasforma i vari moduli oggetto in un unico programma eseguibile
– collega il programma dell’utente a librerie di programmi di utilità
disponibili nell’ambiente di programmazione di ciascun linguaggio:
• nelle librerie standard
• nelle librerie definite dal programmatore
– risolve riferimenti a variabili definite esternamente a ciascun modulo
trasformando i relativi indirizzi simbolici in indirizzi rilocabili
• Il linker tramite i collegamenti precedenti produce il codice
eseguibile o programma eseguibile
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Indirizzi di un programma
• Indirizzi di un programma eseguibile:
– in formato assoluto: calcolati a partire da una specifica cella di
memoria; si verifica se:
• la memoria è partizionata staticamente e i programmi vengono
allocati alla memoria in modo rigido
• tutta la memoria è assegnata ad un unico programma utente
– in formato rilocabile: calcolati come se il programma debba
essere caricato in memoria a partire dalla cella zero
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Caricamento in memoria
• Il caricamento in memoria centrale necessario
all’esecuzione è effettuato da un programma detto
loader
• Il loader preleva dal disco il programma eseguibile e lo
trasferisce nella memoria gestendo gli indirizzi:
– Se il programma ha già indirizzi assoluti il loader deve caricare il
programma in una specifica zona di memoria
– Se il programma oggetto ha istruzioni in formato rilocabile il
loader effettua la rilocazione
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Il caricamento: rilocazione degli
indirizzi
• Tipi di rilocazione degli indirizzi:
– Statica:
• avviene nel momento del caricamento in memoria modificando istruzione
per istruzione gli indirizzi che compaiono nel programma in indirizzi assoluti
• Non richiede ulteriori elaborazioni in esecuzione sugli indirizzi caricati come
assoluti
– Dinamica:
• non comporta una modifica del codice, caricato in formato rilocabile
• gli indirizzi assoluti sono calcolati durante l’esecuzione utilizzando il registro
base che contiene l’indirizzo assoluto della cella di memoria a partire dalla
quale è caricato il programma
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Sistemi Informativi
DEE - Politecnico di Bari
Esecuzione del programma
• L’esecuzione del programma eseguibile (in linguaggio
macchina) è effettuata nella CPU.
Fondamenti di Informatica
CDL in Ingegneria Meccanica(B) - A.A. 2009-2010
Scarica

Sistemi Informativi - SisInf Lab