Informatica per Scienze
Biologiche e Biotecnologie
Anno Accademico 2001-2002
Anno Accademico
2001-2002
Corso di Informatica
Informatica per Scienze
Biologiche e Biotecnologie
Modulo 5 I Linguaggi di programmazione
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi di
Programmazione
Si illustrerà la funzione dei linguaggi di programmazione, senza peraltro
scendere in dettagli tecnici. Scopo è solo quello di chiarire come si traduce
un qualunque modello/algoritmo in modo comprensibile alla macchina.
Anno Accademico
2001-2002
Corso di Informatica
Argomenti
-Cosa è un linguaggio di programmazione
-Codice macchina
-I principali linguaggi:
-
Anno Accademico
2001-2002
Basic
C
Fortran
Cenni su altre famiglie di linguaggi
Corso di Informatica
Cosa è un Linguaggio di
Programmazione
Il computer non sa
eseguire che comandi
binari, la cui difficoltà
di utilizzo è
estremamente
elevata, anche perché
a ciascun comando
corrisponde un’azione
elementare e occorre
tradurre qualunque
operazione in una
serie di passaggi
elementari.
Anno Accademico
2001-2002
Corso di Informatica
Cosa è un Linguaggio di
Programmazione
I primi computer erano
programmati
direttamente in codice
esadecimale, ottale o
binario. Era
un’operazione
estremamente lunga e
doveva tenere conto
della struttura fisica
della CPU e delle
istruzioni elementari
che questa era in
grado di riconoscere.
Anno Accademico
2001-2002
Corso di Informatica
Cosa è un Linguaggio di
Programmazione
Anno Accademico
2001-2002
Corso di Informatica
Ricordare che
l’operazione somma
fosse un codice del tipo
001100110011
o
1463 (ottale)
o
333 (esadecimale)
non era certamente cosa
facile e, peggio ancora,
immaginate impostare i
singoli comandi che
possibilità di errore
lasciava.
Cosa è un Linguaggio di
Programmazione
Anno Accademico
2001-2002
Corso di Informatica
Il primo passo fu quello
di associare a ciascun
codice esadecimale un
codice mnemonico, un
attimo più semplice da
ricordare e da scrivere.
Quindi il nostro
inenarrabile 1463 ottale
diveniva ADD.
Semplificazione non da
poco, che però ancora
lasciava al
programmatore la
responsabilità di
ricordare la struttura
della CPU.
I Linguaggi Assemblatori
Anno Accademico
2001-2002
Corso di Informatica
I linguaggi del tipo
appena descritto, in cui
ad ogni comando del
linguaggio corrisponde
una e una sola
operazione della cpu, si
dicono linguaggi
assemblatori. Sono di
utilizzo difficile, per
specialisti, anche se dalla
loro hanno il vantaggio di
produrre codice
estremamente efficiente,
di cui sono noti tutti i
dettagli.
I Linguaggi Assemblatori
Ogni tipologia di CPU ha
un proprio linguaggio
assemblatore o
Assembler. Il che si
traduce nella esigenza di
riscrivere un programma
ogni volta che si passa
da una CPU a un’altra
(da Z80 a 8085 a 8086 a
pentium a 68000 etc…)
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
Il desiderio reale era
quello di giungere a
definire un linguaggio
che definisse le
operazioni a un livello
abbastanza alto, senza
entrare nei dettagli
operativi della singola
CPU e che, al meglio, si
avvicinasse al modo di
scrivere formalmente un
algoritmo.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
I primi linguaggi a
vedere la luce furono il
COBOL (Commercial
Business Operative
Language) e il Fortran
(FORmula TRANslation).
Il primo destinato a
scrivere programmi
gestionali con molti
accessi a banche dati, il
secondo destinato a
programmi di calcolo
scientifico.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
La sintassi di questi
linguaggi è molto più
semplice di quella di un
assembler e permette di
descrivere operazioni di
livello alto, demandando
al compilatore il
compito di tradurre dette
operazioni in sequenze di
codici macchina.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
Esempio:
X=SQRT (Y)
Z=EXP (Y)
W=X+Y+Z
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
Le variabili che vengono
utilizzate in un
programma devono
essere sempre
dichiarate per
permettere al
compilatore di riservare
le corrette zone di
memoria e di trattarle in
corso di esecuzione
secondo la
rappresentazione
associata.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
I tipici linguaggi di prima
generazione erano
linguaggi dichiarativi e
imperativi, nel senso che
erano costituiti da una
sequenza di istruzioni da
eseguire in sequenza,
salvo i passi condizionali
inseriti nel flusso di
esecuzione.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
I linguaggi, da quel
momento in poi, si
moltiplicarono in modo
biblico.
Ne nacquero di ogni tipo
e per ogni esigenza.
Vale la pena di
ricordarne alcuni che
rappresentano
significative evoluzioni.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
LISP: permette di
dichiarare secondo
formalismi del lambda
calcolo le funzioni da
implementare e
eseguirle.
PROLOG: permette di
scrivere con un
formalismo simile a
quello dei predicati logici
le istruzioni.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi Evoluti
SmallTalk: primo
linguaggio ad oggetti. Il
paradigma ad oggetti ha
avuto in seguito grossa
diffusione e rappresenta
a tutt’oggi la modalità di
programmazione più
completa che si utilizzi.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi comuni
BASIC: è un linguaggio
interpretato, cioè non
viene tradotto in
linguaggio macchina ma
piuttosto viene eseguito
passo passo da un
interprete che provvede
a dare istruzioni real time
alla cpu. Questo lo rende
un linguaggio interattivo,
molto amichevole ma
molto lento.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi comuni
È un linguaggio adatto a
principianti, in quanto la
sua interattività permette
di provare ciò che si
scrive in tempi molto
rapidi e di correggerlo,
ove ci fossero
imperfezioni od errori.
NB: Il Visual Basic, pur
discendendo dal Basic, è
piuttosto complicato,
anche se rimane un
linguaggio interpretato.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi comuni
Il linguaggio attualmente
più utilizzato è il C. Nato
nei laboratori Bell per
sviluppi interni, è un
linguaggio molto
potente, a costo di
perdere molti dei vincoli
formali che solitamente
rendono un linguaggio
controllabile e sicuro.
Anno Accademico
2001-2002
Corso di Informatica
I Linguaggi comuni
E’ un linguaggio sporco,
di scarsa eleganza ma di
elevata efficacia. Oggi,
poi, nella sua versione ad
oggetti, permette
sviluppi estremamente
sofisticati ma richiede
competenze tecniche
elevate.
Anno Accademico
2001-2002
Corso di Informatica
Ulteriori considerazioni
Qualunque linguaggio è
equipotente: tradotto in
parole povere ciò che si
può fare con un
linguaggio lo si può fare
con qualunque altro
(Teorema di Church). Ciò
significa che la scelta di
un linguaggio deve
essere basata su
considerazioni di
efficienza, di
adeguatezza, etc.
Anno Accademico
2001-2002
Corso di Informatica
Ulteriori considerazioni
Esempio: il C è
estremamente adatto per
sviluppi che richiedano
forti interazioni con la
macchina, come
alternativa all’assembler.
Se, di contro, si deve
verificare una teoria
logica, il Prolog può
essere più adeguato,
mentre se la
rappresentazione ad
oggetti è centrale,
meglio lo SmallTalk.
Anno Accademico
2001-2002
Corso di Informatica
Ulteriori considerazioni
Un suggerimento a chi
volesse imparare a
programmare: il miglior
linguaggio per questo
tipo di attività è
certamente il Pascal, che
ha la caratteristica di
essere estremamente
formale, con un
compilatore rigido che
non deroga dalla sintassi
standard.
Anno Accademico
2001-2002
Corso di Informatica
Considerazioni finali
I linguaggi si classificano
in:
• interpretati
• compilati.
Esistono poi linguaggi
imperativi, logici,
simbolici, etc.
I linguaggi più evoluti
attuali di solito
implementano il
paradigma di
programmazione ad
oggetti.
Anno Accademico
2001-2002
Corso di Informatica
Scarica

Informatica per Scienze Biologiche e Biotecnologie