BIOINFO3 - Lezione 19 RICAPITOLANDO…

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

I Linguaggi di programmazione
Traduzione ed Interpretazione
ESERCITAZIONE R 12,19 marzo 2012 Mario Mastrangelo
Sistema operativo MS-DOS
Il Software.
Software di base: Linguaggi di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Recupero debito quarto anno Primo incontro
Evoluzione dei linguaggi di programmazione
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
I linguaggi di programmazione
Algoritmi e Programmazione
Dr. Francesco Fabozzi Corso di Informatica
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Struttura dei sistemi operativi (panoramica)
Unità Didattica 2 I Linguaggi di Programmazione
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Corso di PHP.
9. HARDWARE KERNEL O NUCLEO GESTORE DELLA MEMORIA GESTORE DELLE PERIFERICHE GESTORE DEI FILE INTERFACCIA UTENTE - GUI(Graphic Interface Unit) 2 ECDL MODULO.
...dal bit al linguaggio R. In principio era il bit… …Per intenderci 0 e 1, il linguaggio macchina. Tra gli anni '40 e gli anni '50, la programmazione.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lo sviluppo del software e i linguaggi di programmazione
Il Sistema Operativo (1)
BIOINFO3 - Lezione 121 Alter Table Alter table permette di cambiare la struttura di tabelle esistenti. Ad esempio e` possibile aggiungere o cancellare.
Creare pagine web Xhtlm. Struttura di una pagina.
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
BIOINFO3 - Lezione 261 ESERCIZIO Esercizio. Leggere delle sequenze di DNA (una per riga, a partire da inizio riga) e stampare solo le sequenze lunghe più
PARSERIZZAZIONE DI FILE
BIOINFO3 - Lezione 361 RICERCA DI SIMILARITA TRA SEQUENZE Un altro problema comunissimo in bioinformatica è quello della ricerca di similarità tra sequenze.
BIOINFO3 - Lezione PARSING RISULTATI DI BLAST Nella lezione di ieri abbiamo visto come automatizzare lesecuzione di BLAST. Oggi proviamo.
BIOINFO3 - Lezione 321 ACCESSO REMOTO AL SERVER SIBILLA Attraverso Internet è possibile accedere al server sibilla.cribi.unipd.it. Potrete così effettuare.
BIOINFO3 - Lezione 101 GLI IPERTESTI Una delle innovazioni introdotte da HTML e dal WWW in generale, rispetto ad un testo normale è sicuramente la possibilità
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
BIOINFO3 - Lezione 15 ISTRUZIONI
BIOINFO3 - Lezione 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
BIOINFO3 - Lezione 271 PATH DEL FILE Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto.
REDIREZIONE INPUT E OUTPUT
Linguaggi per COMUNICARE
INTRODUZIONE A JAVASCRIPT
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Corso di Architetetture degli Elaboratori, A.A. 2004/ Architettura degli Elaboratori Elisa B.P. Tiezzi Orario ricevimento: Giovedì, ( Il materiale.
Interpreti e compilatori
Concetti Fondamentali sulla Programmazione
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Il software Claudia Raibulet
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Eprogram informatica V anno.
Programmazione dei Calcolatori Elettronici
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

BIOINFO3 - Lezione 19 RICAPITOLANDO… Un ALGORITMO rappresenta la successione dei passi da eseguire per risolvere un PROBLEMA. L’algoritmo può essere descritto formalmente attraverso un FLOW-CHART. Algoritmi e flow-chart non sono però direttamente comprensibili ed eseguibili da un computer. Per far eseguire l’algoritmo al computer è necessario scrivere un PROGRAMMA che lo implementi. Il programma è una sequenza di ISTRUZIONI (che richiedono al computer l’esecuzione di AZIONI) ed è scritto in un LINGUAGGIO di programmazione comprensibile al computer BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 SCHEMA LOGICO Possiamo ricapitolare questi concetti in un semplice schema ? ALGORITMO PROGRAMMA PROBLEMA ? BIOINFO3 - Lezione 19

LINGUAGGI DI PROGRAMMAZIONE BIOINFO3 - Lezione 19 LINGUAGGI DI PROGRAMMAZIONE L’unico linguaggio di programmazione comprensibile dal computer è il linguaggio macchina, formato da sequenze di bit secondo un determinato codice che è tipico del processore. Ogni processore ha il suo linguaggio macchina La prima evoluzione verso una programmazione più umana si è avuta negli anni 50 con l’introduzione di un codice mnemonico per ogni istruzione macchina e di nomi simbolici per indicare gli indirizzi di memoria. Nasceva il linguaggio chiamato ASSEMBLER, anch’esso caratteristico del singolo processore,in corrispondenza 1:1 con il linguaggio macchina, BIOINFO3 - Lezione 19

LINGUAGGI DI PROGRAMMAZIONE BIOINFO3 - Lezione 19 LINGUAGGI DI PROGRAMMAZIONE Successivamente, a partire dagli anni 60, nascono i cosiddetti linguaggi ad alto livello, che utilizzano istruzioni tratte dal linguaggio naturale (abbiamo visto quanto naturali siano le istruzioni di SQL). ANNI 60 ALGOL ALGOrithmic Language (applicazioni matematiche) FORTRAN FORmula TRANslation (applicazioni scientifiche) COBOL COmmon Business Oriented Language (appl. gestionali) ANNI 70-80 BASIC Beginners All purpose Symbolic Instruction Code (per principianti) PASCAL LISP LISt Processing (elaborazioni di liste ed A.I.) PROLOG PROgramming LOGic (Logica Matematica) C C++ (Programmazione ad oggetti) BIOINFO3 - Lezione 19

LINGUAGGI DI PROGRAMMAZIONE BIOINFO3 - Lezione 19 LINGUAGGI DI PROGRAMMAZIONE ANNI 90 Con l’avvento dei sistemi operativi a finestre (WINDOWS) nascono i linguaggi visuali che permettono la gestione di interfacce grafiche semplici e user-friendly VISUAL C++ VISUAL BASIC JAVA (dal nome di un caffè in polvere, facilmente trasportabile e solubile, permette di eseguire dei programmi, installati su pagine WEB direttamente nei browser (e quindi non sul server ma sul client, eventualmente può interagire con il server) PERL Practical Extraction and Report Language Pur se nato negli anni 80, nella seconda metà degli anni 90 assistiamo al successo incredibile di Perl, che diventa il linguaggio preferito per preparare degli script per l’amministrazione di sistema nel sistema operativo LINUX e soprattutto per scrivere programmi cgi-bin da eseguire nei server WEB. Come dice il nome stesso Perl è vincente per la sua praticità, semplicità, potenza e compattezza (in un programma Perl di poche righe si possono concentrare decine e decine di righe di programma scritte in C) soprattutto nell’estrazione di informazione da file (“PARSERIZZAZIONE”) e nella preparazione di report BIOINFO3 - Lezione 19

GERARCHIA DEI LINGUAGGI BIOINFO3 - Lezione 19 GERARCHIA DEI LINGUAGGI Come dicevamo, ogni programma scritto in un qualsiasi linguaggio dovrà alla fin fine essere tradotto in linguaggio macchina per poter essere eseguito dal computer. L’ASSEMBLER è tradotto direttamente in linguaggio macchina da un programma ASSEMBLATORE. I linguaggi ad alto livello dovranno perciò a loro volta essere preventivamente tradotti in ASSEMBLER da un programma TRADUTTORE (che vedremo potrà essere di due tipi) PROGRAMMA IN UN LINGUAGGIO AD ALTO LIVELLO TRADUTTORE PROGRAMMA IN ASSEMBLER PROGRAMMA IN LINGUAGGIO MACCHINA ASSEMBLATORE BIOINFO3 - Lezione 19

COMPILATORI ED INTERPRETI BIOINFO3 - Lezione 19 COMPILATORI ED INTERPRETI L’esecuzione di un programma scritto in un linguaggio ad alto livello può avvenire in due differenti modalità: Con un COMPILATORE l’intero programma (sorgente) viene tradotto (compilato) in un programma equivalente in assembler. Si ottiene così un programma in codice macchina (eseguibile). Quando si vuole eseguire il programma si chiederà perciò al computer di eseguire direttamente la versione eseguibile.Ogni modifica del sorgente comporta la ricompilazione del programma per ottenere una versione aggiornata dell’eseguibile. Con un INTERPRETE, per eseguire un programma sorgente si chiederà invece l’esecuzione di un programma interprete il quale leggerà man mano la singola istruzione del sorgente e solo in quel momento eseguirà delle corrispondenti istruzioni macchina. I programmi compilati sono quindi molto più veloci di quelli interpretati, ma quest’ultimi sono più rapidi da modificare in fase di sviluppo e collaudo. Sia i compilatori che gli interpreti verificano la correttezza sintattica del programma. BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 PERL L’esecuzione di un programma scritto nel linguaggio PERL avviene tramite un interprete, quindi questo linguaggio non è il più indicato per programmi in cui il tempo di esecuzione sia un fattore critico. Da linea di comando UNIX l’esecuzione di un programma scritto nel linguaggio perl e contenuto in un file (che indichiamo con nome-file) può avvenire in due modi: perl nome-file nome-file In entrambi i casi viene attivato l’interprete, però nel secondo caso ciò avviene solo se la prima riga del file nome-file ha una sintassi particolare (#!/usr/bin/perl) che a sua volta richiama l’interprete. BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 PATH DEI PROGRAMMI Sia l’interprete perl sia il programma da eseguire saranno localizzati in qualche posto nell’albero delle directory Normalmente l’interprete Perl si trova nella directory /usr/bin (se non sappiamo dove si trova possiamo scoprirlo con il comando whereis) Quindi significa che esiste una directory usr che contiene una directory bin che contiene il programma perl (l’interprete). usr bin perl BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 PATH DEI PROGRAMMI Esiste una variabile d’ambiente chiamata PATH, definita dall’amministratore di sistema, che specifica in quali directory ricercare un programma da eseguire. Per verificarne il valore possiamo eseguire il comando UNIX ‘env’ che mostra i valori correnti di tutte le variabili d’ambiente (che sono settate all’inizio del nostro collegamento) BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 PATH DEI PROGRAMMI Se nel PATH è indicata la directory /usr/local allora potremo richiamare l’interprete perl da qualunque directory in cui ci trovassimo. Altrimenti è necessario spostarsi nella directory /usr/local con un comando di cd (change directory) Oppure (sempre se /usr/local non fosse definita nel PATH) specificare il path completo del file da eseguire (l’interprete perl) BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 PATH DEI PROGRAMMI Lo stesso discorso vale per il nostro programma, scritto in Perl, che vogliamo eseguire. Supponiamo che esso si chiami pippo.pl Anch’esso si troverà in una certa posizione nell’albero delle directory, ad esempio, se sono l’utente bioinfo3-01, nella mia home directory, ovvero in /home/bioinfo3-01/ home bioinfo3-01 pippo.pl usr bin perl BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 PATH DEI PROGRAMMI Se ci troviamo nella stessa directory dove si trova il file da far eseguire all’interprete possiamo riferirci ad esso semplicemente con il suo nome. Altrimenti, se siamo in un’altra directory dobbiamo specificare il suo path completo In questo esempio mi trovavo nella mia directory chiamata b. Posso quindi far eseguire direttamente il programma pgmm.pl residente proprio in b N.B. E’ comunque necessario dire che il programma si trova nella directory corrente usando ./ in quanto la mia directory /b non si trovava nel PATH. Se invece mi trovavo in un’altra directory avrei dovuto specificare il path (assoluto o relativo del programma) BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 DIRITTO DI ESECUZIONE E’ importante verificare che l’utente che vuol eseguire il programma ne abbia effettivamente il diritto. Uno degli errori più comuni, quando si prepara un programma cgi-bin da far eseguire al server web httpd, è quello di dimenticarsi di concedere il diritto di eseguire il nostro programma all’utente del sistema deputato all’esecuzione del server web. Si può usare ls –al per verificare i diritti sui programmi di una certa directory Nell’esempio tutti gli utenti del sistema hanno il diritto di eseguire (x) il programma pgmm.pl. La prima tripletta rwx assegna all’utente nicola il diritto di leggere (r), scrivere (w) ed eseguire il file; gli utenti del gruppo lab potranno solo leggere ed eseguire (x) il file ma non scriverlo (modificarlo o cancellarlo), manca w; gli altri utenti (e quindi anche quello che esegue httpd) possono analogamente leggerlo o eseguirlo BIOINFO3 - Lezione 19

BIOINFO3 - Lezione 19 CHMOD Se desideriamo cambiare i diritti sui file possiamo eseguire il comando CHMOD. Di solito, come nell’esempio appena visto, va bene assegnare come diritti il valore 755 prima posizione r seconda posizione w terza posizione x chmod 755 pgmm.pl 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 BIOINFO3 - Lezione 19

PARAMETRI DEL PROGRAMMA BIOINFO3 - Lezione 19 PARAMETRI DEL PROGRAMMA A questo punto il programma è effettivamente eseguibile. Possiamo passare dei parametri al programma elencandoli separati da spazio nella stessa riga del comando di esecuzione, dopo il nome del programma nome-file parametro1 parametro2 parametron oppure perl nome-file parametro1 parametro2 parametron Vedremo come, dall’interno del programma Perl, sarà possibile recuperare questi parametri BIOINFO3 - Lezione 19

RE-DIREZIONE INPUT E OUTPUT BIOINFO3 - Lezione 19 RE-DIREZIONE INPUT E OUTPUT Se non specificato diversamente il programma prende il suo input dallo standard input, indicato con il simbolo STDIN (la tastiera) e produce il suo output sullo standard output, indicato con il simbolo STDOUT (il video). Come abbiamo già visto con il comando mysqldump, usando i simboli < o > è possibile re-direzionare input ed output. Ad esempio si potrà leggere l’input da un file o stampare l’output su un altro file (ovviamente anche entrambi contemporaneamente) ./pippo.pl <prova >risultati Nell’esempio si chiede l’esecuzione del file pippo.pl, posto nella directory corrente (in realtà ad essere eseguito è l’interprete Perl se pippo.pl è scritto in PERL e contiene nella prima riga #!/usr/bin/perl). L’input è preso dal file “prova” della directory corrente, anziché da tastiera, e l’output scritto sul file risultati anziché a video. Il file risultati se non esiste già nella directory corrente (in questo caso viene sovrascritto!) viene creato ex-novo per l’occasione. BIOINFO3 - Lezione 19

RIEPILOGO Linguaggi di programmazione Compilatori ed interpreti BIOINFO3 - Lezione 19 RIEPILOGO Linguaggi di programmazione Compilatori ed interpreti Esecuzione di un programma (Perl): Path del programma, diritti, parametri, input e output BIOINFO3 - Lezione 19