t S C I R M A // Andrea Valle CIRMA Centro Interdipartimentale di Ricerca sulla Multimedialità e l Audiovisivo Università di Torino

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "t S C I R M A // Andrea Valle CIRMA Centro Interdipartimentale di Ricerca sulla Multimedialità e l Audiovisivo Università di Torino"

Transcript

1 CIRMA Centro Interdipartimentale di Ricerca sulla Multimedialità e l Audiovisivo Università di Torino t S C I R M A h e u p e r o l l i d e r t a l i a n a n u a l (--> DRAFT: 17 maggio 2007) // Andrea Valle 1

2 Quest opera è stata rilasciata sotto la licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.5 Italia. Per leggere una copia della licenza visita il sito web o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Questo lavoro utilizza molti software open source SuperCollider: ciò di cui si parla (http://supercollider.sourceforge.net/) Praat: analisi e visualizzazione dei segnali audio (http://www.praat.org/) Python: generazione del codice TEX colorato a partire da quello in SuperCollider (http://www.python.org/) TEX: tipografia automatica (http://www.ctan.org/) ConTEXt: preparazione globale del documento basata su TEX (http://www.pragma-ade.nl/) PyX: visualizzazione dei segnali audio (cap. 5) (http://pyx.sourceforge.net/) GraphViz: generazione dei grafi che rappresentano le relazioni di ereditarietà tra classi in SuperCollider, diagrammi di flusso per le unità audio (http://www.graphviz.org/) TeXShop: tutto l editing basato su TEX (http://www.uoregon.edu/~koch/texshop/) 2

3 1 Introduzione Ciò di cui si parla: SuperCollider Obiettivi Fonti Convenzioni grafiche 8 2 SuperCollider grado Che cos è SuperCollider Alcuni buoni motivi (a scelta) per usare SC Disponibilità rispetto ai sistemi operativi Dove reperire SuperCollider SwingOSC Altri siti di rilievo Installazione (MacOSX e Win32) Informazioni di base sull ambiente di sviluppo Salvare ed aprire documenti, help file compresi 17 3 Object Oriented Programming in SC: fondamenti Minima objectalia Oggetti in SC Metodi e messaggi I metodi di tipo post e dump Numeri 33 4 Sintassi: elementi fondamentali (Parentesi) // Commenti (/*di diverso tipo*/) "Stringhe" Variabili Simboli Espressioni ; Errori {Funzioni} Classi, messaggi/metodi e keyword Esempio Introduzione Creazione degli elementi GUI Interazione Per finire Controlli di flusso Ancora un esempio GUI 54 3

4 La funzione di generazione dei valori colore Modularizzare la GUI Controllo delle azioni 57 5 Sintesi, I: fondamenti Poche centinaia di parole d acustica Algoritmi di sintesi Nota sul metodo play Altri segnali e altri algoritmi Funzione valore assoluto e funzione quadratica Ancora sull elaborazione di segnali Segnali di controllo Conclusioni Nota sulla rappresentazione dei segnali 99 6 L architettura e il server L architettura Esempi SwingOSC Graphista! Il client sclang Un impianto chimico per la produzione di liquidi e un server audio in tempo reale Appetizer: un esempio si sintesi e controllo in tempo reale Una synthdef UGen e UGen-Graph Un synth GUI e controller Controlli e canali Inviluppi Generalizzazione degli inviluppi Sinusoidi & sinusoidi Segnali pseudo-casuali Espansione e riduzione multicanale Sintesi, II: tecniche di generazione del segnale audio Oscillatori e tabelle Campionamento Campionamento semplice Resampling e interpolazione 167 4

5 8.2.3 Looping Segnali in entrata Sintesi additiva Sintesi sottrattiva Analisi e risintesi Modulazione Modulazione ad anello e d ampiezza Modulazione di frequenza C:M ratio Waveshaping Suono organizzato: (minimal) scheduling in SC Routines Orologi 216 5

6 1 Introduzione 1.1 Ciò di cui si parla: SuperCollider SuperCollider (SC) è un pacchetto software per la sintesi e il controllo dell audio in tempo reale 1. Attualmente rappresenta lo stato dell arte nell ambito della programmazione audio: non c è altro software disponibile che sia insieme così potente, efficiente, flessibile. L unico punto a sfavore di SC è che non è intuitivo : richiede competenze relative alla programmazione, alla sintesi del segnale audio, alla composizione musicale (nel senso più lato, aperto e sperimentale del termine). Ci si potrebbe chiedere d altra parte in che senso un violino, una chitarra elettrica, una batteria presentino un interfaccia utente intuitiva : non c è forse bisogno di un duro lavoro per cavare fuori una nota da un violino o per tenere un tempo suonando una batteria? Il disagio che il neofita prova con SC dipende però forse da un altro fatto: SC è preciso ed efficiente ma è puntiglioso ed ha un forte senso della responsabilità. Ciò che spetta al programmatore, spetta a lui solo: SC non lo aiuterà in caso di sue mancanze. Per chiudere il parallelo, SC è come uno Stradivari per il violinista: dipende da quest ultimo farlo suonare come quello sa fare. Non è come un carillon in cui basta caricare la molla, poiché tutta la competenza relativa alla generazione e al controllo del suono è in fondo già ascritta al meccanismo. Anche se a dire il vero, come si vedrà, SC può tramutare un carillon in uno Stradivari. 1 Si vedrà più avanti che cosa indica specificamente pacchetto software 1.2 6

7 1.2 Obiettivi L obiettivo di quanto segue è duplice: 1. introdurre alcuni aspetti fondamentali relativi a quell ambito che viene usualmente indicato, con una definizione a volte imprecisa e a volte impropria, computer music 2. fornire una breve panoramica ed insieme un introduzione a SuperCollider in italiano. L ipotesi di partenza (e indipendentemente di risultati) è quella di far interagire i due ambiti, attraverso una reciproca specificazione 1.3 Fonti Il materiale presentato è, in qualche misura, originale. La parte relativa alla sintesi riprende alcune parti di Audio e multimedia 2 e vi include parti di materiali provenienti dai corsi degli anni precedenti. Trattandosi di materiale introduttivo, è chiaro che il testo si affida saldamente al suo intertesto costituito dai molti testi analoghi, più complessi e più completi, che lo precedono. Questo vale a maggior ragione per la parte dedicata a SuperCollider. Non è una traduzione in senso stretto di scritti già esistenti: tra l altro, attualmente, non esiste un libro di riferimento per SuperCollider 3. E tuttavia è chiaro che il testo scritto è fittamente intessuto di prestiti provenienti dagli help file, dai tutorial di James McCartney, Mark Polishook, Scott Wilson, dal testo di David Cottle, dalle osservazioni preziosi fornite dalla SuperCollider mailing list, dalle informazioni accessibili attraverso il SuperCollider wiki. La lettura di queste fonti non è in nessun modo resa superflua dal testo seguente, il quale ha invece semplicemente un ruolo propedeutico 2 Lombardo, V. e Valle, A., Milano, Apogeo 2005, 2ed. 3 È in fase di definizione il progetto di un SuperCollider Book, sull esempio del Csound Book, potenzialmente per gli stessi tipi della MIT press

8 rispetto alle stesse, perché quantomeno evita al lettore italiano la difficoltà supplementare della lingua straniera. 1.4 Convenzioni grafiche Il manuale prevede tre distinzioni: 1. testo: in carattere nero normale, senza particolarità, esattamente come quanto scritto qui 2. codice: è scritto in carattere typewriter, utilizza lo schema colori della versione MacOSX per la sintassi, è riquadrato in blu e le righe sono numerate. Al di sotto di ogni esempio è presente un marcatore interattivo. Esso permette di accedere al file sorgente dell esempio che è incluso nel pdf, e di aprirlo direttamente con l applicazione SuperCollider. Per garantire la funzione è bene usare Acrobat Reader. Alla prima apertura Reader richiede di impostare il suo comportamento nei confronti dell allegato 1 // ad esempio 2 "a caso".postln ; 3. post-window: è scritto in nero; con carattere typewriter, e riporta una parte di sessione con l interprete SuperCollider. È riquadrato in arancio e le righe sono numerate. 1 "così".postln 1.4 8

9 2 SuperCollider grado Che cos è SuperCollider SuperCollider (SC) è un pacchetto software per la sintesi e il controllo dell audio in tempo reale. La definizione di pacchetto software tuttavia si rivela piuttosto vaga. Per arrivare ad una definizione più analiticamente ed esauriente, è meglio partire dalla definizione di SC che appare sulla homepage di Sourceforge 4 : SuperCollider is a state of the art, realtime sound synthesis server as well as an interpreted Object Oriented language which is based on Smalltalk but with C language family syntax. The language functions as a network client to the sound synthesis server. (http://supercollider.sourceforge.net/) Più analiticamente: 1. a state of the art: attualmente SC rappresenta lo stato dell arte nell ambito della programmazione audio: non c è altro software disponibile che sia insieme così potente, efficiente, flessibile (e ormai anche portabile). 2. realtime sound synthesis: SC è ottimizzato per la sintesi del segnale audio in tempo reale. Questo lo rende ideale per un utilizzo strumentale (performance live) così come per la realizzazioni di 4 Il sito è in fase di ricostruzione, e può darsi che una simile formulazione venga rimossa a breve. Ma è utile lo stesso

10 installazioni/eventi. È senz altro possibile utilizzare SC non in tempo reale per generare materiale audio, ma in un certo senso è meno immediato che non utilizzarlo in tempo reale. 3. server: SC è un fornitore di servizi audio. In altre parole, SC fornisce audio su richiesta: chi richiede audio a SC è un suo cliente (client). 4. as well as: SC è anche un altra cosa del tutto diversa. 5. an interpreted Object Oriented language which is based on Smalltalk but with C language family syntax: SC è infatti anche un linguaggio di programmazione, tipologicamente vicino a Smalltalk, con alcuni aspetti che ricordano il linguaggio C. La frase with C language family syntax non è chiarissima. A scanso di equivoci: SC è tipologicamente un parente stretto di Smalltalk, con alcuni aspetti (pochi, fortunatamente...) che ricordano il C. Il codice del linguaggio SC, per essere operativo ( per fare qualcosa ), deve essere interpretato da un interprete. SC è anche l interprete del linguaggio SC. 6. The language functions as a network client to the sound synthesis server: che relazione c è tra 3 e 5? L interprete del linguaggio SC è anche un cliente che chiede servizi a SC fornitore di servizi audio attraverso una rete. Riassumendo: quando si parla di SC si possono indicare (generando una certa confusione) cinque cose diverse. Queste cose sono: 1. un server ( un fornitore di servizi) audio 2. un linguaggio di programmazione per l audio 3. l interprete ( il programma interprete) per il linguaggio 4. l interprete in quanto cliente del server audio 5. il programma ( l applicazione complessiva) che comprende tutte le componenti 1-4 La situazione è schematizzata in 2.1. L applicazione SC prevede due parti: una è il server audio (denominato scsynth), l altra è l interprete per il linguaggio (denominato sclang) che, oltre a interpretare il linguaggio SuperCollider, svolge il ruolo di client rispetto a scsynth. Può sembrare complicato. In effetti lo è. Installare SC vuol dire perciò installare un applicazione complessiva che comprende un server audio e un interprete del linguaggio/client del primo. Si vedrà in seguito meglio che cosa indicano i termini: per ora si tenga a mente che esistono due programmi distinti, e che quando si installa SC si ottengono due programmi al costo di 1 (il costo si calcola così: 2 0 = 0. Come recita un madrigale di Cipriano de Rore, mia benigna fortuna ). 2.2 Alcuni buoni motivi (a scelta) per usare SC

11 SuperCollider application 5 Client 4 Server 3 Interprete Linguaggio 2 1 sclang scsynth Fig. 2.1 Struttura di SC. Alcune applicazioni di SC, in ordine sparso: costruire un proprio sistema per fare musica live, interfaccia grafica compresa fare musica dance (nel senso più vago del termine) allestire un dj set fare composizione elettroacustica (nel senso più vago del termine) sonificare dati controllare un complesso sistema di altoparlanti (> 170) dal vivo ricostruire in audio binaurale il Poème électronique (ovvero: la diffusione di 3 tracce in movimento su 350 altoparlanti) integrare audio e video dal vivo praticare live coding

12 2.3 Disponibilità rispetto ai sistemi operativi SuperCollider è stato originariamente sviluppato da James McCartney su piattaforma Macintosh. In particolare la versione 2 era fortemente integrata con il sistema operativo Mac OS9. SuperCollider 3 (che è insieme molto simile e molto diverso da SC 2 5 ) è stato sviluppato per il sistema operativo Mac OSX ed è ora un software open source, sviluppato da una consistente comunità di programmatori a partire dal lavoro di James McCartney. La comunità di sviluppatori ha così effettuato il porting anche per le piattaforme Windows e Linux 6. Queste ultime due versioni di SC differiscono principalmente per difetto rispetto alla versione per OSX, nel senso che alcune funzionalità presenti in quest ultima non sono state portate nelle altre due. Tuttavia, si può dire forse che il 90% del programma SuperCollider nella versione MacOSX sia disponibile sulle altre piattaforme Dove reperire SuperCollider SuperCollider può essere scaricato da Sourceforge, in particolare all indirizzo La versione per Windows è stata sviluppata allo IEM di Graz nell ambito del progetto Sonenvir (http://sonenvir.at/) ed è accessibile all indirizzo Esistono poi altre versioni che comprendono librerie esterne o che sono state compilate per piattaforme specifiche (and esempio sistemi Mac OSX meno recenti). Il sito di SC su Sourceforge è in fase di ridefinizione e presto fornirà chiare informazioni su tutti le versioni disponibili Nella documentazione di SC sono ancora numerosi i riferimenti alla versione 2. Sebbene di fondamentale importanza per gli utenti che passino da una versione all altra, rischiano però di confondere chi si avvicina per la prima volta a SC3 In particolare, Stefan Kersten è il principale autore della versione Linux, mentre la versione Windows è stata implementata da Christopher Frauenberger. I riferimenti, scarsi, a piattaforme specifiche in questo testo si riferiscono alle versioni MacOSX e Win32, non a Linux

13 2.5 SwingOSC La principale differenza tra le versioni per i diversi sistemi operativi concerne le classi per lo sviluppo di interfacce grafiche (in SC è possibile programmare la GUI così come si programma la generazione dell audio), rispetto alle quali ogni piattaforma ha le sue specificità. Recententente si è reso disponibile il server grafico SwingOSC SwingOSC è un server grafico del tutto autonomo rispetto a SC (può essere utilizzato anche da altre applicazioni), ma, ed è quanto qui interessa, può essere utilizzato da dentro SC (in altre parole l utente può praticamente dimenticarsi dell esistenza del meccanismo client/server). SwingOSC è scritto in Java e per funzionare richiede che sia installata il Java Runtime Environment. Per controllare lo stato della propria macchina e installare la versione più recente di Java si può visitare il sito dedicato: SwingOSC permette la costruzione di interfacce grafiche di qualità superiore rispetto a quelle originariamente sviluppate per MacOSX. È decisamente consigliabile sviluppare interfacce grafiche con SwingOSC: essendo disponibile anche sulle altre piattaforme, anche la parte di codice relativo alla programmazione di GUI è di fatto portabile fra le diverse piattaforme (Linux incluso). Il problema della scelta si può porre al limite in MacOSX, dove è possibile scegliere tra il sistema GUI Cocoa e quello SwingOSC: la versione per Windows (detta PsyCollider ) integra in forma predefinita SwingOSC, che è l unica interfaccia grafica disponibile. Se si guarda la Post Window durante l avviamente di PsyCollider si potrà notare come il server SwingOSC venga avviato automaticamente (booting java -jar SwingOSC... etc). 2.6 Altri siti di rilievo Il sito di James McCartney ha un valore eminentemente storico: Il SC wiki è il punto di raccolta principale per tutto ciò che concerne SC: La mailing list (a partire dagli archivi) è un altra risorsa fondamentale:

14 L interfaccia web via Nabble è forse di più agevole consultazione: 2.7 Installazione (MacOSX e Win32) Una volta scaricato i file binari, l installazione in sé è un processo banale. Mac OSX: l apertura del file.dmg permette di montare un disco che contiene l applicazione SuperCollider. Dopo averla copiata (tipicamente ma non necessariamente) nella cartella Applicazioni è sufficiente un doppio click per far partire SC. nota: esistono versioni compilate anche per versioni ormai superate del sistema operativo (10.2) così come per processori più datati (G3). Per ottenerle si può consultare la mailing list. Windows: le istruzioni per Windows sono reperibili presso Dopo aver decompresso il file, è necessario lanciare l installer vcrrt.msi, quindi è possibile eseguire Psycollider.exe 8. nota 1: il porting su Win32 richiede 2000 o XP, con service pack 3. nota 2: esiste un curioso bug, attualmente irrisolto, per cui in rarissimi casi (l Aula 30 di Palazzo Nuovo all Università di Torino, ad esempio...) l eseguibile sembra non riuscire a risolvere un problema di dipendenze e l installazione fallisce. La soluzione è quella di installare la versione da SVN che comprende il codice py. Requisiti sono Python 2.5 e wxpython (package per la generazione dell interfaccia grafica del programma). 2.8 Informazioni di base sull ambiente di sviluppo 8 Il nome deriva da Py + SCollider (con metatesi), poiché l implementazione utilizza il linguaggio Python. A differenza di quanto avveniva inizialmente, l utente finale non è tenuto né conoscere né ad avere Python installato sulla propria macchina per potre eseguire Psycollider.exe. Python è incluso nei file binari ed è utilizzato internamente da Psycollider

15 SC funziona in tempo reale ed in forma interattiva attraverso un interfaccia testuale: tutte le comunicazioni tra utente e programma avvengono attraverso testo. Si osservino le figure 2.2 e 2.3. Eseguendo il programma si apre appunto un editor di testo. In particolare si apre la Post Window, la finestra che visualizza i messaggi che SC indirizza all utente (2.2 e 2.3, 1). In Windows, la finestra SC Log stampa gli stessi messaggi di un terminal aperto in parallelo (2.3, 4 all interno però dell applicazione PsyCollider, 2.3, 5). Entrando in esecuzione, SC effettua alcuni passaggi di inizializzazione (di cui si discuterà più avanti), il cui risultato viene scritto sulla Post Window. Nel caso di PsyCollider, viene immediatamente avviato il server audio (si vede bene sul terminal, 2.3, booting 57110, 6): si notino i messaggi relativi al rilevamento della scheda audio (Device options:, Booting with:). L avviamento del server audio avviene invece per mano dell utente in OSX, attraverso due interfacce grafiche gemelle: in particolare, sono disponibili due server distinti, local e internal 9 (2.2, 4 e 5). In Windows viene altresì avviato il server grafico SwingOSC (2.3, 7, booting java -jar SwingOSC... etc). È possibile utilizzare la Post Window per scrivere il proprio codice (almeno in fase di test) ma è sempre meglio creare una nuova finestra (2.2 e 2.3, 2). A questo punto, l utente immette del codice e chiede all interprete di valutarlo. Ad esempio, il codice "Hello World".postln richiede di stampare sullo schermo la stringa "Hello World". Si noti la sintassi colorata che distingue tra la stringa e il metodo.postln; 10. Se l interpretazione va a buon fine, SC risponderà con un certo comportamento che dipende dal codice immesso: in questo caso, stampando sulla Post Window la stringa "Hello World" (2.2 e 2.3, 3). Altrimenti segnalerà l errore attraverso la Post Window. L editor di testo (sia in OSX che in Windows) prevede un insieme di caratteristiche tipiche di ogni editor, ed è inutile soffermarvicisi. Altre funzioni sono utili ad un utente più avanzato, ed esulano da quanto qui previsto. Alcune indicazioni minimali: MacOSX Valutazione del codice: selezionare il codice e premere enter (non return). Se il codice consiste in una sola riga, è sufficiente posizionare il cursore in un punto della riga e premere enter. Arresto dell audio: apple +. Aiuto: apple +?. Se la combinazione è premuta contestualmente alla selezione di codice Windows SC, si apre il file di aiuto correlato (laddove esistente). Pulizia della Post Window: apple + shift + k 9 10 Si veda dopo. Gli schemi colori per le due piattaforme sono differenti (chissà perché). Qui si segue quella originale di OSX

16 Fig. 2.2 SC in OSX Fig. 2.3 SC in Windows (PsyCollider). Valutazione del codice: selezionare il codice e premere Ctrl + enter (invio). Se il codice consiste in una sola riga, è sufficiente posizionare il cursore in un punto della riga e premere Ctrl + enter (invio). Arresto dell audio: Alt +. Aiuto: F1. Se la combinazione è premuta contestualmente alla selezione di codice SC, si apre il file di aiuto correlato (laddove evistente). Pulizia della Post Window: Alt + P

17 2.9 Salvare ed aprire documenti, help file compresi Il contenuto della finestra può essere salvato su file e riaperto in un altra sessione di lavoro, per essere modificato o semplicemente per essere rieseguito. Una caratterstica importante di SC è che gli help files contengono codice valido che può essere valutato. Quando si apre un file di help è allora possibile sperimentare con gli esempi contenuti per capire esattamente il funzionamento descrittovi. Rispetto al formato dei files predefinito MacOSX e Windows prevedono alcune differenze che si riflettono sugli help files: MacOSX: il formato file prescelto è una versione speciale del formato di testo RTF. In MacOSX gli help file sono in formato RTF, e sono documenti validi per SC: in altre parole, è possibile valutare il codice che vi è contenuto. In ogni caso è perfettamente possibile utilizzare il formato ASCII (cioè: testo semplice). Windows: il formato file è ASCII (si può aprirlo con Notepad/Blocconote), e spetta all utente scegliere l estensione (.rtf è una scelta sensata). Il formato degli help files è hmtl, che non è un formato valido per SC. Quando si vuole eseguire il codice che vi è contenuto è necessario convertire il formato HTML in codice selezionando HTML To Code Window dal menu File (ctrl+t). Si apre una finestra in cui il formato HTML viene convertito in ASCII (la nuova finestra è una finestra di codice, la sintassi è colorata): a questo punto, è possibile valutarlo

18 3 Object Oriented Programming in SC: fondamenti 3.1 Minima objectalia Nella programmazione orientata agli oggetti si assume che l utente, per programmare il comportamento di un calcolatore, manipoli entità dotate di proprietà e di capacità. Il termine, volutamente generico, per indicare queste entità è oggetti, mentre tipicamente le proprietà sono pensate come attributi degli oggetti stessi e le capacità come metodi che gli oggetti possono adottare per compiere delle operazioni. Per poter essere riconosciute dal linguaggio le entità devono appartenere ad un insieme finito di tipi: un oggetto è del tipo A, l altro del tipo B e così via. I tipi vengono chiamati classi in OOP. Un oggetto è dunque una particolare istanza di una classe: la classe può essere pensata come il tipo astratto, ma anche come lo stampo da cui si fabbricano le istanza. Da un unico conio (la classe) si stampa un un numero indefinito di monete uguali (gli oggetti). È nella classe che si definiscono i metodi di cui tutti gli oggetti di quel tipo saranno dotati. Una classe descrive anche il modo in cui creare un oggetto a partire dalla classe. Le classi sono organizzate gerarchicamente: ogni classe può derivare da un altra classe e ogni classe può avere delle classi derivate. Questo principio prende il nome di ereditarietà. Ad esempio un conio è una ulteriore specificazione di un più generico stampo : lo stampo è la sopraclasse del conio, e il conio è una sottoclasse dello stampo. Un sigillo (per la ceralacca) è un altro stampo, ma di un tipo completamente diverso dal conio: il sigillo è una sottoclasse dello stampo, da cui eredita alcuni aspetti che condivide con il conio (la capacità di impressione), ma da cui si differenza per altri (prevede un impugnatura manuale, mentre il conio viene battuto a martello). L ereditarietà va pensata in termini genetici: i caratteri del padre sono presenti (come patrimonio genetico, appunto) nei figli

19 [Lavori in corso: mettere figura] Per chiedere ad un oggetto di fare qualcosa è necessario inviargli un messaggio. Ad ogni messaggio inviato ad un oggetto corrisponde un metodo che l oggetto deve conoscere per potervi rispondere. L oggetto che riceve il messaggio è il ricevente di quel messaggio. Riassumendo: oggetto e metodo concernono la definizione dell oggetto dall interno messaggio e ricevente concernono la comunicazione con l oggetto dall esterno [Lavori in corso: mettere figura] L insieme dei messaggi a cui un oggetto può rispondere prende il nome di interfaccia : ed è un interfaccia in senso proprio, perché è ciò che l oggetto rende disponibile all utente per l interazione, dove l utente può essere anche un altro oggetto. Nella maggior parte dei linguaggi ad oggetti, la sintassi tipica per passare un messaggio ad un oggetto utilizza il punto (.) e prende la forma oggetto.messaggio. La relazione tra oggetto e messaggio va pensata come una coppia vocativo/imperativi: oggetto, fai qualcosa!. Ad esempio, Conio.imprimi. 3.2 Oggetti in SC SuperCollider (qui intendendo: sclang) è un linguaggio orientato agli oggetti. Lo è per di più in termini molto puri, poiché ha come suo modello storico, e come parente tipologico assai prossimo, il linguaggio Smalltalk. In Smalltalk, come in SC, letteralmente ogni entità possibile è un oggetto. Questa radicalità può essere spiazzante inzialmente, ma è un punto di forza poiché garantisce che tutte (proprio tutte) le entità potranno essere controllate dall utente secondo un unico principio: tutte avranno attributi e metodi, a tutte sarà possibile inviare dei messaggi poiché presenteranno all utente una certa interfaccia. Si prenda il caso delle strutture dati: SC possiede una grande ricchezza di strutture dati, cioè di classi che funzionano da contenitori di altri oggetti, ognuna dotati di particolari capacità e specializzata per certi tipi di oggetti. Ad esempio un array è un contenitore ordinato di oggetti. Si scriva Array. Se si richiama la colorazione della sintassi, si nota come venga applicato il blu, colore che contraddistingue le classi (oltre che le parole riservate var, arg, this e alcune altre). SC sa che Array è una classe perché la prima lettera è maiuscola: tutto ciò che inizia con la maiuscola per SC indica una classe. Se si esegue il codice, SC restuituisce (stampa sullo schermo) la classe stessa. Se si richiama l help file, si nota come immediatamente venga indicata la sopraclasse, Superclass: ArrayedCollection. L help file fornisce alcune indicazioni sui metodi disponibili per gli oggetti di tipo Array. Il codice:

20 z = Array.new; costruisce un nuovo array vuoto attraverso il messaggio new invocato sulla classe Array. Tipicamente un messaggio viene inviato ad un istanza particolare e non ad una classe. Ma prima di poterlo fare, è necessario avere un istanza a cui inviare un messaggio. Al messaggio new rispondono allora tutte le classi restituendo una loro istanza. Il metodo new è il costruttore della classe: il metodo cioè che istanzia un oggetto a partire dalla classe. Possono esserci molti metodi costruttori, che restituiscono un oggetto secondo modalità specifiche: sono tutto metodi della classe perché, invocati sulla classe, restituiscono un oggetto. Uno di essi è il messaggio newclear, che prevede anche una parte tra parentesi tonde: z = Array.newClear(12); Nell esempio le parentesi contengono una lista di argomenti (uno solo, in questo caso), che specificano ulteriormente il messaggio newclear, ovvero oggetto, fai qualcosa (così)!. In particolare newclear(12) prevede un argomento (12) che indica che l array dovrà contenere al massimo 12 posti. È possibile indicare esplicitamente l argomento: oggetto, fai qualcosa (nel modo: così)!. Ogni argomento ha un nome specifico, la sua keyword: nel caso di newclear è indexedsize, che indica il numero di posti contenuti nel nuovo array. Il codice: z = Array.newClear(indexedSize:12); è identico al precedente ma esplicita la keyword dell argomento. Infine, z = indica che l array verrà assegnato alla variabile z. Si noti che la lettera utilizzata è minuscola: se si scrivesse Z = SC intepreterebbe Z come una classe (inesistente) 11 e solleverebbe un errore. Adesso z rappresenta un array vuoto di capienza 112: è un istanza della classe Array. Si può chiedere a z di comunicare la classe a cui appartiene invocando il metodo class: 1 z.class 2 Array Il metodo class (1) restituisce la classe di z: Array (2). Quando si usano degli array molto spesso si è insoddisfatti dei metodi elencati nell help file: sembra che manchino molti metodi intuitivamente utili. È molto difficile che sia veramente così: molto spesso il metodo cercato c è ma è definito nella sopraclasse ed ereditato dalle classi figli. A partire da Array si può navigare la struttura degli help file risalendo a ArrayedCollection, SequenceableCollection, Collection: sono tutte sopraclassi (di tipo sempre più astratto) che definiscono metodi che le sottoclassi possono ereditare. Se si prosegue si arriva a Object. 11 La Z verrebbe colorata di blu

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

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

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Il compilatore Dev-C++

Il compilatore Dev-C++ Il compilatore Dev-C++ A cura del dott. Marco Cesati 1 Il compilatore Dev-C++ Compilatore per Windows: http://www.bloodshed.net/devcpp.html Installazione Configurazione Utilizzazione 2 1 Requisiti di sistema

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Mini manuale di Audacity.

Mini manuale di Audacity. Mini manuale di Audacity. Questo mini manuale è parte del corso on-line Usare il software libero di Altrascuola. Il corso è erogato all'interno del portale per l'e-learning Altrascuola con la piattaforma

Dettagli

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Meetecho s.r.l. Web Conferencing and Collaboration tools. Guida all installazione e all uso di Meetecho beta

Meetecho s.r.l. Web Conferencing and Collaboration tools. Guida all installazione e all uso di Meetecho beta Web Conferencing and Collaboration tools Passo 1: registrazione presso il sito Accedere al sito www.meetecho.com e registrarsi tramite l apposito form presente nella sezione Reserved Area. In fase di registrazione

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura Dev-Pascal 1.9.2 1 Dev-Pascal è un ambiente di sviluppo integrato per la programmazione in linguaggio Pascal sotto Windows prodotto dalla Bloodshed con licenza GNU e liberamente scaricabile al link http://www.bloodshed.net/dev/devpas192.exe

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

Editor vi. Editor vi

Editor vi. Editor vi Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta

Dettagli

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso Integrare le MFC con Irrlicht by Raffaele White tiger Mancuso In questo topic spiegherò come integrare irrlicht in un documento singolo MFC *(1). Io ho usato il visual c++ 6 ma la procedura dovrebbe essere

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

Software Emeris Communication Manager

Software Emeris Communication Manager ecm Software Emeris Communication Manager Manuale operativo Fantini Cosmi S.p.A. Via dell Osio 6 20090 Caleppio di Settala MI Tel 02.956821 - Fax 02.95307006 e-mail: info@fantinicosmi.it http://www.fantinicosmi.it

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

TeamViewer 8 Manuale Meeting

TeamViewer 8 Manuale Meeting TeamViewer 8 Manuale Meeting Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni

Dettagli

Lezione III: Oggetti ASP e interazione tramite form HTML

Lezione III: Oggetti ASP e interazione tramite form HTML Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

INDICE Informazioni Generali... 4. Comprare ebook con Kobo Desktop... 8. Usare la Libreria di Kobo Desktop... 10. Leggere su Kobo Desktop...

INDICE Informazioni Generali... 4. Comprare ebook con Kobo Desktop... 8. Usare la Libreria di Kobo Desktop... 10. Leggere su Kobo Desktop... Kobo Desktop Manuale Utente INDICE Informazioni Generali... 4 Installare Kobo Desktop su Windows... 5 Installare Kobo Desktop su Mac... 6 Comprare ebook con Kobo Desktop... 8 Usare la Libreria di Kobo

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

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

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

> MULTI TASKING > MULTI PROCESS > MULTI CORE

> MULTI TASKING > MULTI PROCESS > MULTI CORE > MULTI TASKING > MULTI PROCESS > MULTI CORE WorkNC V21 multicore 64 bits : Benefici di WorkNC Aumento generale della produttività, grazie alle nuove tecnologie multi-core, 64 bit e Windows 7 Calcolo di

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

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

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa di Ilaria Lorenzo e Alessandra Palma Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa Code::Blocks

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Dipartimento del Tesoro

Dipartimento del Tesoro Dipartimento del Tesoro POWER POINT AVANZATO Indice 1 PROGETTAZIONE DELL ASPETTO...3 1.2 VISUALIZZARE GLI SCHEMI...4 1.3 CONTROLLARE L ASPETTO DELLE DIAPOSITIVE CON GLI SCHEMI...5 1.4 SALVARE UN MODELLO...6

Dettagli

Testi della Guida introduttiva a cura di Martin Ley. Revisione e controllo qualità: Cristina Bachmann, Heiko Bischoff, Marion Bröer, Sabine Pfeifer,

Testi della Guida introduttiva a cura di Martin Ley. Revisione e controllo qualità: Cristina Bachmann, Heiko Bischoff, Marion Bröer, Sabine Pfeifer, Guida Introduttiva Testi della Guida introduttiva a cura di Martin Ley. Revisione e controllo qualità: Cristina Bachmann, Heiko Bischoff, Marion Bröer, Sabine Pfeifer, Heike Schilling. Data di rilascio:

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

GESTIONE STUDIO. Compatibile con: Win 7, Vista, XP

GESTIONE STUDIO. Compatibile con: Win 7, Vista, XP GESTIONE ADEMPIMENTI FISCALI Blustring fornisce la stampa dei quadri fiscali, cioè dei quadri del modello UNICO relativi alla produzione del reddito d impresa, o di lavoro autonomo (RG, RE, RF, dati di

Dettagli

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A Leggere attentamente questo manuale prima dell utilizzo e conservarlo per consultazioni future Via Don Arrigoni, 5 24020 Rovetta

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Suggerimenti forniti da MetaQuotes per l utilizzo di MetaTrader 4 con Mac OS

Suggerimenti forniti da MetaQuotes per l utilizzo di MetaTrader 4 con Mac OS Suggerimenti forniti da MetaQuotes per l utilizzo di MetaTrader 4 con Mac OS Nonostante esistano già in rete diversi metodi di vendita, MetaQuotes il programmatore di MetaTrader 4, ha deciso di affidare

Dettagli

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory.

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory. @ PC (Personal computer): Questa sigla identificò il primo personal IBM del 1981 a cura di R.Mangini Archiviazione: Il sistema operativo si occupa di archiviare i file. Background (sfondo): Cursore: Nei

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

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

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

Come realizzare una buona presentazione (traduzione libera a cura della redazione di EpiCentro)

Come realizzare una buona presentazione (traduzione libera a cura della redazione di EpiCentro) Come realizzare una buona presentazione (traduzione libera a cura della redazione di EpiCentro) Quando si realizzano dei documenti visivi per illustrare dati e informazioni chiave, bisogna sforzarsi di

Dettagli

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB...

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 1. CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 5 1.3.1 CREAZIONE GUIDATA DELLA FATTURA IN FORMATO XML

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Manuale di KDE su Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci

Manuale di KDE su Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci 2 Indice 1 Introduzione 5 2 Usare KDE su 6 3 Funzionamento interno 8

Dettagli

Manuale di installazione. Data Protector Express. Hewlett-Packard Company

Manuale di installazione. Data Protector Express. Hewlett-Packard Company Manuale di installazione Data Protector Express Hewlett-Packard Company ii Manuale di installazione di Data Protector Express. Copyright Marchi Copyright 2005 Hewlett-Packard Limited. Ottobre 2005 Numero

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Scopo di questo corso, vuole essere quello di fornire ad ognuno dei partecipanti, indipendentemente dalle loro precedenti conoscenze informatiche, l apprendimento

Dettagli

Introduzione a Puppy Linux: installazione su una chiavetta USB

Introduzione a Puppy Linux: installazione su una chiavetta USB Introduzione a Puppy Linux: installazione su una chiavetta USB Alex Gotev 1 Contenuti Che cos'è Puppy Linux? Come posso averlo? Come si avvia? Che programmi include? Installazione su Chiavetta USB Domande

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

RUP (Rational Unified Process)

RUP (Rational Unified Process) RUP (Rational Unified Process) Caratteristiche, Punti di forza, Limiti versione del tutorial: 3.3 (febbraio 2007) Pag. 1 Unified Process Booch, Rumbaugh, Jacobson UML (Unified Modeling Language) notazione

Dettagli