Software e Linguaggi di programmazione



Documenti analoghi
Corso di Informatica

Organizzazione degli archivi

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Introduzione alla programmazione in C

1. BASI DI DATI: GENERALITÀ

Il database management system Access

I Sistemi Informativi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Linguaggi e Paradigmi di Programmazione

Dispensa di Informatica I.1

ISTITUTO TECNICO ECONOMICO MOSSOTTI

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Volumi di riferimento

Software e Linguaggi di programmazione

Sistemi Informativi e Basi di Dati

Access. P a r t e p r i m a

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Lezione V. Aula Multimediale - sabato 29/03/2008

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Basi di Dati. Le Basi di Dati

Dispensa di database Access

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Raggruppamenti Conti Movimenti

DBMS (Data Base Management System)

INFORMATICA 1 L. Mezzalira

Informatica I per la. Fisica

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

FONDAMENTI di INFORMATICA L. Mezzalira

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

I database relazionali (Access)

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

Normografi di programmazione anni 70

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Introduzione ai database relazionali

La Macchina Virtuale

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Linguaggio C. Fondamenti. Struttura di un programma.

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Organizzazione delle informazioni: Database

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Progettaz. e sviluppo Data Base

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

DATABASE RELAZIONALI

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Le variabili. Olga Scotti

DATABASE.

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Corso sul linguaggio SQL

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Descrizione di un algoritmo

Linguaggi di programmazione

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Sistema operativo: Gestione della memoria

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Linguaggi di programmazione

Al giorno d oggi, i sistemi per la gestione di database

Alcune regole di base per scrivere un programma in linguaggio C

Strumenti di modellazione. Gabriella Trucco

Introduzione. Informatica B. Daniele Loiacono

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Lezione 8. La macchina universale

I file di dati. Unità didattica D1 1

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Cosa è un foglio elettronico

Appunti di Sistemi Elettronici

Il Software. Il software del PC. Il BIOS

Data Base. Prof. Filippo TROTTA

Funzioni in C. Violetta Lonati

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Corso di Informatica

EXPLOit Content Management Data Base per documenti SGML/XML

Corso di Informatica (Basi di Dati)

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

Algoritmi, dati e programmi

Introduzione al data base

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Il software e la programmazione

CONCETTO DI ANNIDAMENTO

Informatica per le discipline umanistiche 2 lezione 10

Base di dati e sistemi informativi

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Gli algoritmi: definizioni e proprietà

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Software e Linguaggi di programmazione Interattività Software

SOFTWARE elemento morbido SOFTWARE Software E la componente che consente di sfruttare le risorse fisiche (hardware) disponibili Sono i programmi che permettono di elaborare le informazioni, controllare le periferiche e produrre i risultati. Classificazione del Software software Software di BASE E un complesso di programmi collegati tra loro che consente l utilizzo minimo del sistema e la sua programmazione Software APPLICATIVO Comprende tutti i programmi destinati a risolvere specifici problemi non legati al funzionamento del sistema.

Fanno parte del software di base FIRMWARE (BIOS - Basic Inpot/Output System - SISTEMA OPERATIVO O.S. o D.O.S. Software Software di base ROM) Costituito da un insieme di programmi progettati per svolgere funzioni di gestione, controllo e supervisione sulle operazioni dell intero sistema Gestore file - Controllo sulle funzioni I/O Comandi di processo - Programmi di utilità Sviluppo del software Studio di fattibilità Convenienza ed attuabilità del progetto Analisi studio degli algoritmi soluzione informale Progettazione descrizione delle procedure gerarchizzazione Programmazione scrittura dei programmi soluzione formale Test prove di congruità dei programmi Revisione cambiamenti e migliorie Manutenzione correzione di errori non evidenziati durante i test Slide 6 of XX _

Processo di realizzazione del software Problema Analisi Soluzione informale Sistema informativo: Strumenti di supporto evoluti Formalizzazione Linguaggi basso medio alto livello Soluzione formale dell Algoritmo Programmazione Esecutore del linguaggio ad alto livello Programma ad alto livello Traduzione Sistema informativo: Ambiente di sviluppo Programma macchina Esecutore del linguaggio macchina (HW) Esecuzione Slide 7 of XX _ Si vuole avere l avvertimento ogni giorno su Farmaco da riordinare Farmaco la cui data di scadenza è oggi Farmaco scaduto Es. Scadenzario Farmaci Colonna 1 Farmaco gg rio Conf1 Conf2 Conf3 Cmax Conf4 Riga 1 Aspirina 5 10/10/2012 15/02/2013 15/02/2013 13/12/2012 Tachipirina 10 13/12/2012 22/05/2012 Sintron 3 15/02/2013 Rmax Efferalgan 8 13/12/2012 9/5/2013 Slide 8 of XX _

Inizio ciclo R = 1 R = R max SI NO C = 3 C = C max NO Fine ciclo SI F( R, C) = "" NO R = R + 1 SI F(R, C) > oggi AND F(R, C) <= oggi + Grio NO NO SI F ( R, C) = oggi SI F(R, C) < oggi SI Farmaco da riordinare Farmaco nel giorno di scadenza Farmaco SCADUTO C = C + 1 Slide 9 of XX _ Linguaggi di programmazione Gli algoritmi ci permettono di inquadrare e risolvere logicamente il problema, è poi necessario formalizzare l algoritmo con delle sequenze di istruzioni elementari in modo che un opportuno esecutore svolga le operazioni descritte nell algoritmo. L algoritmo deve quindi essere trascritto in un linguaggio comprensibile all esecutore. Il calcolatore per come è costruito è capace di eseguire solo le istruzioni elementari in codice binario che costituiscono il suo set di istruzioni, linguaggio macchina composto da sequenze di bit opportunamente organizzate. Nel tempo sono stati creati circa 2500 linguaggi. http://it.wikipedia.org/wiki/linguaggio_di_programmazione http://it.wikipedia.org/wiki/elenco_cronologico_dei_linguaggi_di_programmazione Slide 10 of XX _

Linguaggi di programmazione Slide 11 of XX _ Linguaggi di programmazione La scrittura dell algoritmo per un esecutore è quindi caratterizzato da una sintassi, regole che specificano come comporre l istruzione ben formate una semantica, specifica il significato delle operazioni nell esecuzione dell istruzione Linguaggio macchina prima generazione Linguaggi di basso livello assemblativi seconda generazione Linguaggi di medio e alto livello Fortran, Cobol, Basic, Pascal, C++, Java Slide 12 of XX _

Linguaggi di programmazione Linguaggi di prima generazione Il linguaggio macchina usa solo codice binario Fattori Negativi: Difficile da utilizzare in quanto utilizza solo numeri binari al più esadecimali Permette solo l uso di indirizzi di memoria di tipo numerico Difficile da correggere e/o implementare ogni eliminazione o aggiunta di istruzioni comporta lo slittamento di tanti altri indirizzi che sono da verificare Positivi: Molto efficienti in quanto il programma può essere ottimizzato sulle potenzialità dell hardware Slide 13 of XX _ Linguaggi di programmazione Linguaggi assemblatori o di seconda generazione Sono l evoluzione del linguaggio macchina e pur restando legati alla struttura del linguaggio macchina, le istruzioni a differenza del precedente hanno nomi simbolici ed il programmatore può assegnare nomi simbolici alle variabili che vengono gestite e riorganizzate dall assemblatore stesso. Slide 14 of XX _

Linguaggi ad alto livello Dato che l esecutore elettronico ha come sua principale caratteristica quella di eseguire operazioni in tempi estremamente contenuti gli esseri umani hanno pensato di dare alla macchina il compito di tradurre, istruzioni semanticamente più vicine a noi nelle più semplici sequenze di linguaggio macchina. Sono stati così concepiti tre diversi livelli di traduzione: Traduzione a livello interpretato si parte dal codice sorgente che viene tradotto in linea Traduzione a livello compilato si parte dal codice sorgente che viene tradotto nel suo complesso e quindi si può eseguire il codice esecutivo Traduzione a livello emulativo È un tipo di traduttore utilizzato per far girare codice eseguibile prodotto per un dato processore su un processore diverso Slide 15 of XX _ Interprete Il software interprete legge le istruzioni nel linguaggio ad alto livello le traduce e le manda in esecuzione. Fattori Positivi: se ci sono errori di sintassi questi vengono rilevati al momento dell esecuzione corretti e si può rieseguire immediatamente il codice si possono monitorare le variabili ed identificare errori di implementazione dell algoritmo, correggere in linea e rieseguire Negativi: Ogni volta che viene eseguito necessita della traduzione che rallenta l esecuzione e prevede la presenza del dizionario anche se viene protetta la manipolazione del codice sorgente Se ci sono parti del software che non vengono testate o non vengono interessate nelle prove non si possono evidenziare errori di sintassi che saranno evidenziati solo più tardi Slide 16 of XX _

Compilatore Il software compilato legge le istruzioni codice sorgente nel linguaggio ad alto livello le traduce effettuando tutti i possibili controlli di sintassi e congruità delle variabili. Fattori Positivi se ci sono errori di sintassi o congruità sulle variabili questi vengono rilevati tutti al momento della compilazione e possono essere corretti nella compilazione si possono assemblare più parti anche testate e compilate precedentemente per ottenere l eseguibile completo. Negativi Per la correzione di eventuali errori di trascrizione del codice, questa può essere effettuata solo a posteriori durante le prove dell eseguibile. Ogni correzione può essere fatta solo sul codice sorgente e comporta la ricompilazione del sorgente per ottenere un nuovo eseguibile Slide 17 of XX _ Interfaccia Uomo - Macchina Hardware Software per l esecutore in codice binario Linguaggio macchina Linguaggio assemblativo Linguaggi di programmazione Interpreti Compilatori - Emulatori Linguaggi naturali Linguaggi di basso livello Linguaggi a medio e alto livello Hardware dipendenti Vari paradigmi di programmazione Imperativo- Procedurale Orientato agli oggetti Funzionale Dichiarativo il legame con hardware avviene attraverso il compilatore Inglese Italiano Tedesco Indipendenti dall hardware Slide 18 of XX _

Linguaggi Ogni linguaggio ad alto livello consente di esprimere gli algoritmi in programmi eseguibili su un esecutore automatico. Nel tempo e con il presentarsi di problematiche di vario genere, si sono così sviluppati linguaggi con istruzioni più aderenti allo stile ed alle necessità del problema da risolvere: I linguaggi possono così essere classificati nelle quattro seguenti categorie: Paradigma imperativo - procedurale Paradigma orientato agli oggetti Paradigma funzionale Paradigma dichiarativo Slide 19 of XX _ Le istruzioni Un qualsiasi linguaggio deve avere: Istruzioni di ingresso / uscita permettono le comunicazioni con il mondo Istruzioni aritmetico / logiche permettono le elaborazioni sequenziali Istruzioni di controllo permettono di inserire punti di diramazione e costruire un albero delle decisioni Slide 20 of XX _

Paradigma imperativo - procedurale Paradigma Imperativo procedurale È attualmente ancora il più diffuso; si basa sull utilizzo di simboli definibili dal programmatore ed istruzioni elementari vicine alla logica con cui ci esprimiamo o con cui è stato realizzato il diagramma di flusso, nel quale le operazioni sono sequenziate secondo uno schema molto preciso e definito (imperativo) Dati ed istruzioni sono definiti separatamente Slide 21 of XX _ Paradigma imperativo - procedurale Dichiarazi n, m, i, j, w, one Inizio n delle v(x, m, w y) variabili, NO i > n SI operazioni sulle esecuzione variabili su w su stampa memorizza v(x, y) dati v(i, variabili y) j) sull' sull' indice indice delle operazioni n, Assegnazio i, j, m, leggi w, ne v(x, delle j i Fine Slide 22 of XX _

Paradigma imperativo - procedurale Blocco istruzioni SI... Condizione NO... main () { if (condizione) { blocco di istruzioni se vero; }. } if (condizione) then blocco di istruzioni se vero end if. Slide 23 of XX _ SI Blocco istruzioni... Condizione... Paradigma imperativo - procedurale NO Blocco istruzioni main () { if (condizione) { istruzioni se vero } else {istruzioni se falso}. } if (condizione) then istruzioni se vero else istruzioni se falso end if. Slide 24 of XX _

SI... Blocco istruzioni Condizione... NO Paradigma imperativo - procedurale main () { while (condizione) { blocco di istruzioni finché vero; }. } while condizione blocco di istruzioni finché vero wend. Slide 25 of XX _ Paradigma imperativo - procedurale Slide 26 of XX _

Paradigma imperativo - procedurale Slide 27 of XX _ Le variabili sono i dati che devono essere elaborati e necessitano di spazi in memoria, Questi spazi devono essere definiti sia dal punto di vista delle dimensioni che dal punto di vista dell usabilità. Scrivere z = z + v(i) è ammissibile solo se z, i e v(i) sono numeri z è un numero reale i è un numero intero v() è un vettore di numeri reali oppure se le variabili sono tutti testi allora + può indicare concatena le parole / lettere per ottenere una frase Dati Slide 28 of XX _

Così come se devo costruire una frase le parole devono essere concatenate opportunamente a formare la frase in questo caso & rappresenta la funzione concatenazione testo = Pippo oggi deve andare & destinazione & per & azione testo è una stringa formata da due costanti la prima di 23 caratteri e la seconda di 5 caratteri e due variabili di lunghezza variabile destinazione è una stringa variabile azione è una stringa variabile Se destinazione e azione sono vuote il messaggio sarà Pippo oggi deve andare per Dati Slide 29 of XX _ Dati Se destinazione = al mercato e azione = fare la spesa Il messaggio sarà Pippo oggi deve andare al mercato per fare la spesa Se destinazione = al cinema e azione = vedere il film appena uscito Il messaggio sarà Pippo oggi deve andare al cinema per vedere il film appena uscito Slide 30 of XX _

I dati possono essere definiti in vari modi in VBA Boolean (booleano) Integer Long Single Double Date 2 byte (Falso, Vero) (intero) 2 byte (-32,768: 32,767) (intero lungo) 4 byte (-2,147,483,648:2,147,483,647) (singola precisione) 4 byte Floating-Point (numeri reali) (doppia precisione) 8 byte Floating-Point (numeri reali) (rappresenta una data) Definizione delle variabili 8 bytes FP dal 1/1/1900 al 31/12/9999 parte intera giorni dal riferimento parte decimale, hh.mm.sec, contatore dalla mezzanotte Slide 31 of XX _ Currency String (valutario, monetario) Definizione delle variabili 8 byte Fixed-point (virgola fissa) dove è importante l accuratezza nei calcoli valori -922,337,203,685,477.5808 a 922,337,203,685,477.5807. (testo di lunghezza variabile) 1 byte per carattere L byte lunghezza della stringa String * length (testo di lunghezza fissa) length byte è la lunghezza definita dall utilizzatore Variant (assume la definizione data dal valore attuale) boolean, integer, long, single, double, date, currency, string Object (riferimento indirizzo ad un oggetto di office) 4 byte Slide 32 of XX _

Definizione delle variabili I dati possono essere definiti in vari modi in Java boolean (Vero, Falso) non hanno valore numerico occupa 1 byte char (contiene caratteri tipo unicode a 2 byte + address) Numerici interi byte (1 byte, 8 bit - valori da -128 a 127) short (2 byte, 16 bit - valori da -32768 a 32767) int (4 byte, 32 bit - valori da -2,147,483,648 a 2,147,483,647) long (8 byte, 64 bit valori da -9223372036854775808 a 9223372036854775807) Slide 33 of XX _ Definizione delle variabili float long (4 byte, 32 bit numeri reali valori da +/- 140129846432481707*10^-45 a +/- 340282346638528860*10^38 ) (8 byte, 64 bit numeri reali valori da +/- 494065645841246544 * 10^-324 a +/- 179769313486231570 * 10^308 ) Slide 34 of XX _

Dati strutturati Dati strutturati o definiti dall utente per la gestione Database struct paziente { long ID char nome [Dimensione] char cognome [Dimensione] date data_nascita date data_evento boolean vac_antipolio boolean vac_antitetanica boolean vac_antrabbica int altezza int peso } Type paziente ID as long nome as string * [Dimensione] cognome as string * [Dimensione] data_nascita as Date data_evento as Date vac_antipolio as Boolen vac_antitetanica as Boolen vac_antrabbica as Boolen altezza as Integer peso as Integer End Type Slide 35 of XX _ Matrici matri(n,m) dove n numero di righe ed m numero di colonne matri(10,8) 10 (n) righe ed 8 (m) colonne elem(1,1) elem(1,2) elem(2,1) elem(2,2) elem(3,1) elem(3,2) elem(4,1) elem(4,2) elem(1,3) elem(2,3) elem(1,4) elem(2,4) elem(1,8) elem(2,8) elem(3,3) elem(3,4) elem(3,8) elem(4,3) elem(4,4) elem(4,8) elem(5,1) elem(5,2) elem(5,3) elem(5,4) elem(5,8) lem(10,1) elem(10,2)elem(10,3) elem(10,4) elem(10,8) Slide 36 of XX _

Paradigma orientato agli oggetti Si basa fondamentalmente sulle possibilità grafiche e prevede la presenza di strutture di interazione come nel mondo reale, oggetti come pulsanti, manopole, cursori, etc., metafora del desktop, i quali attivano determinate funzioni. Le istruzioni sono rappresentate dai metodi ed i dati dalle proprietà Gli oggetti / dati possono essere strutturati in classi Slide 37 of XX _ Paradigma orientato agli oggetti Oggetto pulsante Oggetto casella testo Oggetto casella etichetta Oggetto casella testo multi linea Slide 38 of XX _

Paradigma orientato agli oggetti proprietà oggetti Oggetto pulsante Oggetto casella testo Oggetto casella etichetta Oggetto casella testo multi linea Slide 39 of XX _ Attività svolta dagli oggetti Slide 40 of XX _

Dati e Oggetti Bicicletta Ruota Anteriore Telaio Ruota posteiore Mozzo Cerchione Mozzo Cerchione Class Bicicletta { String Dati Bicicletta Telaio telaio; RuotaA Ruota anteriore RuotaP Ruota posteriore } Class Dati Bicicletta { String Marca String Numero di serie } Class RuotaA { String tipo Mozzo mozzo Cerchione cerchine } Class Telaio { String tipo Numero di serie } Class RuotaP { String tipo Mozzo mozzo Cerchione cerchine } Slide 41 of XX _ Dati e oggetti Bicicletta Ruota Anteriore Telaio Ruota posteiore Mozzo Cerchione Mozzo Cerchione Controlla (bicicletta) richiede Controlla (telaio) prodotto elementare Controlla (ruota anteriore) richiede Controlla (mozzo) prodotto elementare Controlla (cerchione) prodotto elementare Controlla (ruota posteriore) richiede Controlla (mozzo) prodotto elementare Controlla (cerchione) prodotto elementare Slide 42 of XX _

Paradigma funzionale Paradigma funzionale Generalmente utilizzati nei simulatori, in questo caso il problema viene inquadrato dal punto di vista della sua risoluzione matematica con blocchi funzionali che effettuano sui dati di ingresso una operazione specifica I dati e le istruzioni tendono ad essere un tutt uno. Slide 43 of XX _ u d dt dx dt Paradigma funzionale dx dt 2 1 ( t) = + x1 generatore x 1 d dt dx 1 dt - + + u grafica x 2 generatore d dt dx 2 dt d dt d x dt 2 2 2 Slide 44 of XX _

u d dt dx dt 2 1 ( t) = A + B x1 Paradigma funzionale dx dt generatore x 1 d dt dx 1 dt B ' * e i - + + u grafica x 2 generatore d dt dx 2 dt d dt d x dt 2 2 2 A '' * e i Slide 45 of XX _ Paradigma dichiarativo Questo tipo di organizzazione è orientata ai dati e alle loro relazioni In genere nella soluzione di un problema si stabilisce cosa si vuole ottenere nella prima fase dell analisi e quindi con la programmazione il come ciò che si vuole possa essere raggiunto. Nella programmazione dichiarativa invece viene descritta nella base di dati l asserzione che lega degli argomenti e le relazioni che legano le varie asserzioni. Le richieste sono solo il cosa si vuole ed è compito del traduttore cercare il modo con cui risolvere il problema e farlo eseguire al processore. Slide 46 of XX _

Paradigma dichiarativo La realtà può essere considerata come composta da Fatto : (asserzione) <predicato> (argomento, argomento, argomento, ) Regola : (clausole) relazioni condizionate fra oggetti predicato argomenti Luca è padre di Giovanni padre (Luca, Giovanni) asserzione Giovanni è figlio di Luca Marco possiede la moto Marco possiede il computer possiede (Marco, moto) possiede (Marco, computer) Struttura Dichiarazione dei fatti (database) Definizione delle regole tra i vari predicati Porre domande sui fatti [? possiede (Luca,moto) = falso ] [? possiede (Marco,moto) = vero ] [? possiede (marco,y) y = moto, y = computer ] Slide 47 of XX _ Paradigma dichiarativo Ad esempio plus (a,b,c) dichiara una somma tra a e b con risultato su c plus (10,5,c) riempirà c con 15 plus (10,b,15) riempirà b con 5 plus (a,5,15) riempirà a con 10 ma dato l asserto di base c = a + b allora b = c a oppure a = c b Slide 48 of XX _

Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : padre (padre,figlio) madre(madre,figlio) DataBase e relazione padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe) Slide 49 of XX _ Paradigma dichiarativo genitore(x,y) :- padre(x,y). genitore(x,y) :- madre(x,y). antenato(x,y) :- genitore(x,y). antenato(x,y) :- genitore(x,z), antenato(z,y). antenato(x,y) :- genitore(x,z), antenato(z,w), antenato(w,y) fratello_sorella(x,y) :- padre(z,x), padre(z,y), madre(w,x), madre(w,y), X \= Y.? madre (x,milena) x=eva, x=francesca? padre (Pietro,y) y=francesca, y=carlo, y=adelaide Slide 50 of XX _

Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : genitore (genitore,figlio) padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo)? padre (Pietro,y) y=francesca y=carlo y=adelaide madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe)? madre (x,milena) x=eva x=francesca Slide 51 of XX _ Paradigma dichiarativo? genitore (x,giuseppe) x=giulio, x=monica, x=eva? antenato (x,carlo) x=pietro, x=osvaldo, x=ernesto, x= Guiscardo, x=elvira, x=carlotta, x=monica padre (Pietro,Carlo), padre (Osvaldo,Pietro), padre (Ernesto,Osvaldo) padre (Guiscardo,Pietro) madre (Elvira,Carlo), madre (Carlotta,Elvira), madre (Monica,Carlotta) Slide 52 of XX _

Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : genitore (genitore,figlio) padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe)? genitore (x,giuseppe) x=giulio x=monica x=eva Slide 53 of XX _ Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : genitore (genitore,figlio) padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe)? antenato (x,carlo) x=pietro x=elvira x=osvaldo x= Guiscardo x=carlotta x=ernesto x=monica Slide 54 of XX _

Linguaggi per la manipolazione dei dati In molti casi non sono le operazioni matematiche ad essere la principale applicazione ma la gestione di informazioni organizzate in tabelle relazionate tra loro con un gran numero di informazioni nei DBMS (Database Management System) Questa problematica estremamente comune ai grandi archivi ha portato allo sviluppo di linguaggi specifici per la gestione delle tabelle a modello relazionale chiamati SQL (Structured Query Language) che hanno funzioni di: Creazione, inserimento, aggiornamento, cancellazione, ricerca ed estrazione di dati tra loro correlati. Slide 55 of XX _ DBMS Un database è normalmente formato da più tabelle ed ogni tabella e definita dal suo schema che sono l insieme dei campi da cui essa è formata e che rappresenta anche la tipologia ed eventuali limitazioni sui dati definiti nei campi. I dati presenti nei campi sono gli item successivi definiti nello schema. Slide 56 of XX _

Tutti gli item dello schema costituiscono il record. Tanti record costituiscono la tabella. Tante tabelle correlate costituiscono un database. Nei DataBase sono anche inserite le eventuali relazioni tra le tabelle al fine di non dover duplicare dati presenti nelle tabelle di competenza (caratteristiche degli item della tabella) Slide 57 of XX _ DBMS DataBase Tabella 1 Tabella 2 Tabella 3 Tabella 4 Record 1 Record 2 Record n Record 1 Record 2 Record m Record 1 Record 2 Record h Record 1 Record 2 Record k Record: key Item 1 Item 2 Item g Record: key Item 1 Item 2 Item f Record: key Item 1 Item 2 Item p Record: key Item 1 Item 2 Item q Slide 58 of XX _

DBMS Ospedaliero DB Medici DB Infermi DB Pazienti DB Reparti Record 1 Record 2 Record m Record 1 Record 2 Record n Record 1 Record 2 Record p Record 1 Record 2 Record q Record: Id Cognome Nome Specializzazione Reparto Id Cognome Nome Specializzazione Reparto Id Cognome Nome Dt Nascita Dt Ricovero Reparto Medico Record: Id Nome Reparto Letti Slide 59 of XX _ DBMS Slide 60 of XX _

DBMS Tabella Slide 61 of XX _ Relazioni Slide 62 of XX _

DBMS La funzione principale dei data base è quella di selezionare i dati e fornirli aggregati in secondo le richieste dell utente Select Pazienti.Cognome From Where And DB_Pazienti DB_Pazienti.Rep1= Urologia ( Med_Rif = Lorenzetti Or Med_Sost = Galli ) Order by Cognome Slide 63 of XX _ Linguaggi ipertestuali HTML Hanno avuto un notevole impulso con l avvento di INTERNET in quanto: Logica di tipo reticolare nella lettura e acquisizione dell informazione La logica lineare con cui sono scritti i testi spesso non è in accordo con quella del lettore. Il lettore mentre legge può avere la necessità, curiosità di chiarire, approfondire parti del discorso, oppure chi ha scritto la pagina può avere la necessità di indirizzare il lettore verso altri siti HTML (HyperText Markup Language) URL (Uniform Resource Locators) Slide 64 of XX _

HTML (Hypertext Markup Language) Il formato HTML prevede la presenza dei solo testo e comandi (denominati markup o tag) che rappresentano i comandi che il software browser interpreterà per realizzare la pagina da visualizzare Questi comandi sono inseriti con due simboli delimitatori di inizio e fine <nome_del_tag> seguiti da testo o comandi più complessi </nome_del_tag> Es. <U> sottolineato </U> <I> italico </I> <EM> enfatizzato </EM> <BR> ritorno a capo <P> ritorno a capo con linea vuota <BODY> corpo del testo </BODY> <UL> lista non numerato </UL> <LI> elemento di lista </LI> <A HREF= path\...\indirizzo >Partite 2011-2012</A> anchor point <IMG SRC= path\...\nome immagine > Slide 65 of XX _ Linguaggi ipertestuali HTML Slide 66 of XX _

HTML (Hypertext Markup Language) Utilizzando la logica della definizione si possono costruire degli elenchi <UL> <LI> D. Sciuto, G. Buonanno, L. Mari, W. Fornaciari <EM>Introduzione ai sistemi Informatici</EM> McGraw-Hill Italia 2008 <LI><U><I>autori <EM> Informatica </EM> Editore </I></U> </UL> Slide 67 of XX _ XML ( Xtensible Markup Language) <LIBRO> <AUTORE> D. Sciuto</AUTORE> <AUTORE> G. Buonanno </AUTORE> <AUTORE> L. Mari </AUTORE> <AUTORE> W. Fornaciari </AUTORE> <TITOLO> EM>Introduzione ai sistemi Informatici </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE> <EM>Introduzione ai sistemi Informatici</EM> McGraw-Hill Italia 2008 </LIBRO> UL LI EM lista non numerata eleneto di lista enfatizzato Il simbolo / indica file della funzione Slide 68 of XX _

DTD (Document Type Definition) <!------- Bibliografia ----> <BIB> <LIBRO nome= info > <AUTORE id = dony > D. Sciuto</AUTORE> <AUTORE id = jack > G. Buonanno </AUTORE> <AUTORE id = luca > L. Mari </AUTORE> <AUTORE id = mau > W. Fornaciari </AUTORE> <TITOLO> EM>Introduzione ai sistemi Informatici </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE> <ANNO> 2008 </LIBRO> <LIBRO nome= DataBase > < AUTORE idref = luca <TITOLO> Accesso a database via web</titolo> <EDITORE> Apogeo </EDITORE> <ANNO> 2001</ANNO> </LIBRO> </BIB> Slide 69 of XX _ Esempio di dati per il DB medico scientifico PubMed Slide 70 of XX _

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica