Algoritmi, Strutture Dati e Programmi UD 2.c: Linguaggi a Basso

Algoritmi, Strutture Dati e Programmi
UD 2.c: Linguaggi a Basso Livello
Prof. Alberto Postiglione
Dipartimento di Scienze della Comunicazione
AA 2007-2008
Università degli Studi di Salerno
LINGUAGGI DI PROGRAMMAZIONE A
BASSO LIVELLO
Curtin, cap. 12.2
1
I LIVELLI DEI LINGUAGGI
Modificata il
22/11/2007
„
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Ma che cos’è un programma?
e
i on
z
ica
un
m
o
aC
l
l
E’ una procedura o meglio un algoritmo che viene
eseguito
de
ze
n
dalla macchina le permette di portare a ctermine
le
ie
S
i
operazioni che le abbiamo richiestoto d
en
im
t
r
pa
Di
Il programma per essere comprensibile deve dare
E’ un insieme di istruzioni
istruzioni o fare dichiarazioni usando un linguaggio che la
macchina possa capire
UD 2.c
# 4
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
2
Modificata il
22/11/2007
„
„
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
I linguaggi di programmazione
Possono essere più vicini al modo di pensare del
programmatore o a “quello” della macchina
ne
zio
a
nic
mu
o
C
a
el l
d
e
nzdi ambiguità
Sono scritti in una lingua coerente e priva
e
i
Sc
di
o
t
en
m
i
Comprenderne i principi è semplice,
ma diventare un bravo
rt
pa
Di
programmatore lo è meno
Maggiore è la distanza del linguaggio dal linguaggio
macchina e la vicinanza al linguaggio naturale, più “alto”
sarà il “livello” del linguaggio
# 5
UD 2.c
Modificata il
22/11/2007
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
I “livelli” dei linguaggi
e
Linguaggi ad altissimo livello (dichiarativi): si dice zion e
a
al computer cosa si vuole senza specificare come unic
m
o
deve fare per operare (es.: SQL, Lisp, Prolog,a Cecc.)
el l
d
ze modo
Linguaggi ad alto livello: più vicini al nostro
ien
c
S più facili da
di comprendere e impostare problemi,
di
o
t
imparare e da trasferire e da ‘portare’
su un altro
en
m
i
t
computer (es.: HTML, Java,aC++,
Visualbasic, ecc.)
r
p
Di
Linguaggi a basso livello: vicini al linguaggio
macchina e all’architettura fisica del computer (es.:
Assembler)
Linguaggio macchina: usa solo 0 e 1 ed è
comprensibile direttamente dall’hardware, ma molto
difficile per l’uomo
UD 2.c
# 6
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
3
Modificata il
22/11/2007
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
I “livelli” dei linguaggi
a
el l
d
e
nz
e
i
Sc
di
o
t
en
m
i
rt
pa
Di
# 7
UD 2.c
Modificata il
22/11/2007
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
I “livelli” dei linguaggi
e
i on
z
ica
¾ stringhe di bit corrispondenti ad istruzioni, operandi, etichette
un
m
o
ed indirizzi di memoria.
aC
l
l
de
¾ Strettamente legato alla macchina.
ze
n
ie
¾ Persone in grado di manipolare simboli (parole)
Sc più che sequenze di
i
od
cifre
nt
e
im
rt
Linguaggio assembler
a
p
Di
¾ Rappresentazione simbolica del linguaggio macchina, più
comprensibile perché utilizza simboli invece di stringhe di bit.
Linguaggio macchina
„
„
„
ne
zio
a
nic
mu
o
C
Linguaggi di alto livello
¾ Linguaggio simile a quello naturale, il programmatore si astrae
dai dettagli della macchina.
UD 2.c
# 8
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
4
Modificata il
22/11/2007
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
I “livelli” dei linguaggi
a
el l
d
e
nz
e
i
Sc
di
o
t
en
m
i
rt
pa
Di
ne
zio
a
nic
mu
o
C
int main(int argc, char *argv[])
{
int i;
int sum=0;
for (i=0; i <= 100; i++)
sum = sum + i;
printf(“The sum from 0 .. 100 is %d\n”,
sum);
}
UD 2.c
# 9
Modificata il
22/11/2007
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Procedurale vs. Dichiarativo
e
e
Linguaggi procedurali: Forniscono al computer una serie
i on
z
ca
di ordini su cosa debba fare e in quale circostanza.muni
o
a C esiste è
L’aspetto della descrizione del problema, quando
l
l
de
minimizzato: il computer “non sa” niente enze
ci e
¾ Procedurali: Cobol, Fortran, Pascal, Basic,diCS
to
en
m
ti
ar
p
i
Linguaggi dichiarativi: Descrive,
dichiara quali sono i dati
D
del problema, fornisce le regole che si possono seguire e
lascia che sia il computer a decidere come agire. Possono
essere più faticosi per il computer perché deve derivare
da solo le procedure da adottare
UD 2.c
# 10
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
5
Modificata il
22/11/2007
„
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Fra i due litiganti…Object oriented
e
La caratteristica principale degli OOL è la modularità: zion e
a
nic
certe porzioni di programma si possono usare in varie
u
om
aC
occasioni
l
l
e
e
ed
z
E’ utile per costruire tali programmi partire
ien dagli oggetti
Sc
i
e dalle loro proprietà interne e di relazione
con gli altri
d
to
n
e
oggetti
im
rt
a
p
La programmazione a oggetti
Di funziona bene nei sistemi
operativi grafici (a icone)
„
Ognuno degli elementi di Windows, per es. icone, finestre,
pulsanti, menù sono altrettanti oggetti che hanno
proprietà e relazioni gli uni con gli altri
UD 2.c
# 11
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
L’INSIEME DELLE ISTRUZIONI DEL
PROCESSORE
6
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
L’Insieme delle Istruzioni del Processore
e
ne
Ogni processore è in grado di eseguire solo poche
zio
a
nic
istruzioni elementari quali:
mu
om
aC
¾ Somma di due numeri (già la somma di tre numeri viene
l
l
e
ed
effettuata tramite due somme elementari)
z
ien
¾ Confronto tra due numeri con individuazione
Sc del fatto che ci sia
i
d
o meno differenza (non tutti i processori
to sanno distinguere in
n
e
im precede l’altro)
modo immediato, invece, quale deirtdue
a
p
Di di una parola di qualche posizione
¾ Spostamento dei bit all’interno
a destra o a sinistra.
¾ poche altre ancora …
# 13
UD 2.c
Modificata il
22/11/2007
„
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
L’Insieme delle Istruzioni del Processore
e
i on
z
ica
un
m
o
aC
l
l
I linguaggi sono come dialetti regionali derivati
da
de
ze
n
un’unica radice
ie
Sc
i
od
nt
e
im
Perché?
rt
a
p
Di
¾ Costruiti su tecnologie basate sugli stessi principi fondamentali
Ogni famiglia di calcolatori ha un proprio linguaggio
¾ Esistono operazioni base comuni
„
Apprendere un linguaggio Æ facile apprendere gli altri
UD 2.c
# 14
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
7
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
L’Insieme delle Istruzioni del Processore
e
Ogni istruzione del processore è composta da più zion e
a
nic
operazioni elementari che accedono in momenti successivi
u
om
aC
alle risorse del computer (ad esempio prima alellcontenuto
ed
dell’istruzione, poi alla memoria centrale,epoi
nz all’ALU …).
ci e
¾ Quasi mai la singola istruzione del processore
i S è eseguita in un solo
d
o
nt la somma di due numeri
ciclo di clock. Ad esempio, per effettuare
e
im
9 Bisogna leggere il primo addendoart
p
i
D
9 Bisogna leggere il secondo addendo
9 Bisogna eseguire la somma
9 Bisogna memorizzare la somma
¾ E potrebbe darsi che alcune di queste mini-operazioni richieda più
cicli di clock per essere completata.
UD 2.c
# 15
Modificata il
22/11/2007
„
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
L’Insieme delle Istruzioni del Processore
e
i on
z
ica
un
m
o
aC
l
l
Vocabolario di un calcolatore: Insieme delledeistruzioni.
ze
ien
Quanto più esso è povero
c
S
di
¾ tante più parole saranno necessarie pertodescrivere
un concetto,
en
m
¾ ma tanto più esse saranno “corte”rtei quindi veloci da eseguire, in
pa
quanto richiedono pochi impulsi
Di di clock per essere completate.
Parole del linguaggio: Istruzioni
UD 2.c
# 16
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
8
Modificata il
22/11/2007
„
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Tipi di Istruzioni
ne
zio
a
nic
¾ Esempio: Valore assoluto, Somma, AND, Divisione, Moltiplicazione,
mu
o
C
NOR, OR, XOR, shift, rotazione, sottrazione
lla
e
d
Trasferimento dati
ze
n
e
ci
¾ Caricamento di registri dalla memoria e viceversa.
iS
d
o
nt
e
Confronto
im
rt
pa
¾ Confronto tra due dati. Non effettuano
azioni.
i
D
Logico-aritmetiche
¾ Esempio: Set less than
„
Salto
¾ Può essere assoluto o condizionato; se è condizionato è spesso
preceduto da istruzione di confronto.
¾ Esempio: Branch if equal/not equal, Jump to register, Jump
# 17
UD 2.c
Modificata il
22/11/2007
„
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Tipi di Istruzioni
e
i on
z
ica
¾ Deve salvare tutte le informazioni correnti ed eseguire ununaltro
m
o
pezzo di programma (subroutine).
aC
l
l
e
ed
¾ L’istruzione di ritorno da subroutine ritorna ad zeseguire
il
n
ie
c
programma da dove lo aveva lasciato precedentemente.
S
di
o
t
en
im
t
r
Istruzioni di I/O
pa
Di
¾ Trasferire o ad acquisire dati dall’esterno del sistema. Simili alle
istruzioni di trasferimento dati, utilizzano un codice diverso e
particolari indirizzi.
Salto a subroutine, ritorno da subroutine
Istruzioni varie
¾ Ad esempio chiamate di sistema, gestione delle interruzioni, ecc…
UD 2.c
# 18
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
9
LINGUAGGIO MACCHINA
Modificata il
22/11/2007
„
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Linguaggio Macchina
e
Per gestire hardware bisogna parlare il linguaggio delzion e
a
nic
calcolatore
mu
om
aC
l
l
de
ze
n
Linguaggio perché presenta
ie
Sc
i
¾ Parole (cioè le istruzioni)
od
nt
e
¾ Sintassi (regole di combinazione delle
im parole per generare frasi
rt
a
p
corrette)
Di
Sintassi di un linguaggio di programmazione
¾ Molto semplice (poche regole)
¾ Molto rigorosa (per evitare ogni tipo di ambiguità)
UD 2.c
# 20
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
10
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Istruzioni in Linguaggio Macchina
e
ne
In un linguaggio macchina, ogni istruzione è una sequenza
zio
a
ic
di cifre binarie
un
om
C
lla
e
d
¾ Perfettamente non ambiguo per la macchina nze
e
ci
iS
d
o
nt
e
Un’istruzione è formata da
tim
ar
p
i
¾ un codice operativo
D
¾ Totalmente illeggibile per l’uomo
„
¾ uno o più operandi
9 Molti processori mantengono costante il numero di operandi per
ogni istruzione (ad esempio le istruzioni aritmetiche ammettono
sempre e solo 3 operandi)
UD 2.c
# 21
Modificata il
22/11/2007
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Istruzioni in Linguaggio Macchina
e
ne
Normalmente, gli operandi risiedono in Memoria centrale
zio
ica
un
m
o
aC
l
l
In fase di esecuzione ogni operando deve essere
portato
de
ze
n
dalla memoria centrale in un registro delcieprocessore
S
di
o
t
en
im
t
r
pa
Di
UD 2.c
# 22
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
11
Modificata il
22/11/2007
„
„
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Istruzioni in Linguaggio Macchina
ne
Istruzione in LM è una successione di 32 bits Æ
zio
a
ic
rappresentabile da un numero
un
om
¾ La funzione di questo numero è di codifica (rappresentazione
di
aC
l
l
informazioni), non è un numero vero e proprio e de
z
ien
c
S
di
to
Ogni istruzione è scomponibile inenframmenti
più piccoli,
m
i
ognuno dei quali rappresenta un
rt tipo di informazione
ipa
D
(codice operativo, una costante, il numero di un registro).
Le istruzioni si distinguono per il valore contenuto nel
primo campo
In base ad opcode l’hardware sa come trattare il resto
dell’istruzione
UD 2.c
# 23
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Istruzioni in Linguaggio Macchina
e
L’istruzione che somma due numeri che sono stati già zion e
ca
trasferiti dalla RAM nei registri numero 17 e 18mueni
o
memorizza il risultato nel registro numero 8ellaèC
d
ze
rappresentabile come segue:
n
e
ie
Sc
i
00000010001100100100000000100000
od
nt
e
im
rt
a
p
Di
000000
6 bits
10001
5 bits
10010
5 bits
01000
5 bits
00000
5 bits
100000
6 bits
17
18
8
0
32
In decimale:
0
UD 2.c
# 24
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
12
Modificata il
22/11/2007
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Linguaggi macchina: problemi
ne
zio
a
nic
¾ Occorre conoscere l’architettura della macchina per scrivere
mu
o
C
programmi
lla
e
d
¾ I programmi non sono trasportabili
ze
n
e
ci
¾ I programmatori si specializzano nel cercare
i S efficienza su una
d
o
macchina specifica, anziché concentrarsi
nt sul problema
e
im
rt
pa
i
D
Sono specifici della macchina
Istruzioni e operandi sono rappresentati in forma
numerica
¾ I codici sono poco leggibili e quindi difficilmente modificabili
¾ I programmi sono facilmente soggetti ad errori
# 25
UD 2.c
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Linguaggio Macchina
e
Il Linguaggio Macchina non è facilmente “utilizzabile” zion e
ca
Binary machine
language
program
(for MIPS)
„
ic
un
m
o
aC
l
l
de
00000000101000010000000000011000
ze
n
00000000100011100001100000100001
ie
Sc
10001100011000100000000000000000
i
od
10001100111100100000000000000100
nt
e
10101100111100100000000000000000
im
rt
10101100011000100000000000000100
a
p
Di
00000011111000000000000000001000
Un programmatore utilizza una versione più “ad alto
livello” del LM: il linguaggio Assembler
UD 2.c
# 26
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
13
LINGUAGGIO ASSEMBLER
Modificata il
22/11/2007
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Linguaggio Assembler
e
ne
Linguaggio simbolico che utilizza simboli invece che bits.
zio
ica
¾ I simboli associano nomi ai codici operativi o i riferimentiunai
m
o
registri.
aC
l
l
de
¾ Permette di utilizzare etichette invece che indirizzi
fisici
ze
n
ie
c
S
di
o
t
Le istruzioni in Assembler sono quasi
en tutte in
im
t
r
corrispondenza 1<->1 con quelle
pa in linguaggio macchina
Di
UD 2.c
# 28
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
14
Modificata il
22/11/2007
„
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Programma in Linguaggio Macchina
e
Calcolo e stampa della somma dei quadrati dei numeri zion e
a
nic
compresi tra 1 e 100.
u
m
Programma in LM Æ
UD 2.c
# 29
„
m
Co
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Modificata il
22/11/2007
„
a
el l
d
e
nz
e
i
Sc
di
o
t
en
m
i
rt
pa
Di
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Programma in Linguaggio Assembler
e
i on
z
ica
un
m
o
aC
l
l
de
ze
n
ie
Sc
i
od
nt
e
Operazioni e operandi sono
im
rt
a
rappresentati in maniera Dip
Una prima rappresentazione
simbolica del programma in LM
visto in precedenza è la
seguente Æ
simbolica.
UD 2.c
# 30
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
15
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Programma in Linguaggio al alto livello
e
Il formato precedente è ancora difficile da seguire zion e
a
nic
perché:
u
m
om
aC
¾ Usa molte piccole operazioni per eseguire compiti semplici
l
l
e
e d con
z
¾ I costrutti per il controllo del flusso sono realizzati
ien
confronti e salti (più difficili da leggere) i Sc
d
to
n
e
im
rt
a
p
Di
UD 2.c
# 31
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Modificata il
22/11/2007
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Programma in Linguaggio al alto livello
„
Linguaggio “C”:
„
Linguaggio “Pascal”:
Program somma;
Var i, somma : integer;
e
i on
z
main (int argc, char *argv[])
ica
un
{
m
o
int i;
aC
l
l
de
int sum = 0;
zei = i + 1) sum = sum + i;
n
for (i = 0; i <=e100;
i
printf ("The
Scsum from 0 .. 100 is %d\n", sum);
i
}
od
nt
e
im
rt
a
p
Di
#include <stdio.h>
int
Begin
somma := 0;
for i:=1 to 100 do
somma := somma + i;
write (‘La somma dei primi 100 numeri vale: ‘, somma);
End.
UD 2.c
# 32
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
16
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Esempio 2
PASCAL:
x := h + x
„
„
ASSEMBLER(*) :
a
el l
d
lw
8,
1200
e
nz
e
i
add 8,
18, 8
Sc
di
sw
8,
1200
o
t
en
m
i
LINGUAGGIO MACCHINA(*) r(binario)
t
100011
000000
101011
01001
10010
01001
ne
zio
a
nic
mu
o
C
ar
01000 Dip 0000 0100 1011 0000
01000
01000
00000
010000
01000
0000 0100 1011 0000
Cioè:
10001101001010000000010010110000
00000010010010000100000000010000
10101101001010000000010010110000
(*) Si suppone che il registro 8 contiene x e che il registro 18 contiene h
UD 2.c
# 33
Modificata il
22/11/2007
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Assemblatore
e
e
Uno strumento che traduce programmi scritti nel
i on
z
a
nic
linguaggio assembler in linguaggio macchina.
mu
om
aC
l
l
de
ze
n
L’assembler
ie
Sc
i
¾ legge un file sorgente in assembler
od
nt
e
¾ produce un file oggetto contenente
im insieme di istruzioni in LM, di
rt
a
p
dati e di informazioni necessarie
Di per il caricamento in memoria
delle istruzioni
UD 2.c
# 34
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
17
Modificata il
22/11/2007
„
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Quando usare un linguaggio Basso Livello
e
ne
Velocità di esecuzione o occupazione di memoria sono
zio
a
nic
critiche
mu
om
a C (anche
¾ programmazione di controller di processi e macchinari
l
l
e
e d auto)
real-time) o computer embedded (es controllo freni
z
ien
¾ programmazione di apparati speciali:
Sc
i
d
9 Portable Devices
to
n
e
9 Telefonini cellulari
im
rt
a
p
9 Schede Smart Card,
Di
9…
„
„
Approccio ibrido: parti “critiche” di un programma in
Assembler e le altre in HLL
Accedere a caratteristiche hardware non accessibili ad
un linguaggio ad alto livello.
# 35
UD 2.c
Modificata il
22/11/2007
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Algoritmi, Strutture Dati e Programmi: La Programmazione (Linguaggi a Basso Livello)
Svantaggi di un linguaggio a Basso Livello
e
e
on
I programmi sono più lunghi della versione in linguaggioziad
ica
alto livello, spesso di un fattore moltiplicativo elevato
un
m
o
aC
(fattore di espansione)
l
l
e
de
ze codice
¾ Produttività di un programmatori si misura in linee
n
ie
Sc
prodotte in unità di tempo
i
d
to
¾ Programmatori scrivono più o meno loenstesso
numero di linee di
m
i
t
codice per unità di tempo, indipendentemente
dal linguaggio usato
r
ipa
D
¾ scrivere in Assembler è più costoso, in termini di tempo, di
qualche fattore rispetto allo scrivere con linguaggi ad alto livello.
„
Leggibilità del codice e probabilità di errore peggiorano
con l’aumentare delle linee di codice
UD 2.c
# 36
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
18