JAIL: Javacard Abstract Interpretation-based Lifeguard
|
|
|
- Sofia Ferretti
- 10 anni fa
- Visualizzazioni
Transcript
1 JAIL: Javacard Abstract Interpretation-based Lifeguard Pietro Ferrara Università Ca Foscari di Venezia Dipartimento di Informatica Ecole Polytechnique, Paris Pisa, 16 febbraio 2006
2 Obiettivi Abbiamo implementato un analizzatore statico generico per Java Card parametrizzato: sulla proprietà da analizzare sul dominio astratto usato per catturare informazioni sulle variabili numeriche su alcuni valori numerici per permettere all utente di decidere se avere un analisi più lenta e precisa o più veloce e approssimata
3 Java Card 1 Sottoinsieme di Java per lo sviluppo e l implementazione di applicazioni per smart card 2 Limitate risorse hardware a disposizione, supporta solo un subset di Java (non supporta il multithreading) 3 Essenziali le proprietà di sicurezza, in particolare è definita la proprietà di applet isolation dal JavaCard Runtime Environment
4 applet space context 1 context 2 applet A applet C m1 m0 no context switch context switch applet B context restore applet D m2... Package A Package B Applet firewall Figure: Context switching
5 Semantica Concreta Vogliamo avere un dominio semantico che supporti l aliasing di oggetti e che permetta a ciascun oggetto di avere il proprio ambiente: Ambiente: funzione parziale che, dato il nome di una variabile, ritorna il suo indirizzo (E : N A); Store: funzione parziale che, dato un indirizzo, ritorna il valore contenuto in esso (S : A V ); Valore: può essere un oggetto (il cui stato è contenuto in un ambiente), un valore numerico o un array (V = E PV AR); Funzione delle eccezioni: funzione che, dato il nome dell eccezione, ritorna lo stato in cui è stata lanciata l eccezione (EX : N ST ); Stato: tripla composta da un ambiente, uno store e una funzione delle eccezioni (ST = E S EX )
6 Semantica Astratta - Indirizzi nel concreto un indirizzo essenzialmente è un valore numerico nell astratto non possiamo usare un contatore numerico che viene incrementato ogni volta che si crea una nuova cella nello store. In questo modo infatti non è garantita la convergenza dell analisi A # = P Int Stack dove il primo valore intero identifica univocamente il punto del codice sorgente che ha allocato l indirizzo (P è l insieme degli identificatori univoci dei punti del programma) il secondo valore contiene il numero di iterazioni effettuati nell analisi di un ciclo while, nel caso in cui l indirizzo venga allocato all interno di un tale ciclo lo stack contiene le chiamate a metodi effettuate fino ad arrivare al punto in cui la cella viene allocata
7 Semantica Astratta - Ambienti A differenze della semantica concreta, nell astratto una variabile può essere collegata a uno o più indirizzi: E # : N (A # ) Relazione d ordinamento: ê 1 E # ê 2 dom(ê 1 ) dom(ê 2 ) n dom(ê 1 ) : ê 1 (n) ê 2 (n) Funzione d astrazione: α E (e) = ê : N (A)# such that dom(ê) = dom(e) n dom(e) : ê(n) = α A (e(n)) Funzione di concretizzazione: γ E (ê) = {e i : N A i [1..n]} such that i [1..n] : dom(e i ) = dom(ê) n dom(ê) : e i (n) γ A (ê(n)) n dom(ê) : i [1..n] e i(n) = γ A (ê(n))
8 Semantica Astratta - Store S # : A # V # Relazione d ordinamento: Funzione d astrazione: ŝ 1 S # ŝ 2 dom(ŝ 1 ) dom(ŝ 2 ) â dom(ŝ 1 ) : ŝ 1 (â) V # ŝ 2 (â) α S (s) = ŝ : A# V # such that dom(ŝ) = a dom(s) α A (a) a dom(s) : ŝ(α A (a)) = α V (s(a)) Funzione di concretizzazione: γ S (ŝ) = {s i : A V i [1..n]} such that i [1..n] : dom(s i ) = â dom(ŝ) γ A(â) â dom(ŝ), a γ A (â) : s i (a) γ V (ŝ(â)) â dom(ŝ) : i [1..n],a γ A (â) s i(a) = γ V (ŝ(â))
9 Semantica Astratta - Funzione delle eccezioni EX # : N ST # Relazione d ordinamento: êx 1 EX # êx 2 dom(êx 1 ) dom(êx 2 ) n dom(êx 1 ) : êx 1 (n) ST # êx 2 (n) Funzione d astrazione: α EX (ex) = êx : N ST # such that dom(êx) = dom(ex) n dom(ex) : êx(n) = α ST (ex(n)) Funzione di concretizzazione: γ EX (êx) = {ex i : N ST i [1..n]} such that i [1..n] : dom(ex i ) = dom(êx) n dom(êx) : ex i (n) γ ST (êx(n)) n dom(êx) : i [1..n] ex i(n) = γ ST (êx(n))
10 Semantica Astratta - Stati ST # = E # S # EX # Relazione d ordinamento: ŝt 1 ST # ŝt 2 ê 1 E # ê 2 ŝ 1 S # ŝ 2 êx 1 EX # êx 2 Funzione d astrazione: α ST ((e, s, ex)) = (α E (e), α S (s), α EX (ex)) Funzione di concretizzazione: γ ST ((ê, ŝ, êx)) = (e, s, ex) such that e γ E (ê), s γ S (ŝ), ex γ EX (êx) st=(e,s,ex) γ ST ((ê,ŝ, bex)) e = γ E (ê), st=(e,s,ex) γ ST ((ê,ŝ, bex)) s = γ S(ŝ), st=(e,s,ex) γ ST ((ê,ŝ, bex)) ex = γ EX (êx)
11 Operatore di least upper bound (1/2) Ambienti: ê 1 E # ê 2 = {ê : n â ê 1 (n) if n dom(ê 1 ) \ dom(ê 2 ) â = ê 2 (n) if n dom(ê 2 ) \ dom(ê 1 ) ê 1 (n) ê 2 (n) if n dom(ê 1 ) dom(ê 2 ) } Store: ŝ 1 S # ŝ 2 = {ŝ : â ˆv ŝ 1 (â) if â dom(ŝ 1 ) \ dom(ŝ 2 ) ˆv = ŝ 2 (â) if â dom(ŝ 2 ) \ dom(ŝ 1 ) } ŝ 1 (â) V # ŝ 2 (â) if â dom(ŝ 1 ) dom(ŝ 2 )
12 Operatore di least upper bound (2/2) Eccezioni: êx 1 EX # êx 2 = {êx : n ŝt êx 1 (n) if n dom(êx 1 ) \ dom(êx 2 ) ŝt = êx 2 (n) if n dom(êx 2 ) \ dom(êx 1 ) êx 1 (n) ST # êx 2 (n) if n dom(êx 1 ) dom(êx 2 ) } Stati: ŝt 1 ST # ŝt 2 = (ê 1 E # ê 2, ŝ 1 S # ŝ 2, êx 1 EX # êx 2 )
13 Operatore di greatest lower bound Ambienti: ê 1 E #ê 2 = {ê : n â â = ê 1 (n) ê 2 (n) if n dom(ê 1 ) dom(ê 2 )} Store: ŝ 1 S #ŝ 2 = {ŝ : â ˆv ˆv = ŝ 1 (â) V #ŝ 2 (â) if â dom(ŝ 1 ) dom(ŝ 2 )} Eccezioni: êx 1 EX # êx 2 = {êx : n ŝt ŝt = êx 1 (n) ST # êx 2 (n) if n dom(êx 1 ) dom(êx 2 )} Stati: ŝt 1 ST # ŝt 2 = (ê 1 E # ê 2, ŝ 1 S # ŝ 2, êx 1 EX # êx 2 )
14 Operatore di widening Ambienti: ê 1 E #ê 2 = ê 1 E # ê 2 Store: ŝ 1 S #ŝ 2 = {ŝ : â ˆv ŝ 1 (â) if â dom(ŝ 1 ) \ dom(ŝ 2 ) ˆv = ŝ 2 (â) if â dom(ŝ 2 ) \ dom(ŝ 1 ) ŝ 1 (â) V #ŝ 2 (â) if â dom(ŝ 1 ) dom(ŝ 2 ) } Eccezioni: êx 1 EX #êx 2 = {êx : n ŝt êx 1 (n) if n dom(êx 1 ) \ dom(êx 2 ) ŝt = êx 2 (n) if n dom(êx 2 ) \ dom(êx 1 ) êx 1 (n) ST #êx 2 (n) if n dom(êx 1 ) dom(êx 2 ) } Stati: ŝt 1 ST #ŝt 2 = (ê 1 E #ê 2, ŝ 1 S #ŝ 2, êx 1 EX #êx 2 )
15 Teoremi E stato provato che: γ ST è monotona: ŝt 1, ŝt 2 ST #, ŝt 1 ST ŝt 2 : γ ST (ŝt 1 ) ST γ ST (ŝt 2 ) α ST è monotona: ST 1, ST 2 ST, ST 1 ST 2 : α ST (ST 1 ) ST α ST (ST 2 ) ST ST γ ST (α ST (ST )) ŝt = α ST (γ ST (ŝt)) ST è un operatore di least upper bound ST è un operatore di greatest lower bound ST è un operatore di widening
16 Proprietà Per l analisi di una proprietà abbiamo inserito il concetto di firewall astratto. Tale firewall (su cui è parametrizzata la nostra analisi) interviene quando: si accede ad un campo di un oggetto si invoca un metodo di un oggetto Tale firewall analizza l oggetto e cosa si accede, e in base a ciò può intervenire lanciando (nell analisi astratta) un eventuale eccezione. Esempio: nel corso dell analisi della proprietà di applet isolation, si invoca un metodo di un oggetto. Il firewall controlla se il package da cui si accede l oggetto è lo stesso dell oggetto acceduto. Se così non è, controlla se il metodo invocato è condivisibile. Se non è così, non invoca il metodo e inserisce il lancio dell eccezione all interno dell analisi astratta.
17 Analisi statica modulare di linguaggi ad oggetti L analizzatore è stato implementato a partire dai concetti proposti e sviluppati nella tesi di dottorato di Francesco Logozzo ( Modular static analysis of object-oriented languages, 15/06/2004, Ecole Polytechnique, Paris). Semantica concreta di una classe: l insieme di tutti i possibili stati degli oggetti che possono essere istanziati a partire da questa. Un approssimazione sound di tale semantica concreta è data dalla soluzione del seguente sistema di equazioni.
18 dove: s 0 = init Constructors M[[init]](, init) s i = s i 1 ST s i = s i 1 ST me Methods me Methods M[[me]](s i 1, me ) if i [1..l ci ] M[[me]](s i 1, me ) if i > [l ci ] M[[me]] rappresenta la semantica del metodo me, a partire da uno stato iniziale e dal valore dei parametri del metodo Constructors è l insieme dei costruttori della classe analizzata Methods è l insieme dei metodi della classe analizzata me contiene la lista dei parametri del metodo me ciascuno con valore
19 Struttura del tool public class Applet1 {...} public class Applet2 {...} PARSER Albero sintattico ANALIZZATORE Output JAIL Limiti numerici Dominio astratto per interi Proprietà da analizzare
20 Screenshot
21 Risultati L analizzatore è stato implementato e può essere provato all url ferrara/jail Sono stati implementati vari domini astratti numerici (intervalli, segni, congruenze,...) e alcune proprietà (assenza di NullPointerException, rispetto della proprietà di applet isolation di JavaCard,...) In particolare è stata sviluppata nel dettaglio l analisi della proprietà di applet isolation
22 Future works Estensione dell analizzatore ad altre proprietà, tra cui l assenza di nested transactions, proprietà definita dal JavaCard Runtime Environment Progettazione e implementazione di un dominio astratto per valori numerici relazionale (dominio ottagonale) Implementazione della semantica completa delle librerie Java Card
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
Interpretazione astratta in praticaun analizzatore generico per Ja
Riassunto puntate precedenti Control Flow Graph Proprietà Dominio numerico Approssimazione Interpretazione astratta in pratica Un analizzatore generico per Java Pietro Ferrara Università Ca Foscari di
Esercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
Elementi di semantica operazionale
Elementi di semantica operazionale 1 Contenuti sintassi astratta e domini sintattici un frammento di linguaggio imperativo semantica operazionale domini semantici: valori e stato relazioni di transizione
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
Elementi di semantica denotazionale ed operazionale
Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato
Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)
Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università
Protezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
Esercizi della lezione 5 di Java
Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore
Object Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
Esercizio 1: trading on-line
Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente
Object Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Il Software. Il software del PC. Il BIOS
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
Prova di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro [email protected] Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate
Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)
Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni
con ANTLR tesi di laurea Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505
tesi di laurea con ANTLR Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505 Obiettivo Analisi statica di codice sorgente, realizzato in javascript,
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
Punti Fissi. Mappe tra insiemi parz. ordinati. Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati. Una funzione ϕ da P a Q si dice:
Punti Fissi Mappe tra insiemi parz. ordinati Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati. Una funzione ϕ da P a Q si dice: monotona (preserva l ordine) se p 1 P p 2 ϕ(p 1 ) Q ϕ(p 2 ) embedding
10 - Programmare con gli Array
10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture
STRUTTURE NON LINEARI
PR1 Lezione 13: STRUTTURE NON LINEARI Michele Nappi [email protected] www.dmi.unisa.it/people/nappi Per la realizzazione della presentazione è stato utilizzato in parte materiale didattico prodotto da Oronzo
Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
Programmazione ad oggetti
DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: [email protected] Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html
Programmazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
Verifica del codice con Interpretazione Astratta
Verifica del codice con Interpretazione Astratta Daniele Grasso [email protected] [email protected] Università di Firenze, D.S.I., Firenze, Italy December 15, 2009 D.Grasso (Università di Firenze)
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript
tesi di laurea di difetti all interno di codice Javascript Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Domenico Amalfitano candidato Vincenzo Riccio Matr.
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Sistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto
Definizione di nuovi tipi in C
Definizione di nuovi tipi in C typedef Ancora sui tipi di dato Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe
Sequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo.
Corso di Ingegneria del software - Seconda prova di verifica in itinere, 17 dicembre 2008 C, Montangero, L. Semini Dipartimento di Informatica, Università di Pisa a.a. 2008/09 La prova si svolge a libri
Artifact Centric Business Processes (I)
Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
GESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy [email protected] Rudimenti di programmazione Programming
Interpretazione astratta
Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.
Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva
Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
Invio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
Elementi di UML (7): Diagrammi dei componenti e di deployment
Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio
Organizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
15 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Introduzione a Classi e Oggetti
Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto
Allocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
Esercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Reflection in Java 1 Reflection Riflessione
Parola chiave extends
Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi
Semantica Assiomatica
Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,
Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1
Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro [email protected] Programmazione, lezione 18 19 gennaio
Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida
Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare
Monitor. Introduzione. Struttura di un TDA Monitor
Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione
dall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA
Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata
Mac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
14 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Panoramica: che cosa è necessario
Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo
Linguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
Il Metodo Branch and Bound
Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa [email protected] http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale
Tipi di Dato Ricorsivi
Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi
RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova
RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Esercitazione 4 JDBC
JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra
4.5 Stampa 4.5.1 Stampare semplici fogli elettronici 4.5.1.1 Usare le opzioni di base della stampa Per effettuare la stampa di una cartella di lavoro si accede al comando Stampa dal menu File o si utilizza
Scheduling della CPU Simulazione in linguaggio Java
Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
UML Component and Deployment diagram
UML Component and Deployment diagram Ing. Orazio Tomarchio [email protected] Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione
Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
Eclipse - Nozioni Base
Eclipse - Nozioni Base Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Progetto Automi e Linguaggi Parser svliluppato con JLex e cup
Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la
Database. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
