Corso di Laurea in Biotecnologie Informatica (Programmazione)

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

I Linguaggi di programmazione
Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Meccanismi di IPC Problemi classici di IPC
Sistema operativo MS-DOS
Il Software.
Software di base: Linguaggi di Programmazione
Scomposizione funzionale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Linguaggi algoritmici
Recupero debito quarto anno Primo incontro
Evoluzione dei linguaggi di programmazione
I linguaggi di programmazione
Linguaggi di programmazione
Algoritmi e Programmazione
Massa Laura Mela Enrica
Generalità Linguaggio e Macchina Astratta
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Dr. Francesco Fabozzi Corso di Informatica
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Struttura dei sistemi operativi (panoramica)
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Strutture di controllo in C -- Flow Chart --
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Da Problema a Programmazione
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
Introduzione al linguaggio assemby del microprocessore a parte
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Le basi della programmazione
Lo sviluppo del software e i linguaggi di programmazione
Un esempio: Calcolo della potenza n-esima di un numero reale
Macchine astratte, linguaggi, interpretazione, compilazione
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Linguaggi per COMUNICARE
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
Dal problema all’ algoritmo
la traduzione dei programmi
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Scrivere e compilare programmi
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Algoritmi.
Concetti Fondamentali sulla Programmazione
1 Macchine astratte, linguaggi, interpretazione, compilazione.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Il software Claudia Raibulet
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Unità di apprendimento 6
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Corso di Laurea in Biotecnologie Informatica (Programmazione) Linguaggi, compilatori e interpreti Anno Accademico 2009/2010

Come risolvere un problema Le 3 tappe fondamentali di risoluzione di un problema algoritmico sono: Problema Formulazione del problema da risolvere Costruzione del metodo di risoluzione del problema Algoritmo Esecuzione dell’algoritmo progettato da parte di un esecutore (umano o meccanico) Esecuzione

L’esecutore calcolatore Se l’esecutore dell’algoritmo è un calcolatore è necessario implementare (o codificare) l’algoritmo tramite un opportuno Linguaggio di Programmazione e ottenere quindi un Programma

La Programmazione La Programmazione (in Informatica) è l’attività svolta per creare un Programma Il linguaggio può essere: direttamente comprensibile dal calcolatore non direttamente comprensibile dal calcolatore

I linguaggi di programmazione I linguaggi di programmazione si possono suddividere fondamentalmente in tre categorie: Linguaggio Macchina Linguaggio Assembler Linguaggi ad alto livello Basso livello

Linguaggio Macchina E’ una codifica utilizzata fino alla prima metà degli anni ’50 Gli algoritmi vengono codificati in word di 0 e 1 (word di bit) Il calcolatore esegue direttamente il programma Dalla seconda metà degli anni ’50 il linguaggio di codifica incomincia ad alzarsi di livello, cioè astrae dalle caratteristiche fisiche della macchina. Alla macchina viene affidato il faticoso compito di tradurre il programma in word di bit.

Linguaggio Assembler Si avvicina molto al linguaggio macchina Definisce un set di operazioni elementari Esiste una corrispondenza quasi biunivoca tra istruzione e numero di operazioni eseguite dal sistema Il calcolatore non esegue direttamente il programma e si ha la necessità di un traduttore che trasformi il programma in word di bit

Linguaggi ad alto livello Si avvicinano molto al linguaggio naturale Le istruzioni sono astratte dalle caratteristiche fisiche della macchina (ognuna di esse può corrispondere ad un elevato numero di operazioni macchina) Sono di facile utilizzo Il calcolatore non esegue direttamente il programma e si ha la necessità di un traduttore che trasformi il programma in word di bit

Linguaggi ad alto livello Alcuni esempi… Java C C++ Pascal

Comparazione tra linguaggi Per intuire la differenza tra un linguaggio ad alto livello e uno a basso livello, si può fare il seguente esempio tratto dal linguaggio naturale: l’istruzione ad alto livello “Esci dalla stanza” corrisponde alla seguente sequenza di istruzioni a basso livello: “Individua la porta” “Girati verso la porta” “Cammina verso la porta” “Gira la maniglia” “Apri la porta ed esci”

Come risolvere un problema … su calcolatore Problema Formulazione del problema da risolvere Costruzione del metodo di risoluzione del problema Algoritmo Codifica dell’algoritmo in un linguaggio di programmazione (ad alto livello) Programma Traduzione ed esecuzione Traduzione del programma in linguaggio macchina ed esecuzione

Un po’ di terminologia… Programmare in un determinato linguaggio ad alto livello significa produrre un file di puro testo che prende il nome di codice sorgente (o semplicemente sorgente) La traduzione in linguaggio macchina di un codice sorgente prende il nome di codice eseguibile (o semplicemente eseguibile)

Il traduttore… E’ necessario quando si programma utilizzando un linguaggio diverso dal linguaggio macchina Traduce il codice sorgente del programma in istruzioni macchina, cioè stringhe (word) di bit le istruzioni macchina sono operazioni elementari che agiscono direttamente sulle memorie del calcolatore Dipende dal linguaggio di programmazione usato e dal tipo di processore (CPU) montato sul calcolatore

Tipi di traduttore Compilatore Traduce in linguaggio macchina un codice sorgente scritto in uno specifico linguaggio ad alto livello Interprete Analizza e traduce il codice sorgente, scritto in linguaggio ad alto livello, e contemporaneamente compie le corrispondenti elaborazioni

Il compilatore Input Data Compilatore codice eseguibile Output Data codice sorgente Input Data Compilatore Esecuzione del codice eseguibile codice eseguibile Output Data Il codice eseguibile viene memorizzato sull’hard disk e può essere eseguito all’occorrenza, senza ricompilare ogni volta codice sorgente (a meno che questo non venga modificato)

L’interprete Input Interprete Output codice sorgente Non viene prodotto un codice eseguibile sull’hard disk perché il programma viene eseguito direttamente dall’interprete stesso. Il programma deve quindi essere interpretato ogni volta che deve essere eseguito

Compilatore vs Interprete Esecuzione efficiente Codice eseguibile non portabile Ogni modifica del programma richiede una nuova compilazione Interprete Esecuzione meno efficiente Codice portabile Esecuzione immediata in seguito ad ogni modifica

La traduzione dei programmi Java Un compilatore Java produce un codice intermedio, il “Byte Code” che è codice portabile a basso livello, simile all’assembler, indipendente dall’hardware e invisibile al programmatore Java Un interprete traduce ed esegue il “Byte Code”

Gli errori di programmazione Gli errori in programmazione si possono dividere in: Errori di sintassi Errori logici Errori in runtime (di esecuzione)

Errori di sintassi Gli errori di sintassi sono gli errori ortografici che si commettono nella fase di scrittura del programma nel linguaggio scelto. Sono i più facili da correggere in quanto il programma non viene compilato e il compilatore stesso li identifica automaticamente tramite messaggi di errore. Il programma non può essere dunque eseguito finché tutti gli errori sintattici non vengono eliminati.

Errori di sintassi Ad esempio scrivere System.out.pintln(“Hello world\n”); al posto di System.out.println(“Hello world\n”); è un errore di sintassi

Errori logici Gli errori logici sono gli errori che si commettono nella fase di progettazione dell’algoritmo prima di scrivere il programma nel linguaggio scelto. Sono dovuti ad una mancata comprensione del problema o dei vincoli che devono soddisfare i dati in input. Sono difficili da correggere in quanto il compilatore non è in grado di identificarli. Se un programma viene compilato ed eseguito senza messaggi di errore, ciò NON significa che sia corretto!

Errori logici Ad esempio scrivere media=somma5Valori/2; al posto di è un errore logico se in realtà il programma deve calcolare la media tra 5 valori

Errori in runtime Gli errori in runtime sono gli errori che possono verificarsi nella fase di esecuzione del programma anche se il programma è corretto (assenza di errori logici) e viene compilato (assenza di errori di sintassi). Sono difficili da correggere in quanto il compilatore non è in grado di identificarli.

Errori in runtime Ad esempio se durante la fase di esecuzione di un programma si tenta di effettuare una divisione per 0, si ha un errore in runtime

Gli errori di programmazione In conclusione: Gli errori di sintassi bloccano il compilatore che non riesce a produrre il codice eseguibile Gli errori in runtime bloccano l’esecuzione del programma Gli errori logici non bloccano nulla ma l’output del programma non è corretto

I paradigmi di programmazione Un paradigma di programmazione è l’insieme degli strumenti concettuali forniti da un linguaggio di programmazione. I principali tipi di programmazione sono: Programmazione Procedurale (o Imperativa) Programmazione Funzionale Programmazione Logica Programmazione Object-Oriented

Programmazione Procedurale Un programma è composto da una sequenza di istruzioni che realizzano trasformazioni di stato. Uno stato è identificato da tutti i valori che un certo insieme di variabili assume ad un certo stadio dell’esecuzione. Ad esempio, sono procedurali (o imperativi) i seguenti linguaggi: C Pascal

Programmazione Funzionale Un programma è una funzione che viene valutata per ottenere un risultato. Ad esempio sono funzionali i seguenti linguaggi: Lisp SML

Programmazione Logica Un programma è un insieme di fatti e regole e la sua esecuzione equivale alla realizzazione di una dimostrazione. Ad esempio sono logici i seguenti linguaggi: Prolog LDL

Programmazione Object-Oriented Un programma è un insieme di oggetti (che sono astrazioni della realtà), dotati di proprietà (attributi) e metodi (procedure), che comunicano tramite scambio di messaggi. Ad esempio sono Object-Oriented i seguenti linguaggi: Java C++