Title: BIOINFORMATICA
1BIOINFORMATICA
- La Bioinformatica si occupa, dellacquisizione,
memorizzazione, distribuzione, analisi e
interpretazione dei dati prevalentemente
nellambito della biologia. - Questa nuova disciplina scientifica utilizza
metodi di matematica, informatica, biologia,
medicina, fisica allo scopo di migliorare la
comprensione dei fenomeni biologici. Di seguito,
si elenca a titolo alcuni dei principali
obiettivi della Bioinformatica
2 Sviluppo di strumenti per la generazione ed il
mantenimento dellinformazione proveniente alle
varie fonti mappa fisica, mappa genetica, mappa
cromosomica, mappa citogenetica, polimorfismi, e
linformazione relativa alle sequenze genomiche e
proteiche etc. Raccolta e organizzazione delle
informazioni genetiche associate alle patologie
mediche Sviluppo di programmi di calcolo per
l'analisi delle sequenze Sviluppo dinterfacce
grafiche in grado di visualizzare in maniera
efficace linformazione richiesta Sviluppo di
metodi software che consentano di agevolare tutte
le fasi dei progetti Sviluppo di strutture per
database specializzate ed integrate
3- Realizzazione di standard per lo scambio e la
descrizione dei dati - Realizzazione di una rete dati per la raccolta
la distribuzione e laggiornamento costante di
tutta informazione prodotta - Raccolta della bibliografia, brevetti e altri
database di supporto allinformazione specifica - Predizione dei geni nelle sequenze di DNA
- Predizione delle strutture tridimensionali
delle proteine partendo dalle sequenze primarie - Predizione delle funzioni biologiche e
biofisiche sia dalle sequenze e sia dalle
strutture - Simulazione dei processi metabolici e cellulari
basati su queste funzioni. - Realizzazioni di sistemi per la correlazione
dellinformazione in sistemi biologici complessi.
4LOGICA
- LOGICA, i principi logici che collegano la
scrittura sintattica delle frasi con la loro
verità e falsità possono essere ampliamente
trovati in Platone (428-348 a.C.). - Il primo studio sistematico della logica è noto
come il trattato di Organon, scritto dagli
allievi di Aristotele. - La scuola di Megera e quella stoica pongono le
basi per lo studio sistematico delle
implicazioni, mentre lo studio di un linguaggio
formale artificiale basato sulla notazione
matematica per chiarire le relazioni logiche e
ridurre linferenza logica ad un processo
meccanico e formale si deve a Leibnz nel
1600-1700. - Solo con Boole nella metà dellottocento si ha un
sistema logico ragionevolmente completo il
sistema includeva le parti principali della
logica aristotelica ed un sistema analogo alla
logica proposizionale moderna.
5- Le tavole della verità come metodo per la
verifica della validità delle formule nel
linguaggio proposizionale sono state introdotte
simultaneamente ed indipendentemente da
Wittgenstein (1922) e da Emil Post (1921). - Nel 1982 Quine descrive un metodo per lanalisi
dei valori della verità che è molto efficiente
basato su alberi di decisione. - La base di conoscenza o KB (Knowledge Base) è un
insieme di rappresentazioni del mondo, ogni
singola rappresentazione è denominata come
formula, le formule a loro volta sono espresse in
un linguaggio denominato linguaggio di
rappresentazione della conoscenza.
6LINGUAGGIO
- Il linguaggio viene definito in un dizionario
come "l'insieme di parole e metodi di
combinazione di parole usate e comprese da una
comunità di persone". - Loggetto della rappresentazione della conoscenza
è lespressione della conoscenza espressa in
forma trattabile automaticamente. - Alla base di tutta linformatica vi sono due
concetti fondamentali, che risultano strettamente
interconnessi tra loro quello di automa e quello
di linguaggio.
7SEMANTICA
- La sintassi del linguaggio che descrive le
possibili configurazioni che costituiscono le
formule. Di solito rappresentiamo la sintassi in
termini di formule per la carta stampata, in
realtà la vera rappresentazione è allinterno di
un computer ogni formula è implementata da una
configurazione fisica. - La semantica determina le realtà del mondo a cui
si riferiscono le formule. Con la semantica ogni
formula asserisce qualcosa al mondo. - Ogni linguaggio, così come ogni lingua umana, è
formato da parole che devono essere messe insieme
secondo determinate regole (sintassi) al fine di
ottenere un significato (semantica).
8- Il risultato di questo processo di astrazione
consiste nella definizione di opportuni modelli
matematici, cioè di sistemi formali che
definiscono di fatto il concetto stesso di
computabilità, cioè costituiscono l'ossatura
portante della teoria della computabilità. - Tra i più noti di questi sistemi formali vi è una
gerarchia di macchine astratte (la gerarchia
caratterizza la capacità di risolvere classi
diverse di problemi) che parte dagli automi a
stati finiti e termina alla macchina di Turing.
9- I sistemi di produzione di Thue, Post, Markov
partono invece dall'idea di automa come insieme
di regole di riscrittura (dette anche produzioni
o regole di inferenza) che trasformano frasi
(insiemi di simboli) in altre frasi. - I diversi formalismi si differenziano invece
radicalmente per il modo con cui giungono ad
esprimere la soluzione ad un problema.
10- Verso la fine degli anni 30, Claude Shannon
dimostrò che utilizzando un circuito elettrico
dotato di un interruttore era possibile definire
le condizioni VERO per il circuito aperto e FALSO
per circuito chiuso. - Era possibile dunque effettuare delle operazioni
logiche associando il numero 1 a VERO e il numero
0 a FALSO. - Questo linguaggio venne chiamato linguaggio
BINARIO. Il linguaggio binario è dunque il
linguaggio che consente il funzionamento dei
computer.
11LINGUAGGIO BINARIO
- Il linguaggio binario è dunque il linguaggio che
consente il funzionamento dei computer. - Il bit significa binary digit, vale a dire 0 o 1.
- Quindi la più piccola unità informativa
manipolabile. - Con un solo bit possiamo avere sia 1 che 0.
- Con due bit possiamo avere una combinazione di
(22). Con tre bit 3 bits possiamo avere otto
situazioni differenti (222). - Un ottetto è una unità di informazione composta
da 8 bits, e permette di rappresentare caratteri,
intesi come numeri o lettere
12Linguaggio macchina
- Quando nacquero gli elaboratori, l'unico modo di
far comprendere loro un programma era quello di
specificarlo nel loro stesso linguaggio, cioè il
"linguaggio macchina" un linguaggio fatto solo
di bit e di byte, in cui ogni operazione aveva un
codice binario di identificazione e in cui ogni
quantità, numerica o alfabetica, doveva essere
caratterizzata dall'indirizzo dei byte di memoria
centrale che la contenevano.
13linguaggi assemblatori
- Questo rendeva la programmazione un lavoro da
specialisti. Il linguaggio macchina è il
linguaggio programmativo della 1a generazione. - Ben presto si passò ai linguaggi della 2a
generazione, cioè ai cosiddetti "linguaggi
simbolici". - Ai byte si sostituirono dei codici convenzionali,
diversi a seconda del ruolo svolto ad esempio se
il byte 01010101 denotava la somma, esso si
indicò con il codice ADD, facile da ricordare. - I linguaggi simbolici snellirono di molto la
programmazione ed in effetti sono talvolta usati
ancora oggi di solito sono detti "linguaggi
assemblatori" ed essendo analoghi al linguaggio
macchina permettono una programmazione
particolarmente efficiente.
14linguaggi algebrici
- Si arrivò così ai linguaggi della terza
generazione, detti "linguaggi algebrici", che
possono essere utilizzati anche da persone senza
una profonda conoscenza dell'informatica. - Il nome di questi linguaggi deriva dal fatto che
in essi è possibile scrivere un'espressione quasi
come si scrive in algebra e che l'elaboratore è
in grado di riconoscere e tradurre nel proprio
linguaggio macchina.
15La base di conoscenza
- La base di conoscenza o KB (Knowledge Base) è un
insieme di rappresentazioni del mondo, ogni
singola rappresentazione viene denominata
formula, le formule a loro volta sono espresse in
un linguaggio denominato linguaggio di
rappresentazione della conoscenza. - Loggetto della rappresentazione della conoscenza
è lespressione della conoscenza espressa in
forma trattabile automaticamente. Un linguaggio
di rappresentazione della conoscenza è definito
da due aspetti
16regola soggetto verbo complemento
- Disporre le parole rispettando una regola non è
sufficiente per dare loro un significato - es. 1 Il mio cane corre sul prato (sintassi
corretta, significato valido) - es. 2 Il tuo gatto salta sulla macchina
(sintassi corretta, significato valido) - es. 3 Il fiume beve sul mio cane (sintassi
corretta ma priva di significato) - es. 4 Il prato corre nella mia macchina
(sintassi corretta ma priva di significato) - Le regole per la costruzione delle frasi di un
linguaggio sono espresse come produzioni di un
sistema formale denominato grammatica.
17- In ambito più strettamente linguistico si intende
per significato il contenuto semantico o senso di
un segno linguistico. - Il termine semantica (che indicava anticamente,
in medicina, la scienza che valuta i sintomi
delle malattie) fu introdotto da Locke in
filosofia per indicare lo studio dei segni
linguistici. - Morris (1938 e 1946) ha introdotto la
distinzione in sintattica che studia le
relazioni dei segni tra di loro semantica, che
studia le relazioni dei segni con gli oggetti cui
sono applicabili. - Le regole per la costruzione delle frasi di un
linguaggio sono espresse come produzioni di un
sistema formale denominato grammatica.
18Linguaggio
- Per poter elaborare le informazioni, ovvero per
eseguire tutte le operazioni che possono essere
effettuate sulle informazioni (inserimento,
archiviazione, modifica, ordinamento, calcolo,
ecc.) è necessario definire un linguaggio, ossia
uno strumento che sostituisca dei simboli
particolari agli oggetti ed ai concetti. - Esistono diversi tipi di linguaggi, in
particolare si distinguono tra - NATURALI
- FORMALI
19ALFABETO
- Un modo più tecnico per definire il concetto di
linguaggio è introdurre un insieme di simboli
(detto alfabeto) e dire che "un linguaggio è un
particolare insieme di frasi formate dai simboli
dellalfabeto". - possiamo pensare di usare il linguaggio naturale.
- Ad esempio, detto A l'insieme 0,1, diciamo che
L1 è il linguaggio le cui frasi sono formate da n
simboli 0 seguiti da n simboli 1, con n che
denota un qualunque numero intero positivo. In
base a questa definizione, - sono frasi di L1 0011, 01, 000111
- non appartengono a L1 011, cane, ab, etc.
20LINGUAGGI NATURALI
- I linguaggi naturali sono quelli utilizzati
quotidianamente dagli uomini per comunicare tra
loro (italiano, inglese, francese, ecc.) sono
dotati in una notevole ricchezza espressiva e
semantica, ma possono dar luogo ad ambiguità,
imprecisione e difficoltà di interpretazione. - I linguaggi formali sono quelli artificiali,
creati dalluomo secondo regole ben definite e
prive di eccezioni e di ambiguità (Pascal, Cobol,
ecc.) sono dedicati a scopi precisi e
circoscritti.
21ALFABETI
- Ogni tipo di linguaggio, in ogni caso, è
costruito su un alfabeto. - Un alfabeto è definito come un insieme finito e
non vuoto di simboli convenzionali. - Una stringa è costituita da una sequenza
qualsiasi di simboli. - La stringa vuota è una stringa priva di simboli,
indicata con ?. - La lunghezza di una stringa è il numero di
simboli nella stringa, per esempio abc 3.
22- Un linguaggio su un alfabeto I è un insieme di
stringhe costruite su I. - Con I si indica linsieme di tutte le stringhe
su I, inclusa la stringa vuota. - Con I si indica linsieme di tutte le stringhe
su I, esclusa la stringa vuota. - Per esempio, se I 0,1, allora I
0,1,00,10,01,11,000,111,...
23- Esempi di alfabeti per i linguaggi naturali
possono essere - italiano, composto da 21 lettere
- inglese, composto da 26 lettere.
- Esempi di alfabeti per i linguaggi artificiali
possono essere - insieme linea, punto del linguaggio
telegrafico - insieme dei colori rosso,giallo,verde del
linguaggio semaforico - insieme delle cifre 0,1 utilizzato per il
sistema di numerazione binaria.
24GRAMMATICA
- Dopo aver definito un linguaggio L su un alfabeto
I, il primo problema che bisogna risolvere è la
rappresentazione del linguaggio. - Se L è finito, allora basta elencare le stringhe
che compongono il linguaggio. - Se L è infinito, allora bisogna trovare altre
soluzioni - un primo metodo consiste nellintroduzione di un
sistema generativo, denominato grammatica. - In pratica, ogni stringa del linguaggio viene
costruita e strutturata in modo preciso e non
ambiguo utilizzando le regole di una grammatica.
Il linguaggio generato dalla grammatica G si
indica con L(G) e rappresenta linsieme delle
stringhe generabili da G
25AUTOMA
- Il concetto di automa può essere introdotto come
segue per automa si intende un dispositivo che
stabilisce una precisa relazione tra un dato di
ingresso e un dato di uscita, - vincoli di realizzabilità fisica se l'automa è
fatto di parti, queste sono in numero finito
l'ingresso e l'uscita sono denotabili attraverso
un insieme finito di simboli. - L'automa potrebbe essere realizzato da un insieme
di dispositivi elettronici digitali, oppure da
dispositivi meccanici o biologici. - L'obiettivo è di astrarre dai singoli, specifici
casi concreti enucleando le caratteristiche
ritenute essenziali.
26AUTOMA
- In pratica, lautoma accetta in input una
qualsiasi stringa e risponde SI se la stringa
appartiene al linguaggio associato, NO
altrimenti. - Il linguaggio riconosciuto dallautoma A si
indica con L(A) e rappresenta linsieme delle
stringhe riconosciute da A.
27AUTOMA
- In generale, un automa è un dispositivo in grado
di eseguire da solo, cioè in modo automatico,
senza lintervento di una persona, una sequenza
di azioni stabilite in precedenza. - Gli aspetti che caratterizzano il funzionamento
di un automa sono - i simboli forniti dallesterno, che lautoma sa
riconoscere nel loro significato - i simboli prodotti allesterno come risultato del
lavoro svolto - linsieme di tutti i possibili stati che lautoma
può assumere - linsieme di tutte le possibili transizioni di
uno stato allaltro.
28- Il comportamento di un automa può essere
descritto da un algoritmo che specifica le azioni
da compiere e del quale lautoma è lesecutore. - Un automa è definito come una quintupla di
elementi A (I,S,s0,F,T) - alfabeto dei simboli input I (i1, i2,,in),
cioè linsieme finito dei simboli che lautoma è
in grado di ricevere dallesterno,
riconoscendoli - insieme dei possibili stati S (s1, s2,,sn) che
lautoma può assumere durante il suo
funzionamento - stato iniziale s0?S di partenza del funzionamento
dellautoma
29- insieme degli stati finali F?S
- funzione di transizione T (it, st-1) ? (st,ot)
cioè la funzione che indica lo stato successivo
di transizione allistante t e il simbolo che
viene emesso verso lesterno, in relazione di un
determinato stato precedente allistante t-1 e di
un determinato simbolo input. - In generale, il funzionamento di un automa
consiste nellaccettare un simbolo dallesterno
ed emettere un simbolo in uscita, producendo un
cambiamento di stato.
30- Una stringa sarà riconosciuta dallautoma se,
partendo dallo stato iniziale s0 e avendo come
input la stringa, esso dopo un certo numero di
transizioni di stato si troverà in uno stato
finale di F se alla fine lautoma non si trova
in uno stato finale, allora la stringa sarà
rifiutata. - Il funzionamento di un automa può essere
descritto mediante un algoritmo, mediante un
grafo di transizione oppure mediante la tabella
della sua funzione.
31DAL PROBLEMA ALLALGORITMO
- Problema Qualunque problema che ci troviamo a
dover risolvere genera delle domande a cui
dobbiamo trovare una risposta. - Per la risoluzione di un problema si devono
affrontare alcune fasi la prima fase consiste
nellindividuare con precisione la domanda a cui
rispondere e le risposte da ottenere (dati del
problema). - La seconda fase consiste nella costruzione di uno
schema che tenga conto solo degli aspetti
importanti al fine della risoluzione del problema
(modello del problema). - La terza fase è quella più creativa e consiste
nellindividuare le operazioni da compiere per
raggiungere il risultato stabilito del problema
(algoritmo).
32Dati e Azioni
- Nella descrizione del problema occorre anzitutto
definire i dati iniziali (dati di input) sui
quali basare la soluzione del problema essi non
devono essere né sovrabbondanti né troppo
ridotti. - Poi bisogna definire i risultati che si vogliono
ottenere (dati di output). In un problema i dati
possono essere di tipo diverso numerico (solo
cifre stipendio, importo, ecc.), alfabetico
(solo lettere nome, cognome, ecc.) o
alfanumerico (insieme di cifre e lettere codice
fiscale, targa, ecc.). - Le azioni rappresentano le attività che si
compiono in un intervallo
33- operazioni di tipo aritmetico quali i calcoli
(somma, IVA 20, ecc.) o di tipo logico
(confronto tra due valori AgtB, controllo per
stabilire se è stata raggiunta la fine di un
elenco, ecc.). - Per descrivere le azioni è necessario disporre di
un linguaggio le descrizioni delle azioni sono
dette istruzioni. - Una regola pratica per individuare quali sono i
dati e quali le azioni di un problema, consiste
nel trattare i sostantivi come dati e i verbi
come azioni.
34- Modello è una forma semplificata di
rappresentazione della realtà che tiene conto di
tutti e solo gli elementi determinanti per la
risoluzione di un problema (per esempio, la carta
stradale per la risoluzione del problema della
determinazione del percorso più breve tra varie
città). - Algoritmo successione ordinata e finita di tutte
le operazioni che devono essere eseguite per
raggiungere il risultato del problema stabilito
in precedenza. - Implementazione Per implementazione di un
problema si intende il suo trasferimento su un
sistema di elaborazione. - Risolutore Il risolutore è colui che progetta
prima il percorso di risoluzione di un problema e
successivamente lalgoritmo. - Esecutore Lesecutore è lente, nel senso
generico di umano o automatico, che esegue le
azioni secondo le istruzioni dellalgoritmo.
35- Rappresentazione degli algoritmi Per
rappresentare un algoritmo occorre seguire delle
modalità e regole precise. Per quanto riguarda le
modalità, possiamo dividere la sua
rappresentazione in tre parti - 1) riga di intestazione la prima riga contenente
il nome che il risolutore decide di dare
allalgoritmo per ricordare lobiettivo del
problema (Algoritmo Media, Algoritmo Ordina,
ecc.) - 2) sezione dichiarativa una o più righe
contenente la descrizione degli oggetti che
vengono usati dallalgoritmo, cioè nome e tipo di
dati (base, altezza numeri reali
pigrecocostante 3,14 ecc.) - 3) sezione esecutiva inizia con la parola begin
(o inizio) e termina con end (o fine), e contiene
lelenco ordinato delle istruzioni dellalgoritmo
che lesecutore deve eseguire.
36- Vi sono poi delle regole per comunicare le
istruzioni allesecutore - a) per indicare listruzione di acquisizione di
dati si usa il comando input (o leggi) seguito
dal nome della variabile da leggere, messo fra
parentesi se le istruzioni di lettura sono più
di una, si può utilizzare un elenco di variabili
separandole con una virgola - input (base)
- input (altezza)
- oppure
- input (base, altezza)
- b) per indicare listruzione di comunicazione di
dati si usa il comando output (o scrivi) - output (A)
- output (B)
- oppure
- output (A, B)
- c) per indicare lattribuzione di un valore ad
una variabile si usa listruzione di
assegnamento - A BC oppure A ? BC.
37- Esempio 1 Calcoliamo la media di tre numeri
reali assegnati. - algoritmo MEDIA
- variabili
- A,B,C,M numeri reali
- begin
- input (A,B,C)
- M ? (ABC) / 3
- output (M)
- end
38- Esempio 2 Dato un numero intero, calcolare il
precedente e il successivo. - algoritmo PREC_SUCC
- variabili
- N,P,S numeri interi
- begin
- input (N)
- P ? N 1
- S ? N 1
- output (P,S)
- end
39- Esempio 3 Calcolare il punteggio totale
attribuito da una giuria di 10 elementi ad un
iscritto ad una gara. - algoritmo SOMMA
- variabili
- C,S,N numeri interi
- begin
- C ? 0
- S ? 0
- repeat
- input (N)
- S ? S N
- C ? C 1
- until C lt 10
- output (S)
- end
40(No Transcript)
41INFERENZA
- La proprietà che un fatto segue altri fatti è
rispecchiata dalla proprietà di una formula di
essere derivata da unaltra formula. - Linferenza logica genera nuove formule che sono
derivate da formule esistenti. A noi in generale
interessa generare nuove formule che siano
necessariamente vere, nel caso in cui le vecchie
formule siano vere questa relazione viene
chiamata implicazione. - Il termine di ragionamento ed inferenza sono
solitamente sinonimi se usati per descrivere un
procedimento che porta al raggiungimento di
conclusioni.
42INFERENZA
- Linferenza logica è quindi un processo che
realizza la relazione di implicazione fra
formule. - Una formula è valida o necessariamente vera se e
solo se è vera secondo tutte le possibili
interpretazioni in tutti i mondi possibili. Cè
un muro davanti a me e non cè un muro davanti a
me è una formula insoddisfacibile. - Un sistema formale di logica per la descrizione
di cose consiste quindi in - sintassi
- semantica
- una teoria della dimostrazione.
43- Esistono due tipi di logica
- logica proposizionale o logica booleana
- logica del primo ordine.
- Nella logica proposizionale i simboli
rappresentano intere proposizioni e le
proposizioni possono essere combinate usando i
connettivi booleani. - La logica di primo ordine affida la
rappresentazione dei mondi in termini di oggetti
e predicati su oggetti, cioè proprietà degli
oggetti o relazione tra oggetti. - Si utilizzano connettivi e quantificatori che
consentono di scrivere in una unica formula
asserzioni riguardanti tutti gli elementi
delluniverso.
44- Logiche speciali assumono assunzioni logiche
superiori, ad esempio la logica temporale
considera che il mondo sia ordinato da un insieme
di punti di tempo. - i sistemi che usano la teoria della probabilità
possono avere gradi di credenza che possono
variare da 0 (credenza nulla) a 1 (certezza).
45- I sistemi basati sulla logica fuzzy possono avere
gradi di credenza secondo gradi di verità. Un
fatto non deve essere vero o falso, ma può essere
vero fino ad un certo grado. Ad esempio
laffermazione La Juventus è una grande squadra
può essere vera con un certo grado di verità.
46(No Transcript)
47LA LOGICA PROPOSIZIONALE
- La sintassi della logica è molto semplice in
quanto utilizza le costanti logiche, vero-falso,
i simboli preposizionali P e Q e i connettivi
logici. Tutte le formule sono costruite
utilizzando i simboli secondo alcune regole - Le costanti logiche Vero o Falso sono formule
- Un simbolo preposizionale come P o Q è una
formula - Mettere delle parentesi determina una formula
48- Una formula può essere ottenuta combinando
formule semplici con i connettivi logici. - ? (and). Una frase in cui il connettivo
principale è ? (P?Q) è chiamata congiunzione - ? (or). Una formula che usa ?, A ? (P?Q) è una
disgiunzione dei disgiunti (il simbolo ? deriva
dal latino vel che significa o). - Una formula come (P?Q) R è chiamata
implicazione. - La parte (P?Q) rappresenta la premessa o
antecedente, mentre R costituisce la conclusione. - La formula (P?Q) (Q?P) è una
equivalenza - chiamata anche bicondizionale.
- (not). Una formula come P è chiamata negazione.
49- In molti casi la logica preposizionale non
necessita di alcuna relazione per la rilevanza
tra P e Q. Ad esempio la frase 5 è dispari
implica Parigi è una capitale è un poco strana,
ma corretta. - Una confusione inoltre deriva dal fatto che
qualsiasi implicazione è vera quando il suo
antecedente è falso. Ad esempio posso avere 5 è
pari (Falso) Giovanni è stupido (vero). In
realtà dovrei dire P e Q se P è vero, allora Q è
vero, altrimenti non sostengo nulla. - Qualsiasi mondo in cui una formula sia vera
secondo una particolare interpretazione è
chiamato modello
50Le grammatiche.
- Il mondo è costituito da oggetti, cioè identità
individuali con proprietà e relazioni, se le
relazioni sono tali per cui esiste un solo
ingresso si parla di funzioni. - Un linguaggio formale è definito come un insieme
di stringhe in cui ogni stringa è una sequenza di
simboli. Tutti i linguaggi sono quindi un insieme
infinito di simboli che ha bisogno di un modo
conciso di rappresentazione che è dato dalla
grammatica.
51(No Transcript)
52MODELLO
- La conoscenza e la comprensione di fenomeni
complessi in ambito della ricerca sono
rappresentate come modello. Il metodo scientifico
è basato sulla creazione, verifica, modifica del
modello di rappresentazione del mondo. La
finalità del modello è quella di semplificare e
di spiegare la complessità dei diversi fenomeni.
Le scienze applicate usano i modelli per predire,
controllare e comprendere la realtà del mondo.
53- Il modello è una rappresentazione che contiene
gli elementi essenziali degli oggetti o degli
eventi che si realizzano nel mondo reale. - La rappresentazione di un modello può avvenire
secondo due modalità. - FISICA. Come un modello di aeroplano o il modello
di una costruzione. - SIMBOLICA. Come nel linguaggio naturale, un
programma al computer o una serie di equazioni
matematiche.
54- I modelli possono essere facilmente cambiati o
manipolati il cambiamento di un modello
simbolico è certamente più facile rispetto al
cambiamento in un modello fisico. I valori che si
modificano in un modello sono chiamati parametri.
55- La costruzione del modello passa attraverso
quattro fasi - SEMPLIFICAZIONE e IDEALIZZAZIONE si identificano
gli elementi essenziali della struttura (oggetti
ed eventi). - MANIPOLAZIONE e TRASFORMAZIONE rappresentano le
implicazioni derivate dal modello. - RAPPRESENTAZIONE e MISURA sono il formalismo che
descrive gli oggetti, gli eventi e le loro
relazioni. Questo è il processo di traduzione
dalle parole allespressione algebrica in
statistica utilizziamo i simboli dellalgebra
(misure) per dare significato al processo
chiamato misura. - VERIFICA. Le implicazioni derivate sono
confrontate con i risultati o le osservazioni nel
mondo reale
56(No Transcript)
57...dal bit al linguaggio R
58In principio era il bit
- Per intenderci 0 e 1, il linguaggio macchina.
- Tra gli anni '40 e gli anni '50, la
programmazione degli elaboratori elettronici era
destinata solamente a una ristrettissima cerchia
di esperti.
59- Progenitore di tutti i computer è l'ENIAC
(Electronic Numerical Integrator And Calculator
), al cui progetto partecipò J. von Neumann.
60EVOLUZIONE STORICA DEL CALCOLO
61 62Linguaggio Assembly
63PRIMO VERO LINGUAGGIO DI PROGRAMMAZIONE
- FORTRAN (FORmula TRANslation)
- L'ideatore fu John Backus.
- Lo scopo principale era quello di automatizzare
calcoli matematici e scientifici. - Sulla sua scia vennero progettati moltissimi
altri linguaggi di alto livello.
64Linguaggio di programmazione di secondo livello
- Algol
- Progettato da un comitato internazionale con
l'obiettivo di creare un linguaggio universale. - La sua indipendenza dalla macchina concedeva
maggiore creatività ai progettisti.
65Aree di applicazione
- ALGOL è stato utilizzato in particolare da
scienziati europei e americani interessati a
ricerche sui computer. - La sua applicazione in ambito commerciale è
stata interdetta. - ALGOL 60 divenne comunque lo standard per la
pubblicazione di algoritmi.
661960COBOL
- COmmon Business Oriented Language
- Utilizzato per sviluppare programmi gestionali.
- La sua diffusione è dovuta alla facilità della
sue istruzioni, molto simili a frasi inglesi. - Trovando una grandissima applicazione nelle
aziende, ebbe molto successo.
67Per i programmatori pricipiantiBASIC
- Beginner's All purpose Symbolic Instruction Code
- Sviluppato a Dartmouth College, grazie al
progetto di J. Kemeny e T. Kurtz (1964). - E tra i migliori linguaggi utilizzati nelle
scuole a scopo didattico. - Realizza un'ampia gamma di applicazioni e dispone
di molte versioni. - Dal BASIC discende il filone dei vari Visual
BASIC, linguaggi visuali orientati agli oggetti,
con l'interfaccia grafica (bottoni, finestre
etc.).
68Chi è Pascal?
- Sviluppato da Niklaus Wirth, membro
dell'International Federation of Information
Processing (IFIP). - La pubblicazione originale del linguaggio avvenne
nel 1971, ma fu scelto per linsegnamento dagli
anni 60 alla fine degli anni 80. - Consente lo sviluppo di programmi ben strutturati
e ben organizzati. - E diretto discendente di ALGOL 60.
69Il più basso tra i più altiil linguaggio C
- Linguaggio ad alto livello definito come il
linguaggio di piu' basso livello tra i linguaggi
ad alto livello. - Dennis Ritchie realizzò la prima versione nel
1972 a Bell Laboratories. - I suoi principi erano presi dal precedente
linguaggio B e il B aveva ereditato certe
caratteristiche da BCPL e CPL. - Nasce per lo sviluppo di sistemi operativi,
quindi per software di basso livello.
70Combined Programming Language (CPL)
- Problema
- occupava troppo spazio per poter girare in molte
applicazioni. - Soluzione
- 1967 venne creato il BCPL (Basic CPL), versione
ridotta che non perde le sue funzioni di base.
71- La potenza e flessibilità del C apparve subito
evidente e per questo il sistema operativo di
Unix, scritto in assembly, venne riscritto
immediatamente in C. - Riesce a mantenere semplicita' d'uso ma
72Cè un trucco
- Affida le funzioni più complesse a un'insieme di
librerie esterne, esattamente come il MacOS.
73C
- E' un'estensione del C.
- Fornisce una serie di funzioni che potenziano il
C. - Software Engineering
- Grafica
74- Sviluppato nei primi anni '90 alla Sun
Microsystem. - E' orientato agli oggetti.
- E' indipendente dalla piattaforma.
- Contiene strumenti per il networking.
- E' progettato per eseguire codici in modo sicuro.
- Il bytecode viene eseguito dalla JVM (Java
Virtual Machine). -
75LINGUAGGIO R
- Nasce in Nuova Zelanda.
- Basato sulla probabilità e la statistica.
- Usato per la progettazione di software di
biologia molecolare - Esistono diverse versioni.
- Progetto Bionconductor.
76Però..
- I linguaggi si dividono infine in base alla
modalità di esecuzione - Un file.exe è un file che è stato scritto in un
certo linguaggio X e poi è stato tradotto nel
linguaggio macchina (il linguaggio X è
compilato). - Un file.bat è un file che viene eseguito senza
dover essere compilato di volta in volta
(linguaggio interpretato).
77- Ora,resta solo un'ultima,fondamentale e
importante domanda
78Perchè tutti questi linguaggi?
- Perchè col tempo sono cambiate le esigenze
- Negli anni '60 tutto era molto sperimentale
- Gli anni '70 hanno portato alla diffusione dei
linguaggi procedurali. Il software è artigianato - Gli anni '80 portano alla diffusione dei primi pc
e alla pragrammazione ad oggetti. Il software è
manifattura seriale - Gli anni '90 portano alla programmazione ad
aspetti. Il software è commerciale - Gli anni 2000 portano allo sviluppo complesso.
Non esiste più il concetto di software ma di
servizio.
79Conclusioni
- Ciascun programmatore sceglierà sempre e
comunque uno specifico linguaggio da utilizzare
in base al problema da risolvere.