La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Biologia Computazionale Giulio Pavesi

Presentazioni simili


Presentazione sul tema: "Biologia Computazionale Giulio Pavesi"— Transcript della presentazione:

1 Biologia Computazionale Giulio Pavesi

2 Biologia Computazionale? Computational Biology, sometimes referred to as bioinformatics, is the science of using biological data to develop algorithms and relations among various biological systems. Prior to the advent of computational biology, biologists were unable to have access to large amounts of data. Researchers were able to develop analytical methods for interpreting biological information, but were unable to share them quickly among colleagues (Wikipedia)

3 Biologia Computazionale? Bioinformatics: Research, development, or application of computational tools and approaches for expanding the use of biological, medical, behavioral or health data, including those to acquire, store, organize, analyze, or visualize such data. Computational Biology: The development and application of data-analytical and theoretical methods, mathematical modeling and computational simulation techniques to the study of biological, behavioral, and social systems.

4 Programmare? Algoritmo: sequenza di operazioni che a partire da un insieme di dati iniziali (input) produce un insieme di dati finali (output) Algoritmo: sequenza di operazioni che a partire da un insieme di dati iniziali (input) produce un insieme di dati finali (output) Un algoritmo descrive il procedimento per risolvere un problema, e può essere scritto in linguaggio naturale o con apposite rappresentazioni (pseudocodici, diagrammi di flusso) ma NON dipende da linguaggi di programmazione Un algoritmo descrive il procedimento per risolvere un problema, e può essere scritto in linguaggio naturale o con apposite rappresentazioni (pseudocodici, diagrammi di flusso) ma NON dipende da linguaggi di programmazione Programmazione: implementazione di uno o più algoritmi in un dato linguaggio di programmazione descrivo le operazioni con comandi che possono essere eseguiti da un computer Programmazione: implementazione di uno o più algoritmi in un dato linguaggio di programmazione descrivo le operazioni con comandi che possono essere eseguiti da un computer

5 Il primo algoritmo della storia "If some one say: "You divide ten into two parts: multiply the one by itself; it will be equal to the other taken eighty-one times." Computation: You say, ten less thing, multiplied by itself, is a hundred plus a square less twenty things, and this is equal to eighty-one things. Separate the twenty things from a hundred and a square, and add them to eighty-one. It will then be a hundred plus a square, which is equal to a hundred and one roots. Halve the roots; the moiety is fifty and a half. Multiply this by itself, it is two thousand five hundred and fifty and a quarter. Subtract from this one hundred; the remainder i s two thousand four hundred and fifty and a quarter. Extract the root from this; it is forty-nine and a half. Subtract this from the moiety of the roots, which is fifty and a half. There remains one, and this is one of the two parts. [Risolveva: (10-x) 2 =81x]

6

7 Le leggi fondamentali dellinformatica e della programmazione Un computer fa quello che gli dici di fare, non quello che vuole. Un computer fa quello che gli dici di fare, non quello che vuole.... anche se, alle volte, interpreta il tutto in modo molto personale.... anche se, alle volte, interpreta il tutto in modo molto personale. Se qualcosa può andar male, lo farà. Se qualcosa può andar male, lo farà. Se qualcosa può andar male, lo farà nel peggior modo possibile. Se qualcosa può andar male, lo farà nel peggior modo possibile. Errare è umano, ma per incasinare tutto veramente ci vuole un computer. Errare è umano, ma per incasinare tutto veramente ci vuole un computer.

8 Linguaggi di programmazione I computer capiscono soltanto il proprio linguaggio macchina I computer capiscono soltanto il proprio linguaggio macchina Insieme di istruzioni di basso livello che consentono di Insieme di istruzioni di basso livello che consentono di leggere/scrivere nella memoria leggere/scrivere nella memoria eseguire operazioni sul contenuto dei registri (tipo somma e operazioni logiche) eseguire operazioni sul contenuto dei registri (tipo somma e operazioni logiche) saltare da una parte allaltra del programma saltare da una parte allaltra del programma controllare se una data condizione è verificata controllare se una data condizione è verificata Quindi, il linguaggio utilizzato varia a seconda dell architettura e del sistema operativo (PC vs Mac, PC Windows vs PC Linux etc...) Quindi, il linguaggio utilizzato varia a seconda dell architettura e del sistema operativo (PC vs Mac, PC Windows vs PC Linux etc...)

9 Linguaggio macchina Esempio di istruzioni in linguaggio macchina Esempio di istruzioni in linguaggio macchina Leggi il contenuto della cella di memoria Leggi il contenuto della cella di memoria Leggi il contenuto della cella di memoria Leggi il contenuto della cella di memoria Somma i due valori letti Somma i due valori letti Scrivi il risultato della somma nella cella di memoria Scrivi il risultato della somma nella cella di memoria (più, ovviamente, possibilità di condizioni e cicli)

10 Linguaggio macchina Esempio di istruzioni in linguaggio macchina, lettura di un file da disco Esempio di istruzioni in linguaggio macchina, lettura di un file da disco Fai partire il motore che fa ruotare il disco Fai partire il motore che fa ruotare il disco Cerca sul disco la posizione dellinizio del file Cerca sul disco la posizione dellinizio del file Copia il contenuto di una parte del file in memoria RAM Copia il contenuto di una parte del file in memoria RAM (di solito, operazioni di questo tipo sono gestite dal sistema operativo, che fa da interfaccia per tutto quello che riguarda lutilizzo dellhardware della macchina)

11 Linguaggi di Programmazione Scrivere un programma in linguaggio macchina è un incubo (detto da uno che lha fatto!) Scrivere un programma in linguaggio macchina è un incubo (detto da uno che lha fatto!) Esistono linguaggi di programmazione di alto livello Esistono linguaggi di programmazione di alto livello Per poter essere compresi dal programma devono prima essere tradotti da programmi appositi, ovvero, trasformati nel linguaggio macchina della macchina che stiamo usando Per poter essere compresi dal programma devono prima essere tradotti da programmi appositi, ovvero, trasformati nel linguaggio macchina della macchina che stiamo usando La traduzione dipende dallarchitettura del computer (ovvero il processore) e dal sistema operativo in cui il programma viene tradotto La traduzione dipende dallarchitettura del computer (ovvero il processore) e dal sistema operativo in cui il programma viene tradotto Il computer capisce un linguaggio di programmazione se è installato un apposito traduttore specifico del linguaggio Il computer capisce un linguaggio di programmazione se è installato un apposito traduttore specifico del linguaggio

12 Linguaggi di Programmazione Il programma può essere tradotto in linguaggio macchina prima dellesecuzione, o durante lesecuzione Il programma può essere tradotto in linguaggio macchina prima dellesecuzione, o durante lesecuzione Linguaggi compilati Linguaggi compilati Il traduttore (compilatore) traduce tutto il programma in una volta sola, producendo un programma in linguaggio macchina (eseguibile) Il traduttore (compilatore) traduce tutto il programma in una volta sola, producendo un programma in linguaggio macchina (eseguibile) Esempio: C, C++ Esempio: C, C++ Linguaggi interpretati Linguaggi interpretati Il traduttore (interprete) traduce unistruzione alla volta, mano a mano che il programma viene eseguito Il traduttore (interprete) traduce unistruzione alla volta, mano a mano che il programma viene eseguito Esempio: Perl, Python Esempio: Perl, Python I linguaggi compilati sono in genere molto più veloci degli interpretati (cè in meno il tempo di traduzione) I linguaggi compilati sono in genere molto più veloci degli interpretati (cè in meno il tempo di traduzione) Java: prima compilato in un linguaggio macchina virtuale (byte code) che viene poi interpretato quando il programma viene eseguito portabile su diversi computer, indipendentemente da CPU e SO Java: prima compilato in un linguaggio macchina virtuale (byte code) che viene poi interpretato quando il programma viene eseguito portabile su diversi computer, indipendentemente da CPU e SO

13 Linguaggi di Programmazione Linguaggi compilati, vantaggi Linguaggi compilati, vantaggi Più veloce lesecuzione Più veloce lesecuzione Più flessibili e più maneggiabili dal programmatore esperto Più flessibili e più maneggiabili dal programmatore esperto Una volta compilato, se si ha lo stesso computer/SO è sufficiente avere leseguibile Una volta compilato, se si ha lo stesso computer/SO è sufficiente avere leseguibile Linguaggi interpretati, vantaggi Linguaggi interpretati, vantaggi Più semplici da utilizzare per il programmatore inesperto Più semplici da utilizzare per il programmatore inesperto Il programma può essere eseguito su qualsiasi computer/SO, a patto che sia installato il traduttore/interprete per il linguaggio Il programma può essere eseguito su qualsiasi computer/SO, a patto che sia installato il traduttore/interprete per il linguaggio Perl: vedi appunti del corso, è un linguaggio interpretato e non tipizzato Perl: vedi appunti del corso, è un linguaggio interpretato e non tipizzato

14 Linguaggi di programmazione Un qualsiasi linguaggio di programmazione ha una sua precisa sintassi Un qualsiasi linguaggio di programmazione ha una sua precisa sintassi Interpreti e compilatori verificano innanzitutto che la sintassi sia corretta Interpreti e compilatori verificano innanzitutto che la sintassi sia corretta Un qualsiasi linguaggio di programmazione ha un insieme di comandi o comunque parole chiave che sono interpretate come istruzioni da eseguire Un qualsiasi linguaggio di programmazione ha un insieme di comandi o comunque parole chiave che sono interpretate come istruzioni da eseguire Interpreti e compilatori verificano anche che i comandi del programma siano effettivamente riconosciuti come istruzioni del linguaggio Interpreti e compilatori verificano anche che i comandi del programma siano effettivamente riconosciuti come istruzioni del linguaggio

15 Linguaggi di programmazione Regole di sintassi (esempi) Regole di sintassi (esempi) Ogni comando deve essere seguito da ; (esempio printCiao;) Ogni comando deve essere seguito da ; (esempio printCiao;) Per ogni parentesi aperta (tonda, quadra o graffa) deve esserci la corrispondente parentesi chiusa Per ogni parentesi aperta (tonda, quadra o graffa) deve esserci la corrispondente parentesi chiusa


Scaricare ppt "Biologia Computazionale Giulio Pavesi"

Presentazioni simili


Annunci Google