Confronto tra i principali Linguaggi di Programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Confronto tra i principali Linguaggi di Programmazione"

Transcript

1 Confronto tra i principali Linguaggi di Programmazione per Sistemi Mobile Biagini Piero Tesina Programmazione di Sistemi Mobile Anno Accademico Docente: Prof. Mirko Ravaioli Tutor: Nicolò Sordoni, Andrea Marozzi BIAGINI PIERO 1

2 della tesina In questa tesina si parlerà dei Linguaggi di Programmazione più utilizzati nei Sistemi Mobile, ovvero: (Android) C# (Windows Phone) e (ios) Verranno evidenziate somiglianze e differenze riguardanti la sintassi e le funzionalità. Introduzione è un linguaggio di programmazione orientato agli oggetti progettato per essere indipendente dalla piattaforma su cui viene eseguito. Il progetto nasce nel 1992, inizialmente chiamato Oak poi ribattezzato nell attuale, all università di Stanford. Lo sviluppo viene poi portato avanti dalla Sun Microsystem, in particolare dal team con a capo James Gosling. La presentazione ufficiale avvenne nel maggio del La sintassi di base viene mantenuta pressoché identica a quella del C++ per semplificare il passaggio da tale linguaggio, ma alcune delle caratteristiche più complesse (es. aritmetica dei puntatori, ereditarietà multipla, istruzione goto, ) sono state rimosse per rendere l utilizzo di più semplice e sicuro. Il linguaggio viene definito in un documento chiamato The Language Specifcation (JLS), pubblicato per la prima volta nel 1996 e in seguito ricevuto e ampliato. Ad oggi la versione più recente è SE 8 Edition. Uno dei punti di forza del linguaggio è il fatto che, grazie all utilizzo del processore virtuale Virtual Machine (JVM), il codice compilato (bytecode) per una certa piattaforma non deve essere ricompilato per essere eseguito su un altra (anche se esistono alcune classi che sono specifiche, ad esempio, per il sistema operativo su cui vengono utilizzate). La JVM è inclusa all interno del Runtime Environment (JRE), necessario per l esecuzione del programma compilato. e Android è il linguaggio principale utilizzato per la programmazione di applicazioni Android. In particolare il comportamento dell applicazione viene definito, generalmente, da codice, mentre il layout degli oggetti grafici è descritto in XML. BIAGINI PIERO 2

3 Non viene, tuttavia, utilizzata la classica JVM, ma ne sono state create delle versioni specifiche (in particolare Dalvik Virtual Machine fino alla versione Jelly Bean e ART da KitKat in poi). Il paradigma di programmazione utilizzato per la costruzione delle applicazioni è Event Driven, ovvero non esiste un entry point da cui il programma si avvia, carica ed esegue le sue parti, ma ogni classe è pensata per essere un componente pilotato dagli eventi. Ciò, se i componenti sono sufficientemente indipendenti, permette al SO di ottimizzare l uso di risorse evitando di caricare componenti non necessari o, allo stesso tempo, permette la condivisione di funzionalità (con un meccanismo chiamato Intent). Le applicazioni per Android vengono distribuite dal Play Store oppure direttamente sotto forma di APK (un pacchetto contenente i codici da compilare). IDE L IDE di riferimento è Android Studio, un ambiente di sviluppo basato su IntelliJ IDEA (prodotto da JetBrains). Esso ha sostituito il vecchio Eclisse Android Development Tools (ADT) basato su Eclipse. E disponibile per tutti i sistemi operativi più diffusi (Windows, Mac OS X e varie distribuzioni di Linux). C# C# è un linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft all interno della framework.net. Il progetto nasce nel gennaio 1999, quando Anders Hejlsberg forma un team per lo sviluppo di un nuovo linguaggio di programmazione Object Oriented C-Like (Cool, C-like Object Oriented Language). E stato in seguito pubblicato nel luglio del 2000 alla Professional Developers Conference dopo averlo rinominato con il nome attuale e dopo aver riscritto nel nuovo linguaggio le librerie ASP.NET. Inizialmente visto come poco più di una copia di, a partire dal 2005 (anno di pubblicazione della seconda versione) ha iniziato sempre più a divergere (se non nei contenuti, nell implementazione di essi). C# non è definibile pienamente né come linguaggio compilato, né come linguaggio interpretato. In prima istanza il framework converte il programma in un codice intermedio (detto CIL) e al momento dell esecuzione il CLR, specifico per il SO, converte il CIL in codice macchina secondo una compilazione di tipo JIT. E tuttavia possibile adottare anche un tipo di compilazione detto Ngen, che permette di convertire tutto il codice CIL in codice macchina in una volta sola. A differenza di, la cui JVM (o altra macchina virtuale) è disponibile per più sistemi operativi diversi, il framework e il CLR sono disponibili solamente per Windows. Esistono tuttavia alcuni progetti open source non ufficiali come Mono e DotGNU. BIAGINI PIERO 3

4 C#e Windows Phone C# è il principale linguaggio di sviluppo per Windows Phone. Altri linguaggi utilizzati sono Visual Basic, C++ o Script. A differenza di Android, le applicazioni sviluppate per Windows Phone sono universali, ovvero sono in grado di funzionare sia su dispositivi mobili che su computer (nonostante le applicazioni vengano distribuite da due store paralleli, rispettivamente Windows Phone Store e Windows Store). Esse si basano su Windows Runtime. Oltre al C# un altro linguaggio che deve essere necessariamente utilizzato per la creazione delle app, in particolare per la descrizione del layout della varie view,è XAML (extensible Application Markup Language), analogo all XML di Android ma sviluppato da Microsoft. IDE L IDE di riferimento per la programmazione di applicazioni per Windows è Visual Studio. Esso è disponibile solamente per Windows. E inoltre necessario, a causa dell utilizzo di Windows Runtime, utilizzare la versione di Windows 8.1. è un linguaggio di programmazione orientato agli oggetti, estensione del precedente linguaggio (non a oggetti) C. Esso è ispirato al linguaggio Smalltalk e ha una logica e una sintassi notevolmente diversa da quella degli altri linguaggi OOP più diffusi ( e C#), tra cui, per esempio, la gestione dei messaggi tra gli oggetti. Il progetto nasce all inizio degli anni 80 da parte di Brad Cox e Tom Love. Essi decisero di modificare un compilatore C aggiungendo alcune caratteristiche prelevate dal linguaggio a oggetti che già conoscevano (Smalltalk) in modo da permettere, tra l altro, una maggiore riusabilità del codice. Il linguaggio così creato prese il nome di OOPC (Object-Oriented Programming in C) e venne presto dotato di numerose librerie software che consentivano al codice sorgente di essere raccolto in un solo formato multipiattaforma. La pubblicazione avvenne nel 1986 con il nome attuale. Steve Jobs, durante il suo lavoro alle NeXT (fondata dopo Apple) ottenne la licenza dell e fece realizzare il proprio compilatore e le proprie librerie sulle quali basò il sistema operativo NeXTSTEP. Dopo aver comprato NeXT nel 1966 Apple prese come base il SO NeXTStep per sviluppare il sistema operativo Mac OSX. Tutt ora le principali API di Apple (Cocoa) sono basate sugli oggetti di interfaccia OpenStep. In seguito, con l uscita sul mercato dei dispositivi mobili, venne creata l estensione Cocoa Touch. è un linguaggio totalmente compilato. BIAGINI PIERO 4

5 e ios è il linguaggio storico per lo sviluppo di applicazioni per ios (oggi è in via di sostituzione da, il nuovo linguaggio creato ad hoc da Apple di cui parleremo in seguito. Viene utilizzato il framework Foundation Kit. Esso è fedele alle specifiche di OpenStep (clone open source di NeXTStep), contenuto all interno delle Cocoa Touch API. Cocoa Touch è il framework per costruire l interfaccia grafica (contiene i set di controlli ed elementi grafici da usare nelle view) e fornisce al programmatore un astrazione del sistema operativo, permettendo di utilizzare l hardware presente all interno degli smartphone e dei tablet Apple. L architettura su cui si basano le applicazioni per ios è MVC (Model View Controller). IDE L unico IDE utilizzabile per programmare applicazioni per ios utilizzando questo linguaggio è Xcode. Esso è disponibile per le più recenti versioni del sistema operativo di casa Apple (Mac OSX). è il nuovo linguaggio di programmazione per sistemi ios e OS X presentato da Apple durante il WWDC E un linguaggio di tipo objectoriented progettato per coesistere con (linguaggio tipicamente utilizzato per gli stessi scopi), ma rendendo la scrittura del codice più semplice. Il progetto nasce nel 2010, portato avanti da un team guidato da Chris Lattner. Si ispira agli altri linguaggi di programmazione più diffusi, come, Rust, Haskell, Ruby, Python, C#, CLU, La presentazione ufficiale avviene nel 2014, quando viene rilasciata al pubblico la prima app sviluppata in questo linguaggio. è un linguaggio di tipo compilato. Grazie al compilatore LLVM è possibile creare programmi che contengono parti di codice in diversi linguaggi (C,, C++ e ). Il manuale ufficiale del linguaggio può essere trovato sull ibook Store. e ios sta affiancando nella programmazione di dispositivi ios. Esso ha infatti il vantaggio di avere una sintassi e un funzionamento notevolmente più semplici e simili ad altri linguaggi più comuni. non è, tuttavia, completo: alcune funzionalità devono necessariamente essere implementate in (es. l utilizzo delle mappe) in quanto ancora non sono state BIAGINI PIERO 5

6 scritte librerie adeguate. In questi casi torna utile la possibilità di mescolare moduli scritti in linguaggio diverso. Le restanti considerazioni fatte per possono essere considerate valide anche per. IDE Come per, l unico IDE utilizzabile è Xcode. Confronto Organizzazione dei file Il codice sorgente è contenuto all interno dei file.java. Di norma si utilizza un file per ogni classe, ma è possibile inserire anche più classi all interno dello stesso file (lo si fa quando si utilizzano classi anonime o innestate). C# Il codice sorgente è contenuto all'interno dei file.cs. Come in, di norma si inserisce un unica classe o un unico namespace all interno dello stesso file, ma è possibile inserire due o più classi o namespace all interno dello stesso file. Il codice sorgente è diviso in più file:.h: file header, contengono la dichiarazione di classi, tipi, funzioni e costanti..m: file sorgente che può contenere codice o C. Esso generalmente implementa classi e funzioni dichiarate nel relativo file header..mm: file sorgente che può contenere codice C++ oltre che e C. Il codice sorgente è contenuto all'interno dei file.swift. Generalmente si consiglia di inserire una sola classe all interno di ogni file, ma non esistono vincoli particolari. Organizzazione delle classi Le classi possono essere raggruppate in package. Essi permettono di dividere le classi in base, per esempio, a criteri semantici ed eventualmente di limitare la visibilità delle classi stesse o dei loro metodi o campi. C# Le classi possono essere raggruppate in namespace. Sono praticamente analoghi ai package di. Non è definito un modo particolare per organizzare le varie classi. Eventualmente i file sorgenti possono essere organizzati per cartella. Non è definito un modo particolare per organizzare le varie classi. Eventualmente i file sorgenti possono essere organizzati per cartella. BIAGINI PIERO 6

7 Visibilità di metodi, campi e classi private: l elemento è visibile solamente all interno della stessa classe. package: l elemento è visibile solamente all interno dello stesso package (visibilità di default) protected: l elemento è visibile solamente all interno della classe stessa oppure dalle sue sottoclassi. public: l elemento è visibile da qualunque parte del codice. C# private: l elemento è visibile solamente all interno della classe stessa. internal: l elemento è visibile solamente all interno dello stesso assembly. protected: l elemento è visibile solamente all interno della classe stessa oppure dalle sue sottoclassi. public: l elemento è visibile da qualunque parte del l elemento è visibile solamente all interno della classe l elemento è visibile solamente all interno della classe stessa oppure dalle sue l elemento è visibile da qualunque parte del codice. private: l elemento è visibile solamente all interno della classe stessa. internal: l elemento è visibile solamente all interno dello stesso modulo. public: l elemento è visibile da qualunque parte del codice. In, C# e è sufficiente apporre, prima del nome dell elemento che si vuole limitare, il tipo di visibilità desiderata. In la visibilità va invece specificata nella riga immediatamente prima. Paradigma a oggetti Incapsulamento: Ereditarietà Polimorfismo cia Sì Sì, singola Sì C# Sì Sì, singola Sì Sì Sì, singola Sì Sì Sì, singola Sì Tipi primitivi Le variabili dichiarate in questo modo non corrispondono a oggetti e, per questo, non possono avere valore nullo (al momento della dichiarazione, se non inizializzate esplicitamente, assumono un valore di default). I tipi disponibili sono byte, short, int, long, float, double, boolean, char. Ad ogni tipo primitivo corrisponde anche una classe che fa wrapping. Grazie all autoboxing è possibile assegnare semplicemente un un operatore = il valore dei tipi primitivi alla classe e viceversa. BIAGINI PIERO 7

8 C# Esistono due classi di tipi: Value Types e Reference Types. I primi sono allocati nello stack e contengono direttamente il valore (tipi primitivi) mentre i secondi fanno riferimento a oggetti allocati dinamicamente nello heap (oggetti). Di seguito alcuni esempi di value types: short, int, long, byte, char, float, double, decimal, bool. utilizza gli stessi tipi primitivi del C, quindi short, int, long, float, double, BOOL, char. Vengono utilizzati gli stessi tipi primitivi di : Int, Double, String, Gestione della memoria C# Entrambi i linguaggi utilizzano un Garbage Collector automatico: l utente non ha possibilità di controllare come viene gestita la memoria ma un sistema automatico controlla a tempo di esecuzione se gli oggetti possono o meno essere cancellati. I linguaggi per dispositivi Apple utilizzano una funzionalità detta ARC (Automatic Reference Counting). Per ogni oggetto allocato è mantenuto il conteggio dei riferimenti ad esso. Se il riferimento viene cancellato il contatore viene decrementato mentre se il riferimento viene creato il contatore viene incrementato. Una volta che ha raggiunto lo 0 si può supporre che nessuno abbia più riferimenti a tale oggetto e che possa, quindi, essere cancellato. Tale conteggio viene fatto compile-time. Classi e interfacce Ogni classe dichiarata estende da object, ma è possibile anche estendere altre classi. Per riferirsi a componenti della classe stessa può essere utilizzata la parola chiave this mentre per riferirsi a componenti della superclasse si utilizza la parola chiave super. E possibile anche dichiarare classi statiche. Una classe può essere dichiarata con una sintassi analoga alla seguente: public class myclass extends mysuperclass implements myinterface { //fields //methods C# Ogni classe dichiarata estende da object, ma è possibile anche estendere altre classi. Per riferirsi a componenti della classe stessa può essere utilizzata la parola chiave this mentre per riferirsi a componenti della superclasse si utilizza la parola chiave super. Un metodo o un campo di classe può essere dichiarato utilizzando la keyword static. E possibile anche dichiarare classi statiche. Una classe può essere dichiarata con una sintassi analoga alla seguente: public class myclass : mysuperclass, myinterface { //fields //methods BIAGINI PIERO 8

9 Ogni classe dichiarata deve estendere esplicitamente da una classe base detta oggetto root (oggetto che non estende da altri oggetti). L oggetto root più comune è NSObject. Per riferirsi a componenti della classe stessa può essere utilizzata la parola chiave self mentre per riferirsi a componenti della superclasse si utilizza la parola chiave super. Un metodo di classe viene dichiarato inserendo un segno (+), mentre un metodo d istanza inserendo un segno (-). Nota particolare per questo linguaggio dev essere fatta per le interfacce: a differenza degli altri, infatti, l interfaccia deve essere obbligatoriamente scritta nel file header. Il file sorgente importerà tale file e ne definirà l implementazione. Una tipica dichiarazione di classe prevede i seguenti costrutti: //NEL FILE MyClass : NSObject { //public fields L implementazione sarà poi presente all interno del file.m che importa tale file header tramite la direttiva #import. //NEL FILE myclass.m #import MyClass { //questa sezione si può omettere //private fields //methods Tramite la tecnica delle categorie è anche possibile aggiungere metodi (ma non campi)a classi già fatte (sia classi create personalmente che classi di libreria). Per utilizzare questo metodo bisogna, al momento dell importazione, specificare entrambi gli header separandoli con un segno + e, nella riga dove si definisce l implementazione della classe, specificare tra parentesi tonde la categoria che verrà aggiunta. Non esiste un limite al numero di categorie che possono essere aggiunte, ma ognuna deve dichiarare e definire metodi diversi. Ogni classe dichiarata deve estendere esplicitamente da una classe base detta oggetto root (oggetto che non estende da altri oggetti). L oggetto root più comune è NSObject. Per riferirsi a componenti della classe stessa può essere utilizzata la parola chiave self mentre per riferirsi a componenti della superclasse si utilizza la parola chiave super. Una dichiarazione di classe può essere fatta in questo modo: public class myclass : mysuperclass, myinterface { //fields //methods BIAGINI PIERO 9

10 Metodi La sintassi per la dichiarazione dei metodi è la seguente: public returntype mymethod(type param1, type param2, ) { Un metodo di classe può essere dichiarato utilizzando la keyword static. Un metodo può essere richiamato tramite la dot notification (nomedelloggetto.metodo() per metodi di istanza oppure nomedellaclasse.metodo() per metodi di classe). C# La sintassi per la dichiarazione dei metodi è la seguente: public returntype mymethod(type param1, type param2, ) { Un metodo di classe può essere dichiarato utilizzando la keyword static. Un metodo può essere richiamato tramite la dot notification (nomedelloggetto.metodo() per metodi di istanza oppure nomedellaclasse.metodo() per metodi di classe). La sintassi per la dichiarazione dei metodi è la seguente: - (returntype)methodnameparam1label:(type)param1name Param2Label:(type)Param2Name; //metodo di istanza +(returntype)methodnameparam1label:(type)param1name Param2Label:(type)Param2Name; //metodo di classe A differenza degli altri linguaggi di programmazione in non si chiama un metodo, ma si invia un messaggio. Esso corrisponde alla firma del metodo con, in aggiunta, le informazioni sui parametri. La sintassi è la seguente: [myobject methodnameparam1label:value Param2Label:value]; La sintassi per la dichiarazione dei metodi è la seguente: public func myfuncname(param1:type, param2:type, ) - > ReturnType { Un metodo o un campo di classe può essere dichiarato utilizzando la keyword static. Un metodo può essere richiamato tramite la dot notification (nomedelloggetto.metodo() per metodi di istanza oppure nomedellaclasse.metodo() per metodi di classe). In, C# e è possibile fare overload dei metodi delle classi semplicemente aggiungendo la parola chiave override e riprendendo la signature del metodo di cui si vuole fare overload. Al contrario, non supporta pienamente tale funzione, ma si adotta lo stratagemma di modificare il primo argomento. In tutti i linguaggi è inoltre possibile creare classi astratte, ma mentre in e in C# non è possibile poi istanziarle a causa di controlli del compilatore, in non è presente tale limitazione (non esiste infatti distinzione tra classe astratta o meno). BIAGINI PIERO 10

11 Dichiarazione di variabili, oggetti e campi Per i tipi primitivi: type name = initvalue; Per gli oggetti: class name = new Class(params); Nel caso si parli di campi è possibile aggiungere diverse parole chiave, tra cui final (valore non più modificabile), volatile (utile nel caso la variabile sia condivisa da più thread, evita inconsistenza), static (campo di classe), C# Per i tipi primitivi: type name = initvalue; Per gli oggetti: class name = new Class(params); Nel caso si parli di campi è possibile aggiungere diverse parole chiave, tra cui final, volatile, static, Nel caso di dichiarazione e inizializzazione della variabile sulla stessa riga è possibile usare la parola chiave var invece del tipo o della classe. Per i tipi primitivi: type name = initvalue; Per gli oggetti: class *name = [[Class alloc] init]; E necessario ricordarsi che in sono presenti i puntatori. E possibile dichiarare un puntatore semplicemente apponendo un * prima del nome della variabile. Per i tipi primitivi: var name:mytype = initvalue; Per gli oggetti: var name:class = Class(paramName:param ); Oltre alla parola chiave var è presente anche la parola chiave let. La differenza è che con la prima il valore può essere modificato mentre con la seconda no. Nel caso l inizializzazione avvenga nello stesso momento della dichiarazione della variabile, il tipo di dato può essere omesso. Interfacce e protocolli Le interfacce ( e C#) o protocolli () consentono di definire un elenco di metodi che le classi che implementano l interfaccia/protocollo dovranno contenere e implementare. Essi si dichiarano in maniera analoga alle classi ma usando la parola chiave interface o protocol (a seconda del linguaggio che si sta utilizzando). BIAGINI PIERO 11

12 Proprietà In C# e è possibile definire le proprietà, ovvero metodi di accesso ai campi degli oggetti dichiarabili in maniera veloce. C# type fieldname { { get; { set; All interno delle parentesi graffe che contengono get e set è possibile specificare delle operazioni che dovranno essere compiute prima di ottenere il dato o prima dell assegnazione. Non è necessario creare entrambi i metodi di mytype myvariable; Tale sintassi è analoga a definire due metodi di accesso, un getter e un setter. Il primo ha nome uguale al campo mentre il secondo prende il nome di setmyvariable:. E eventualmente possibile specificare nomi diversi. Dopo essere state dichiarate, le proprietà devono essere implementate tramite la public enum MyEnum { elem1, elem2, Enumeration In le Enum vengono dichiarate come classi. I valori possono essere richiamati tramite la dot notification. C# enum MyEnum { elem. = value, elem. = value, In C# le Enum possono essere dichiarate all interno delle classi. E possibile assegnare un valore ad ogni elemento. I valori possono essere richiamati tramite la dot notification. enum MyEnum { elem1, elem2, ; E poi possibile definire un nuovo tipo di dato per evitare di utilizzare la keyword enum ogni volta. In questo modo i valori possono essere richiamati semplicemente chiamandoli per nome. typedef MyEnumType MyEnum enum MyEnum { elem1, elem2, I valori possono essere richiamati tramite dot notification. BIAGINI PIERO 12

13 Delegate/Closure e Lambda Expression Il meccanismo dei delegate non è disponibile in. Le Lambda Expression sono disponibili a partire dalla versione 8 e possono essere dichiarate con la seguente sintassi: type lambdaname = (list of params) - > { //statement or block of code C# Entrambe le funzionalità sono disponibili in C#. Per l utilizzo dei delegate è sufficiente dichiarare una variabile di tipo delegate e assegnare ad essa un metodo tramite l operatore =: returntype myfunction() { delegate returntype delegatename(params) = myfunction(); Le Lambda Expression hanno una sintassi simile a quella di : delegate returntype lambdaname(params) => { //statement or block of code In i delegate prendono il nome di Blocchi o Closure. Possono essere dichiarati in questo modo: returntype (^ myblock)(params); //dichiarazione del prototipo myblock = ^(params) { //code ; Il blocco così dichiarato può essere utilizzato, utilizzato direttamente o anche passato come parametro. Come in C#, per la creazione di un delegate è sufficiente assegnare ad una variabile un metodo creato in precedenza oppure un metodo anonimo creato con la seguente sintassi: var myclosure = { (parameters) - > returntype in //statements BIAGINI PIERO 13

Oggetti Lezione 3. aspetti generali e definizione di classi I

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

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

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. 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

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Programmazione in Java Parte I: Fondamenti

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

Dettagli

Database. Si ringrazia Marco Bertini per le slides

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

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 08 Traduzione ed esecuzione di programmi Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente materiale didattico

Dettagli

Object Oriented Programming

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

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina

Dettagli

Parola chiave extends

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

Dettagli

Manuale di realizzazione dei modelli di documento

Manuale di realizzazione dei modelli di documento MystiqueXML Manuale di realizzazione dei modelli di documento Indice 1 Le tabelle...5 1.1 Tabelle condizionali...5 1.2 Tabelle Multiple - un solo livello...5 1.3 Tabelle Multiple - a più livelli...5 2

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

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

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

XML e PHP. Gestire XML con PHP. Appendice

XML e PHP. Gestire XML con PHP. Appendice Appendice XML e PHP Tra tutti i linguaggi di programmazione esistenti PHP è tra quelli che meglio si adattano all elaborazione di documenti XML. PHP è un linguaggio di programmazione che consente di arricchire

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

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

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

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

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Java: Compilatore e Interprete

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

Dettagli

INFORMATICA 1 L. Mezzalira

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

Dettagli

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

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/

Dettagli

dall argomento argomento della malloc()

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 È

Dettagli

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

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Guida all uso delle Web View su ios

Guida all uso delle Web View su ios Guida all uso delle Web View su ios Tesina per il corso di Programmazione di Sistemi Mobile Lorenzo Pellegrini Matricola: 0000653299 Cosa sono le Web View? Le web view sono componenti grafiche, integrabili

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

Concetto di Funzione e Procedura METODI in Java

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

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

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

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

Università degli Studi di Messina

Università degli Studi di Messina Università degli Studi di Messina Guida alla Rendicontazione on-line delle Attività del Docente Versione della revisione: 2.02/2013-07 A cura di: Fabio Adelardi Università degli studi di Messina Centro

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Introduzione alla programmazione in C

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

Dettagli

CASO D USO: MICRORACCOLTA. 21 aprile 2015 www.sistri.it

CASO D USO: MICRORACCOLTA. 21 aprile 2015 www.sistri.it CASO D USO: MICRORACCOLTA 21 aprile 2015 www.sistri.it DISCLAIMER Il presente documento intende fornire agli Utenti SISTRI informazioni di supporto per poter utilizzare agevolmente ed in maniera efficace

Dettagli

Funzioni in C. Violetta Lonati

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

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

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

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Product Shipping Cost Guida d'installazione ed Utilizzo

Product Shipping Cost Guida d'installazione ed Utilizzo Guida d'installazione ed Utilizzo Installazione Per installare il modulo è sufficiente copiare la cartella app del pacchetto del modulo nella cartella principale dell'installazione di Magento dove è già

Dettagli

Ambienti di Sviluppo

Ambienti di Sviluppo Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Editor; Compilatori e/o interpreti; Strumenti di test; Applicazioni che permettono di editare / disegnare il

Dettagli

Visual basic base Lezione 01. L'ambiente di sviluppo

Visual basic base Lezione 01. L'ambiente di sviluppo L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft

Dettagli

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

Dettagli

Informa(ca Appun% dal laboratorio 2

Informa(ca Appun% dal laboratorio 2 Informa(ca Appun% dal laboratorio 2 Conce- fondamentali Esistono programmi, come Microso8 Word oppure Acrobat Reader, che vengono usa% dagli uten% per far eseguire al computer determinate operazioni (come

Dettagli

Il Software. Il software del PC. Il BIOS

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:

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso Informazioni generali Docente: Prof.ssa Dora Giammarresi: giammarr@mat.uniroma2.it Tutor:??? Informazioni generali

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

Gestione dei servizi all utenza. 3. Autorizzazioni

Gestione dei servizi all utenza. 3. Autorizzazioni Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane e per le Informazioni bibliografiche Manuali utente per SBN WEB Gestione dei servizi all utenza 3. Autorizzazioni 1 2 1. Introduzione

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

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

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Proff. Fabio Ciao e Raffaele Bortone

Proff. Fabio Ciao e Raffaele Bortone ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Acronis Universal Restore

Acronis Universal Restore Acronis Universal Restore MANUALE UTENTE Sommario 1 Che cos'è Acronis Universal Restore...3 2 Installazione di Acronis Universal Restore...3 3 Creazione di supporto di avvio...3 4 Utilizzo di Acronis Universal

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo Ing. Giovanni Ponti DEIS Università della Calabria gponti@deis.unical.it La piattaforma Java mette a disposizione una serie

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

Dettagli

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

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

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

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

Dettagli

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Sistema operativo: Gestione della memoria

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

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15 WG TRANSLATE Pagina 1 di 15 Sommario WG TRANSLATE... 1 1.1 INTRODUZIONE... 3 1 TRADUZIONE DISPLAY FILE... 3 1.1 Traduzione singolo display file... 4 1.2 Traduzione stringhe da display file... 5 1.3 Traduzione

Dettagli

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

Visual Basic.NET La Gestione degli Errori di Federico BARBATI Generalità Visual Basic.NET La Gestione degli Errori di Federico BARBATI La gestione degli errori, è una parte fondamentale di un codice ben progettato. Fino ad oggi, gli errori nelle applicazioni scritte

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

5.6.1 REPORT, ESPORTAZIONE DI DATI

5.6.1 REPORT, ESPORTAZIONE DI DATI 5.6 STAMPA In alcune circostanze può essere necessario riprodurre su carta i dati di tabelle o il risultato di ricerche; altre volte, invece, occorre esportare il risultato di una ricerca, o i dati memorizzati

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli