Sei sulla pagina 1di 29

SOFTWARE di SVILUPPO

I linguaggi di programmazione
SOFTWARE DI SVILUPPO

 PROGRAMMA: è una sequenza di


istruzioni scritte in un linguaggio
comprensibile dal calcolatore che le
esegue per risolvere determinati
problemi
 Il PROGRAMMA rappresenta quindi con
l’insieme delle sue istruzioni, quelle
azioni compiute sui dati in ingresso per
produrre risultati in uscita
STRUMENTI di SVILUPPO

 LINGUAGGI di PROGRAMMAZIONE
Linguaggi Macchina
Linguaggi Basso livello
Linguaggi Alto livello
 TRADUTTORI
Assemblatori
Compilatori
Interpreti

Informatica - Prof. Corrado Lai


STRUMENTI di SVILUPPO
Nella programmazione bisogna distinguere tra
due diversi tipi di programma
 PROGRAMMA SORGENTE
Programma aperto. E’ il programma scritto
dal programmatore in un linguaggio di
basso o alto livello
 PROGRAMMA OGGETTO
Programma chiuso. E’ il programma che è
stato trasformato, tramite un
TRADUTTORE in linguaggio macchina
(binario o esadecimale)
Dal problema alla soluzione

Problema Risultati

Algoritmo Elaborazione

Programma Programma Programma


sorgente traduttore oggetto

Informatica - Prof. Corrado Lai


LINGUAGGI MACCHINA
 Sono i linguaggi direttamente interpretabili
dalla CPU
 La CPU può interpretare solo stati elettrici di
tensione di livello alto (1) o basso (0)
 I linguaggi macchina vengono perciò espressi
in codice binario
 Il codice binario viene inviato alla CPU
attraverso il BUS DATI
 Ad es. le prime CPU della Intel 8088 avevano
un basi dati ad 8 bit.
 Quante istruzioni posso ottenere con 8 bit?

Informatica - Prof. Corrado Lai


LINGUAGGI MACCHINA
 Le istruzioni o codici che posso ottenere se
ho una CPU con bus dati a 8 bit saranno

2  256
8

 Ho quindi un set di istruzioni pari a 256


codici

 Nuovi processori della Intel e della AMD


hanno un bus dati a 16, 32 e a 64 bit

Informatica - Prof. Corrado Lai


LINGUAGGI MACCHINA

• Se il set di istruzioni è rimasto compatibile


con i vecchi processori è possibile
aumentare la velocità di elaborazione (si
elaborano più istruzioni per volta) senza
variare la frequenza del clock
• Ad esempio se abbiamo un bus dati a 32 bit
è possibile analizzare 4 istruzioni per volta
• L’altra possibilità è quella di usare un set di
istruzioni più esteso visto l’aumento del
numero di codici a disposizione

Informatica - Prof. Corrado Lai


LINGUAGGI MACCHINA
• In base al SET di ISTRUZIONI che il processore
gestisce si individuano due tipi di famiglie di
microprocessori

• RISC (Reduced Instruction Set Computing)


Riconoscono un numero ridotto di codici. Per
eseguire funzioni complesse utilizzano
combinazioni degli stessi

• CISC (Complex Instruction Set Computing)


Lavorano con un esteso numero di codici di base

Informatica - Prof. Corrado Lai


LINGUAGGI MACCHINA
• Inizialmente data la limitata potenza dei PC,
i processori RISC risultavano più indicati.
• Al momento, date le elevatissime frequenze
di lavoro raggiunte dai processori CISC tutti
i PC sono equipaggiati di processori CISC
• L’unico processore di tipo RISC attualmente
utilizzato nei PC è il Motorola PowerPC che
equipaggia alcuni sistemi Apple

Informatica - Prof. Corrado Lai


LINGUAGGI MACCHINA
 Un programma scritto in linguaggio
macchina viene anche detto CODICE

 L’uso del codice binario risulta di


difficile utilizzo pratico

 Il CODICE viene perciò in genere


rappresentato anche mediante il
formato esadecimale secondo la
conversione Binario  Esadecimale
Informatica - Prof. Corrado Lai
Linguaggi di basso livello

 La lettura di un codice scritto in


linguaggio macchina anche se in
esadecimale risulta in genere piuttosto
difficoltosa

 A ciò pone rimedio i linguaggi di basso


livello come il
linguaggio ASSEMBLY
Informatica - Prof. Corrado Lai
Linguaggi a basso livello

 Il linguaggio ASSEMBLY associa alle singole


istruzioni del linguaggio macchina le
abbreviazioni delle parole inglesi che indicano
il compito da svolgere

 Nasce il codice mnemonico

 Esempio per caricare un dato in un registro


della CPU si usa LD, per sommare ADD, per
sottrarre SUB e così via…

Informatica - Prof. Corrado Lai


Linguaggio ASSEMBLY

 Ogni CPU possiede un proprio


linguaggio di basso livello di tipo
assembly.

 Le CPU costruite dalla stessa ditta in


genere utilizzano tutti lo stesso
linguaggio ASSEMBLY

Informatica - Prof. Corrado Lai


Esercizio sul linguaggio ASSEMBLY

 Si voglia redigere un programma che effettui la


somma tra i numeri 8 e 9 utilizzando una CPU
Z80

 Costruiremo sia il programma scritto in


Assembly (codice mnemonico) e troveremo il
corrispondente in linguaggio macchina (in
forma esadecimale e binaria). Per i codici è
stato utilizzato il manuale del costruttore
(Zilog) della CPU Z80
Informatica - Prof. Corrado Lai
Esercizio sul linguaggio ASSEMBLY
per una CPU Z80
Assembly (codice mnemonico) Lin. Macchina (ESA)

LD A,08 3E 08
(carica nel registro A il valore 8)

LD B,09 06 09
(carica nel registro B il valore 9)

ADD A,B 80
(esegui la somma del contenuto di A e B)

HALT 76
(fine delle istruzioni)

Informatica - Prof. Corrado Lai


Esercizio sul linguaggio ASSEMBLY
per una CPU Z80
ESADECIMALE BINARIO
3E 08 00111100 00001000

06 09 000001100 00001001

80 10000000

76 01110110

Informatica - Prof. Corrado Lai


L’ASSEMBLER

 Le istruzioni scritte in linguaggio ASSEMBLY


non sono direttamente interpretabili dal
microprocessore ma è necessario un
programma traduttore che converta il tutto in
linguaggio macchina cioè in codice binario
così come da noi fatto nell’esempio
precedente.
 Tale software traduttore si chiama
ASSEMBLER

Informatica - Prof. Corrado Lai


LINGUAGGI di ALTO LIVELLO

 Pur se utilizza un codice mnemonico il


linguaggio ASSEMBLY di basso livello
presuppone una conoscenza profonda
dell’architettura del microprocessore.
 Per permettere ai programmatori di sviluppare
dei programmi senza dover necessariamente
essere dei profondi conoscitori dell’hardware
di una CPU sono nati i LINGUAGGI di
ALTO LIVELLO

Informatica - Prof. Corrado Lai


LINGUAGGI di ALTO LIVELLO

 I linguaggi di ALTO LIVELLO sono molto


simili ai linguaggi naturali.
 Ciò facilita la stesura del programma e
una più agevole leggibilità da parte di
altri programmatori.
 Tali linguaggi svincolano il
programmatore dalle rigidezze dovute al
particolare processore usato

Informatica - Prof. Corrado Lai


LINGUAGGI di ALTO LIVELLO

 Sono linguaggi simbolici, in continua


evoluzione

 Sono definiti da un insieme di regole formali e


regole grammaticali che individuano la
cosiddetta sintassi

 Ogni linguaggio possiede la sua sintassi

Informatica - Prof. Corrado Lai


Sintassi e semantica

 Le regole di sintassi definiscono come si


devono comporre i simboli e le parole per
formare istruzioni corrette

 La semantica di un’istruzione invece definisce


cosa questa significhi (lo scopo dell’istruzione)

 Un programma sintatticamente corretto non è


necessariamente semanticamente corretto

Informatica - Prof. Corrado Lai


Sintassi e semantica

I programmi fanno quello


che prescriviamo che
facciano e non quello
che vorremmo che
facessero

Informatica e Sistemi
4 Liceo - A.S. 2011-12 Prof. Corrado Lai 25
Costruzione di un programma

 In generale un programma prevede


le seguenti due parti:
 Parte DICHIARATIVA
 dove vengono dichiarate le variabili del
problema
 Parte ESECUTIVA
 dove sono presenti le istruzioni in cui è
stato tradotto l’algoritmo

Informatica - Prof. Corrado Lai


LINGUAGGI di ALTO LIVELLO

 Ecco alcuni esempi di linguaggi di


alto livello.
1. PASCAL
2. BASIC, VISUAL BASIC
3. C, C++, C#
4. JAVA
5. HTML
6. PHP

Informatica - Prof. Corrado Lai


Perché programmare????

 Nel corso del 2013 ci sarà una forte


richiesta di sviluppatori di applicazioni
per Apple e per smartphone e tablet
equipaggiati con Google Android.
 Non mancheranno opportunità lavorative
per chi dispone di conoscenze relative a
C, C++, Objective C (C#), Java.

Informatica - Prof. Corrado Lai


Perché programmare????
1. Per quanto riguarda i linguaggi della rete al primo posto c’è
PHP, linguaggio di scripting per lo sviluppo di pagine web
dinamiche o applicazioni online.
2. In seconda posizione c’è HTML, il linguaggio di markup per la
descrizione delle modalità o delle istruzioni di impaginazione,
formattazione o visualizzazione grafica del contenuto di una
pagina web
3. Al terzo posto c’è MySQL: conoscere questo RDBMS (Relational
Database Management System) sembra dare una marcia in più
per lavorare allo sviluppo di siti web dinamici.
4. A seguire, dalla quarta alla decima posizione, ci sono CSS,
Java, JavaScript, Flash, Joomla

Informatica - Prof. Corrado Lai