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

SwingDialog. WiiNunchukGUI PriorityQueue RawPointer SuperCollider: ciò di cui si parla (http://supercollider.sourceforge.

SwingDialog. WiiNunchukGUI PriorityQueue RawPointer SuperCollider: ciò di cui si parla (http://supercollider.sourceforge. MethodQuote EZRanger XFaderCtkProtoNotes MelFilter Link NumChannels SOS EZSlider MultiTap UI JSpeech Gradient Model LRUNumberAllocator SoundFileFormats AutoDocTestClass GeneralHIDSlot Grap Pin BeatSched

Dettagli

LRUNumberAllocator. JStethoscope. Tempo. GeoGraphSynth. Exception. Insets. PageLayout. SwingGUI. UGenInstr. FreqShift. PitchCollection.

LRUNumberAllocator. JStethoscope. Tempo. GeoGraphSynth. Exception. Insets. PageLayout. SwingGUI. UGenInstr. FreqShift. PitchCollection. Obj Player88 PowerO GraphParser Model EZSlider En Grap NB SCWindow Collapse Quar SOS SimpleContro Date Exception KeyCodeRe PatternCondu GetFileDialog FreqScope SoundFileViewProgressWindow SoundFileFormats

Dettagli

Andrea Valle. Introduzione a SuperCollider

Andrea Valle. Introduzione a SuperCollider Andrea Valle Introduzione a SuperCollider Introduzione a SuperCollider Andrea Valle Originariamente sviluppato da James McCartney e ora diventato progetto open source, SuperCollider è un pacchetto software

Dettagli

Andrea Valle. Introduzione a SuperCollider

Andrea Valle. Introduzione a SuperCollider Andrea Valle Introduzione a SuperCollider Introduzione a SuperCollider Andrea Valle Originariamente sviluppato da James McCartney e ora diventato progetto open source, SuperCollider è un pacchetto software

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

9) si ritorna alla maschera di fig. 6, nella quale si clicca su "Salva modifiche" per completare l operazione.

9) si ritorna alla maschera di fig. 6, nella quale si clicca su Salva modifiche per completare l operazione. Fig. 8 La finestra Gestione file con il file appena caricato 9) si ritorna alla maschera di fig. 6, nella quale si clicca su "Salva modifiche" per completare l operazione. Fig. 9 Il corso con la nuova

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Come viene associato un insegnate alla scuola? Cos è il Codice scuola?

PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Come viene associato un insegnate alla scuola? Cos è il Codice scuola? PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Quando si compila il modulo di registrazione, selezionare l opzione scuola.una volta effettuata la registrazione, si può accedere a un ambiente molto

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

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Introduzione a Visual Studio 2005

Introduzione a Visual Studio 2005 Fondamenti di Informatica e Laboratorio T-AB Ingengeria Elettronica e Telecomunicazioni a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual

Dettagli

Pratica 3 Creare e salvare un documento. Creare e salvare un file di testo

Pratica 3 Creare e salvare un documento. Creare e salvare un file di testo Pratica 3 Creare e salvare un documento Creare e salvare un file di testo Centro Servizi Regionale Pane e Internet Redazione a cura di Roger Ottani, Grazia Guermandi Luglio 2015 Realizzato da RTI Ismo

Dettagli

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Visual Basic Visual Basic Linguaggio di programmazione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A1 - Interfacce grafiche 1 Prerequisiti Utilizzo di un sistema operativo Programmazione elementare ad oggetti Concetto di macchina virtuale Tipi di interfaccia Riferimento

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

APPENDICE I Pratiche di tecnologie informatiche per la elaborazione della musica e del suono

APPENDICE I Pratiche di tecnologie informatiche per la elaborazione della musica e del suono APPENDICE I Pratiche di tecnologie informatiche per la elaborazione della musica e del suono 135 L elaborazione digitale del segnale audio 136 L appendice dedicata alle Pratiche di tecnologie informatiche

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

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

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

Dettagli

HOT POTATOES MANUALE

HOT POTATOES MANUALE HOT POTATOES MANUALE Sommario Cos è Hot Potatoes... 3 Reperibilità... 3 Licenza. 3 Requisiti di sistema.. 3 Lingue utilizzate.. 3 Il quaderno... 4 documentazione. 4 Dove trovare e come scaricare il software.

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

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

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it Il software R q Il software R è distribuito gratuitamente come software Open Source con licenza GPL (General Public License)

Dettagli

INTERAZIONE CON L UTENTEL

INTERAZIONE CON L UTENTEL IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

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

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015]

Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Panoramica... 2 Menù principale... 2 Link Licenza... 3 Link Dati del tecnico... 3 Link

Dettagli

AMPL Plus: Introduzione all uso

AMPL Plus: Introduzione all uso AMPL Plus: Introduzione all uso A cura di Renato Bruni, Giovanni Fasano, Giampaolo Liuzzi, Sara Mattia Preliminari In questa breve introduzione verranno chiariti alcuni aspetti di base relativi all uso

Dettagli

8088 + log. controllo

8088 + log. controllo CORSO DI ARCHITETTURA DEGLI ELABORATORI PROGRAMMAZIONE ASSEMBLY: PROGETTO 26 LUGLIO 2007 CONSEGNA Sabato 15 settembre 2007 Lo studente programmi nel linguaggio Assembly 8088 presentato a lezione un micro

Dettagli

Guida utilizzo e-care Pagina 1 di 13 E-CARE GUIDA UTENTE INDICE 1. INTRODUZIONE... 2 2. PREREQUISITI TECNICI... 2 3. COME ACCEDERE A E-CARE...

Guida utilizzo e-care Pagina 1 di 13 E-CARE GUIDA UTENTE INDICE 1. INTRODUZIONE... 2 2. PREREQUISITI TECNICI... 2 3. COME ACCEDERE A E-CARE... Direzione Formazione Guida utilizzo e-care Pagina 1 di 13 E-CARE GUIDA UTENTE INDICE 1. INTRODUZIONE... 2 2. PREREQUISITI TECNICI... 2 3. COME ACCEDERE A E-CARE... 3 4. LA STRUTTURA DELL AREA DI LAVORO

Dettagli

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo

Dettagli

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows i SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows Per ulteriori informazioni sui prodotti software SPSS Inc., visitare il sito Web all indirizzo http://www.spss.it o contattare: SPSS

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA

POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA ACCESSO ALL AMBIENTE DI PROGRAMMAZIONE Microsoft Visual C++ è sufficiente cliccare sul pulsante di Windows,

Dettagli

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java APPENDICE Appendice Strumenti per lo sviluppo dei programmi Java Per imparare a programmare non è sufficiente leggere gli esempi del testo, ma è necessario scrivere ed eseguire realmente i programmi. Tutti

Dettagli

Sistema Web. Gestione Documenti Elettronici

Sistema Web. Gestione Documenti Elettronici GUIDA RAPIDA Sistema Web CONSORZIO CO.D.IN. M A R C H E Gestione Documenti Elettronici INDICE Capitolo 1: Avvio Applicazione Capitolo 2: Autenticazione Utente e Accesso al Sistema Capitolo 3: Navigazione

Dettagli

Indice. 1 Introduzione 5. 2 Preimpostazioni 6. 3 Configurazione dell interfaccia utente 7. 4 Configurazione 9

Indice. 1 Introduzione 5. 2 Preimpostazioni 6. 3 Configurazione dell interfaccia utente 7. 4 Configurazione 9 Questo documento è stato convertito dalla pagina di K3b su KDE UserBase, aggiornata al 20 gennaio 2011. Aggiornamento alla versione 2.0 da parte del Documentation Team di KDE Traduzione dell interfaccia

Dettagli

Versione 2014. Installazione GSL. Copyright 2014 All Rights Reserved

Versione 2014. Installazione GSL. Copyright 2014 All Rights Reserved Versione 2014 Installazione GSL Copyright 2014 All Rights Reserved Indice Indice... 2 Installazione del programma... 3 Licenza d'uso del software... 3 Requisiti minimi postazione lavoro... 3 Requisiti

Dettagli

Archivio Parrocchiale

Archivio Parrocchiale BREVI INFORMAZIONI PER L UTILIZZO DEL PROGRAMMA Archivio Parrocchiale 1 INDICE PREMESSA...3 CENNI SUL PROGRAMMA...4 REQUISITI MINIMI DEL PC...5 LA FINESTRA PRINCIPALE...6 I PULSANTI DEL MENU PRINCIPALE...7

Dettagli

Laboratorio di Chimica Fisica 04/03/2015. Introduzione all uso di Microcal Origin 6.0 (TM)

Laboratorio di Chimica Fisica 04/03/2015. Introduzione all uso di Microcal Origin 6.0 (TM) Introduzione all uso di Microcal Origin 6.0 (TM) Origin lavora solo in ambiente Windows, ma ci sono degli omologhi per linux e apple. Sui computer del laboratorio è installato windows XP e troverete la

Dettagli

Associazione per lo sviluppo delle tecnologie nella didattica HOTPOTATOES. version 6.3. Tutorial a cura di Rosanna Imbrogno Marzo 2011

Associazione per lo sviluppo delle tecnologie nella didattica HOTPOTATOES. version 6.3. Tutorial a cura di Rosanna Imbrogno Marzo 2011 HOTPOTATOES version 6.3 Tutorial a cura di Rosanna Imbrogno Marzo 2011 I contenuti di questo lavoro, salvo diversa indicazione, sono rilasciati sotto una licenza Creative Commons License. Tutti i marchi

Dettagli

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

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

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

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Talento LAB 2.1 - GUIDA E ASSISTENTE LA GUIDA IN LINEA. In questa lezione imparerete a:

Talento LAB 2.1 - GUIDA E ASSISTENTE LA GUIDA IN LINEA. In questa lezione imparerete a: Lab 2.1 Guida e assistente LAB 2.1 - GUIDA E ASSISTENTE In questa lezione imparerete a: Descrivere la Guida in linea e l'assistente Office, Descrivere gli strumenti della Guida in linea di Windows XP,Utilizzare

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Scansione. Stampante/copiatrice WorkCentre C2424

Scansione. Stampante/copiatrice WorkCentre C2424 Scansione In questo capitolo sono inclusi i seguenti argomenti: "Nozioni di base sulla scansione" a pagina 4-2 "Installazione del driver di scansione" a pagina 4-4 "Regolazione delle opzioni di scansione"

Dettagli

Il foglio elettronico

Il foglio elettronico Il foglio elettronico Foglio di calcolo, Spreadsheet in inglese, Permette di elaborare DATI NUMERICI. E una TABELLA che contiene numeri che possono essere elaborati con FUNZIONI matematiche e statistiche.

Dettagli

Utilizzo di FileMaker Pro con Microsoft Office

Utilizzo di FileMaker Pro con Microsoft Office Guida Pratica Utilizzo di FileMaker Pro con Microsoft Office Integrare FileMaker Pro con Office pagina 1 Sommario Introduzione... 3 Prima di iniziare... 4 Condivisione di dati tra FileMaker Pro e Microsoft

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

FileMaker Server 14. Guida alla configurazione dell installazione in rete

FileMaker Server 14. Guida alla configurazione dell installazione in rete FileMaker Server 14 Guida alla configurazione dell installazione in rete 2007 2015 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Introduzione. pino@pinocappellano.it www.pinocappellano.it. Csound è uno strumento software per la sintesi digitale diretta del suono.

Introduzione. pino@pinocappellano.it www.pinocappellano.it. Csound è uno strumento software per la sintesi digitale diretta del suono. Csound Introduzione 1 Csound Csound è uno strumento software per la sintesi digitale diretta del suono. Csound è un sintetizzatore virtuale ad architettura completamente configurabile dall utilizzatore

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

Compilazione rapporto di Audit in remoto

Compilazione rapporto di Audit in remoto Compilazione rapporto di Audit in remoto Installazione e manuale utente CSI S.p.A. V.le Lombardia 20-20021 Bollate (MI) Tel. 02.383301 Fax 02.3503940 E-mail: info@csi-spa.com Rev. 1.1 23/07/09 Indice Indice...

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

Appunti Modulo 2 - Microsoft Windows

Appunti Modulo 2 - Microsoft Windows www.informarsi.net Appunti Modulo 2 - Microsoft Windows Sistema operativo Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un particolare software, installato su un sistema

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

SH.Invoice è un software pratico e completo per la gestione della fatturazione di professionisti e imprese.

SH.Invoice è un software pratico e completo per la gestione della fatturazione di professionisti e imprese. Presentazione: SH.Invoice è un software pratico e completo per la gestione della fatturazione di professionisti e imprese. Il programma si distingue per la rapidità e l elasticità del processo di gestione

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

Clicca sul link Gmail in alto nella pagina. Arriverai ad una pagina simile alla seguente: G. Pettarin ECDL Modulo 7: Internet 68

Clicca sul link Gmail in alto nella pagina. Arriverai ad una pagina simile alla seguente: G. Pettarin ECDL Modulo 7: Internet 68 G. Pettarin ECDL Modulo 7: Internet 68 Usiamo Gmail In questo capitolo vedremo come creare un proprio accesso alla posta elettronica (account) ad uno dei servizi di mail on line più diffusi: Gmail, la

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Guida introduttiva. Fiery Network Controller per DocuColor 240/250

Guida introduttiva. Fiery Network Controller per DocuColor 240/250 Fiery Network Controller per DocuColor 240/250 Guida introduttiva In questo documento, ogni riferimento a DocuColor 242/252/260 rimanda a DocuColor 240/250. 2007 Electronics for Imaging, Inc. Per questo

Dettagli

Uso del computer e gestione dei file

Uso del computer e gestione dei file Uso del computer e gestione dei file Parte 1 Desktop All avvio del computer compare il Desktop. Sul Desktop sono presenti le Icone. Ciascuna icona identifica un oggetto differente che può essere un file,

Dettagli

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it Crotone, maggio 2005 Windows Ing. Luigi Labonia E-mail luigi.lab@libero.it Sistema Operativo Le funzioni software di base che permettono al computer di funzionare formano il sistema operativo. Esso consente

Dettagli

Sistemi di Elaborazioni delle Informazioni I

Sistemi di Elaborazioni delle Informazioni I Sistemi di Elaborazioni delle Informazioni I Docente: Marco Aldinucci aldinuc@di.unito.it http://www.di.unito.it/~aldinuc Ricevimento: Su appuntamento Esercitatore: Fabio Tordini tordini@di.unito.it 1

Dettagli

COMUNE DI PESCARA SETTORE TRIBUTI COMUNICAZIONE ICI PROCEDURA DI COMPILAZIONE

COMUNE DI PESCARA SETTORE TRIBUTI COMUNICAZIONE ICI PROCEDURA DI COMPILAZIONE COMUNE DI PESCARA SETTORE TRIBUTI COMUNICAZIONE ICI PROCEDURA DI COMPILAZIONE INSTALLAZIONE DEL PROGRAMMA Requisisti di sistema L applicazione COMUNICAZIONI ICI è stata installata e provata sui seguenti

Dettagli

GUIDA ALL USO DI CMAP TOOLS

GUIDA ALL USO DI CMAP TOOLS Cos è IHM Concept Map Software GUIDA ALL USO DI CMAP TOOLS È un programma multipiattaforma per sviluppare e visualizzare mappe concettuali realizzato dall Institute for Human and Machine Cognition dell

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

zonamatematica etutor EDITOR Guida all uso versione 4.1

zonamatematica etutor EDITOR Guida all uso versione 4.1 zonamatematica Il portale De Agostini Scuola dedicato all insegnamento e all apprendimento della matematica nella scuola secondaria etutor EDITOR Guida all uso versione 4.1 zonamatematica etutor EDITOR

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

1) Introduzione ai sistemi operativi (O.S.=operative system)

1) Introduzione ai sistemi operativi (O.S.=operative system) 1) Introduzione ai sistemi operativi (O.S.=operative system) Sistema Operativo: è un componente del software di base di un computer che gestisce le risorse hardware e software, fornendo al tempo stesso

Dettagli