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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Obj Player88 PowerO GraphParser Model EZSlider En Grap NB SCWindow Collapse Quar SOS SimpleContro Date Exception KeyCodeRe PatternCondu GetFileDialog FreqScope SoundFileViewProgressWindow SoundFileFormats TChoos Insets EventStreamClea TDuty_old UpdateListener Instr OSCResponderQueue Abstr PitchCollection ControlName UnicodeResponder FlowVar Runner GraphView MIDIRespo JKeyState Sc SerialPort MIDIEndPoint GeneralHIDSlot SwingDialog LRUNumberAllocator SoundIn AbstractPlayControl StackNumberAllocator DOMNode KeyMapper Toolbox NodeMapSetting Harmonics PathName PhilologusGuiTable BroadcastServer Actant FreqShift Philologus Gradient SelectXFocus GuidoArt WiiMoteGUI JSoundFi Condition AutoClassHelp Rect UGenInstr Color UniqueID GuidoScor HIDInfo Histor Messa Quarks Helper TopicHe JPen Env SCIBDrag MIDIIn JPeakMeterMa HIDDevice DOMImplementation Vol Staff D MelFilter SkipJack SCIBTo LilyPond Spee SCIBAreaSelection EZNumber Co RingNumberAllocato PMOsc Praat SCNSObjectAb ClassBrowser ResponderArray Quark AudioIn Graph SimpleKD MultiTap BusSynthDefs JMouseBase PhilologusGuiScore Def HistoryGui ContiguousBlock ModalFreqUGe GeoAudio MyClass InBus SystemSynthDefs O AutoCompMetho TaskProxyE Keyboarder Link FlowLayout CmdString GuidoVo FormantCha Praa OSC Inspect PatchIn CtkProtoNotes PitchClass Pin BeatSched JSpeech SCIBViewP Mono NetAd PowerOfTwoBlock J GeneralHID Spec GuidoTimeSig HIDDeviceService EnvGate KeyCodeRes SOScore CmdPeriod Splay SynthDef DocParser JStethoscope PriorityQueue PageLayout GuidoTime Position ClientFunc HiliteGradient Help Crucial ControlPrototypes Pen E Glyph NumChannels RunnerGUI Client XFader GuidoMark CtkNoteObject MLIDbrowser CocoaDialog OSCresponderNode VolumeGui Tempo MIDIEvent SlotInspector RunnerMixer QuarkDepe WiiRemoteGU CocoaGUI Page Chronometer EventTyp CtkObj Post WiiMote ParserGUI SpeechChannel Stethoscope NodeProxyEdit Mix RelativeToPa GeoClock CtkTimer ProxyMixer XSession Module JFreq Spla Gui EZRanger QuarkSVNRepository Warp MXHIDAbsInfo Quant No RecordProxyMixer B MIDIClient AutoDocTestClas JSCWindow LocalQuarks IODesc Monitor JFont SCVie Midi2FreqUGen XIn Notificat NodeCon SCIBPanelWindow Unix EnvironmentRed XFader4 IndexL ModalDialog TempoBus File Bu SynthDesc SynthDescLib SoundFile Manuscrip Updater PrettyState PatchOut XInFeedback XFaderN GraphGenerator InspManager HIDDeviceElement Sheet Painter MXHID Scribe Node NodeIDAllocator SelectButtonSet StartUp Document GetStringDialog WiiNunchukGUI Pitc NotificationRegistration Layout ContiguousBlockAlloca IDIClockOut GUI Clock Bus JKnob Scheduler AbstractConsole Editor MultiPageLayout AbstractConstrain JavaObj Ar UI Impulsar SOGui TaskPro MXHIDSlot ProxyMoni OSCService Do MultiChanRecorder Swi AGProcessor SOScoreNodeBox Semaphore Insp GeoGrapher UGenHelper GeoGraphSynth MethodQuote InterplEnv S GlyphWriter InstrAt SwingGUI GeneralHIDDevi Grapher ClassHelper WiiMoteIRObject Point JSpeechChan Au ServerOptions GraphBuilder WiiCalibrationInfo Platform Font MIDIOut ImageView Sample TestDep SelectX RawPointer Magnitude Boolean Nil Symbol Finalize Abstrac Interpreter Process Frame FunctionDef Collection Class andrea valle

2

3 1

4 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/) NodeBox: immagine di copertina (http://nodebox.net/) Sito: Sussuri e grida: 2

5 Andrea Valle tscirma the SuperCollider Italian Manual at CIRMA ( DRAFT: 9 aprile 2008)

6 3

7 Sommario 1 Introduzione Ciò di cui si parla: SuperCollider Obiettivi Fonti Convenzioni grafiche 10 2 SuperCollider grado Che cos è SuperCollider Alcuni buoni motivi (a scelta) per usare SC Disponibilità rispetto ai sistemi operativi Dove reperire SuperCollider Interfacce grafiche Informazioni di base sull ambiente di sviluppo Salvare ed aprire documenti, help file compresi 23 3 Object Oriented Programming in SC: fondamenti Minima objectalia Oggetti in SC Metodi e messaggi I metodi di tipo post e dump Numeri 44 4 Sintassi: elementi fondamentali (Parentesi) // Commenti (/*di diverso tipo*/) Stringhe Variabili Simboli Espressioni ; Errori {Funzioni} 58 4

8 4.9 Classi, messaggi/metodi e keyword Esempio Il pattern GUI Il codice Introduzione Creazione degli elementi GUI Interazione Per finire Controlli di flusso Ancora un esempio GUI La funzione di generazione dei valori colore Modularizzare la GUI Controllo delle azioni 86 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 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 152 5

9 6.5 Appetizer: un esempio di 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 Sintesi additiva Sintesi granulare Sintesi sottrattiva Analisi e risintesi Modulazione Modulazione ad anello e d ampiezza Modulazione ad anello come tecnica di elaborazione Modulazione di frequenza C:M ratio Suono organizzato: (minimal) scheduling in SC Server side: attraverso le UGen Server side: le UGen Demand Lang side: Routines 308 6

10 9.4 Orologi Sintetizzatori/eventi Routine/Task Micro/macro 322 7

11 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 1 Si vedrà più avanti che cosa indica specificamente pacchetto software 1.1 8

12 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.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 dai risultati) è quella di far interagire i due ambiti, attraverso una reciproca specificazione 1.3 Fonti 1.3 9

13 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 rispetto alle stesse, perché quantomeno evita al lettore italiano la difficoltà supplementare della lingua straniera. 1.4 Convenzioni grafiche Il manuale prevede tre distinzioni: 2 Lombardo, V. e Valle, A., Milano, Apogeo 2008 (3 ed. ). 3 È in corso di pubblicazione (l uscita è prevista per la fine del 2008) il progetto di un SuperCollider Book, sull esempio del Csound Book, per gli stessi tipi della MIT press

14 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 (che è gratuito e multipiattaforma). 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

15 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: SuperCollider is an environment and programming language for real time audio synthesis and algorithmic composition. It provides an interpreted object-oriented language which functions as a network client to a state of the art, realtime sound synthesis server (http://supercollider.sourceforge.net/) Più analiticamente:

16 1. an environment: SC è un applicazione che prevede più componenti separate. Di qui l utilizzo del termine ambiente. 2. and: SC è anche un altra cosa del tutto diversa. 3. a programming language: SC è infatti anche un linguaggio di programmazione. Come si dice in seguito, appartiene alla famiglia dei linguaggi orientato agli oggetti, ed è, tra l altro, tipologicamente vicino a Smalltalk. Il codice del linguaggio SC, per essere operativo ( per fare qualcosa ), deve essere interpretato da un interprete. Un interprete è un programma che capisce il linguaggio e agisce di conseguenza. SC è anche l interprete del linguaggio SC. 4. for 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 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. 5. and algorithmic composition: uno dei punti di forza di SC sta nel fatto che permette due approcci complementari e opposti alla sintesi audio. Da un lato, permette di svolgere operazioni di basso livello sul segnale audio. Dall altro, permette al compositore di esprimersi ad alto livello, cioè non in termini di campioni audio, ma di strutture che rappresentino oggetti per la composizione musicale (ad esempio: scale, pattern ritmici, etc.). In questo senso, si rivela ideale per la composizione algoritmica, ovvero per un approccio alla composizione musicale basato sull utilizzo di procedure formalizzate. In SC questo tipo di operazioni può essere svolto interattivamente ed in tempo reale

17 6. [the] language [...] functions as a network client to a [...] server: l applicazione che interpreta il linguaggio SC è anche un cliente che comunica, attraverso una rete, con un server, un fornitore di servizi. 7. 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). 8. sound synthesis server: SC è un fornitore di servizi, in particolare di servizi audio. La locuzione può sembrare misteriosa. Si traduce così: SuperCollider genera audio in tempo reale su richiesta. In questo senso, SC fornisce audio su richiesta: chi richiede audio a SC è un suo cliente (client). 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

18 SuperCollider application 5 Client 4 Server 3 Interprete Linguaggio 2 1 sclang scsynth Fig. 2.1 Struttura di SC. 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 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)

19 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 Una ricerca su YouTube permette agevolmente di vedere all opera SuperCollider in situazioni molto diverse. Alcuni video sono qui raccolti qui: 2.3 Disponibilità rispetto ai sistemi operativi

20 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) è 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 4. 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, nell arco della seconda metà del 2007 è stato compiuto un grande sforzo dalla comunità si sviluppatori, in vista dell uscita (prossima) del SuperCollider Book. La versione attuale (3.2), che è quella di riferimento per il libro, ha apportato notevoli migliorie al software, oltre ad un notevole incremento della documentazione ed un aumentata compatibilità tra le piattaforme. Si può dire che le differenze tra le piattaforme sia ormai limitate agli ambienti di sviluppo (necessariamente dipendenti dal sistema operativo) Dove reperire SuperCollider SuperCollider può essere scaricato da Sourceforge, in particolare all indirizzo 4 In particolare, Stefan Kersten è il principale autore della versione Linux, mentre la versione Windows è stata implementata da Christopher Frauenberger. 5 I riferimenti, scarsi, a piattaforme specifiche in questo testo si riferiscono alle versioni MacOSX e Windows, non a Linux

21 Nel caso si utilizzino i file binari, l installazione in sé è un processo banale, poiché prevede un file.dmg su Mac 6 e un file.exe per Windows 7. In generale, il sito ufficiale presso Sourceforge costituisce il punto di riferimento della comunità di utilizzatori e sviluppatori, ed è utile farvi riferimento. In particolare, vale la pena menzionare la mailing list degli utilizzatori, attraverso la quale è possibile confrontarsi rapidamente con i migliori programmatori di SC. Gli archivi della mailing list sono poi una risorsa preziosa, in cui molto spesso è già disponbile una risposta ai propri quesiti. L interfaccia web via Nabble è forse di più agevole consultazione: User-f535.html Infine, il sito di James McCartney ha un valore eminentemente storico: 2.5 Interfacce grafiche 6 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 il sito e la mailing list. 7 La versione per Windows prende il nome di PsyCollider. 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

22 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à. È importante sottolineare che SC permette di programmare gli elementi della GUI facendo astrazione dal pacchetto grafico prescelto. In sostanza in questo modo è possibile costruire pulsanti, cursori, finestre riferendosi genericamente ad essi e selezionando un gestore grafico che si occuperà di costruirle. Si pensi alle skin in cui una stessa funzione è gestita secondo modalità grafiche diverse. In SC si seleziona un gestore grafico tra quelli disponibili e questi costruirà l oggetto prescelto. A dopo il dettaglio in termini di programmazione. I gestori grafici non sono molti. L interfaccia grafica nativa su MacOSX è Cocoa, mentre su Linux il primo gestore grafico è stato SCUM. Recentemente 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 (almeno, a parere di chi scrive, anche se probabilmente meno efficienti computazionalmente). In più, SwingOSC, essendo basata su Java, è completamente multipiattaforma, essendo disponibile per Mac, Windows, Linux. La versione per Windows (detta PsyCollider ) integra

23 in forma predefinita SwingOSC, che è l unica interfaccia grafica disponibile. Se si guarda la Post Window durante l avviamente di Psy- Collider si potrà notare come il server SwingOSC venga avviato automaticamente (booting java -jar SwingOSC... etc). Gli esempi del testo verranno scritti in forma astratta rispetto al gestore grafico, ma chi scrive utilizza sempre (pur essendo su Mac) SwingOSC. 2.6 Informazioni di base sull ambiente di sviluppo 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 Psy- Collider, 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

24 in OSX, attraverso due interfacce grafiche gemelle: in particolare, sono disponibili due server distinti, local e internal 8 (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; 9. 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 +. 8 Si veda dopo. 9 Gli schemi colori per le due piattaforme sono differenti (chissà perché). Qui si segue quella originale di OSX

25 Fig. 2.2 SC in Mac OSX Fig. 2.3 SC in Windows (PsyCollider). Aiuto: Apple +?. Se la combinazione è premuta contestualmente alla selezione di codice SC, si apre il file di aiuto correlato (laddove esistente). Pulizia della Post Window: Apple + Shift + k Windows

26 Valutazione del codice: selezionare il codice e premere Ctrl + Return (invio). Se il codice consiste in una sola riga, è sufficiente posizionare il cursore in un punto della riga e premere Ctrl + Return (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 2.7 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 caratteristica importante di SC è che gli help files contengono codice valido che può essere valutato interattivamente. 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: MacOSX: il formato file prescelto in origine è una versione speciale del formato di testo RTF. In MacOSX gli help file sono in formato HTML, ma vengono convertiti automaticamente in RTF, e sono documenti validi per SC: in altre parole, è possibile valutare il codice che vi è contenuto. L utilizzo del formato RTF consente

27 di avere formattazione avanzata nei documenti di SC (font, color, dimensione, etc.). Il formato è però nativo soltanto per Mac, e in caso di utilizzo su un altra piattaforma, la formattazione deve essere eliminata (il file deve essere convertito in testo semplice). In ogni caso è perfettamente possibile e consigliabile (salvo specifici interessi tipografici) utilizzare per i propri file il formato ASCII (cioè: testo semplice), in particolare scegliendo l estensione scd (SuperCollider Document), per evitare ambiguità. Windows: il formato file è soltanto ASCII (si può aprirlo con Notepad/Blocconote), e spetta all utente scegliere l estensione (evidentemente,.scd è una scelta sensata). Quando si vuole eseguire il codice contenuto nei file di help in HTML è 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

28 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

29 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, ma, a scanso di equivoci, si noti che qui ereditarietà è intesa in termini sistematici, non evolutivi.la relazione di ereditarietà prende infatti a modello le tassonomie naturalistiche. Ad esempio, il grafo seguente illustra la posizione tassomica dell ippopotamo. L ippopotamo appartiene al subordine dei Suina (ad esempio, intuibilmente, i maiali), con i quali condivide alcuni tratti, che differenziano entrambi dai Ruminantia (ad esempio, le mucche), pur essendo Ruminantia e Suina entrambi Actiodactyla (e distinguendosi entrambi dai Perissodactyla, ad esempio i cavalli). Se le classi sono astratte (ad esempio, la species dell ippopotamo), gli oggetti (gli ippopotami da classificare) sono concreti. Tornando alla programmazione, nel paradigma object-oriented il mondo si presenta al programmatore come un insieme di oggetti che si prestano, sotto determinate condizioni, ad essere manipolati. In particolare, per manipolare un oggetto per chiedergli di fare qualcosa

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

t S C I R M A // Andrea Valle CIRMA Centro Interdipartimentale di Ricerca sulla Multimedialità e l Audiovisivo Università di Torino 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

Dettagli

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

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

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

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

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori Programmazione ad oggetti in Java Daniela Micucci Outline La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori 2 Programmazione ad oggetti in Java 1 OOP Java

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

MODULO 2. Gestione dei File. Concetti base. Muoversi tra il menù dei programmi installati

MODULO 2. Gestione dei File. Concetti base. Muoversi tra il menù dei programmi installati MODULO 2 Gestione dei File MODULO 2 - GESTIONE DEI FILE 1 Concetti base Avviare e spegnere il computer Muoversi tra il menù dei programmi installati Di che risorse disponiamo? Pannello di controllo - Sistema

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

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

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

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

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

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

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

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

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

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

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

SuperCollider. by Paolo Olocco

SuperCollider. by Paolo Olocco SuperCollider by Paolo Olocco Personali traduzione dei tutorial Gettin-Started ed altri presenti nella documentazione di SuperCollider con approfondimenti e riferimenti. Il materiale presentato può essere

Dettagli

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13 Parte 13 Documentazione - AA. 2012/13 [Frida Kahlo Nucleus Of Creation, 1945] 13.1 13.2 Documentazione La documentazione in campo informatico, comprende il materiale utile alla comprensione delle caratteristiche

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

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

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 11 system Sistemi operativi 12 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 11.1 Di cosa parliamo in questa lezione? L interfaccia : system 1 Il

Dettagli

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

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

Dettagli

PROGETTO LAUREE SCIENTIFICHE

PROGETTO LAUREE SCIENTIFICHE 1 PROGETTO LAUREE SCIENTIFICHE Write once, write everywhere è il motto dei progettisti del linguaggio java. Infatti questo linguaggio è il risultato dell esigenza di programmare per quello che si può chiamare

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

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

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

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

LICEO SCIENTIFICO STATALE EDOARDO AMALDI PROGRAMMAZIONE DISCIPLINARE INFORMATICA

LICEO SCIENTIFICO STATALE EDOARDO AMALDI PROGRAMMAZIONE DISCIPLINARE INFORMATICA LICEO SCIENTIFICO STATALE EDOARDO AMALDI CLASSI PRIME ORE SETTIMANALI: 2 PROGRAMMAZIONE DISCIPLINARE INFORMATICA :: MACROARGOMENTI CHE VERRANNO TRATTATI NEL CORSO DEL CORRENTE ANNO SCOLASTICO MOD. 1 Concetti

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

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

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI MICROSOFT EXCEL INTRODUZIONE Si tratta di un software appartenente alla categoria dei fogli di calcolo: con essi si intendono veri e propri fogli elettronici, ciascuno dei quali è diviso in righe e colonne,

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

VoiceManager. Guida all uso

VoiceManager. Guida all uso VoiceManager Guida all uso Terza edizione ottobre 2014 Voice Manager Sommario Sommario... 3 Voice Manager... 4 1 Introduzione... 4 2 Uso del sistema di riconoscimento vocale... 5 3 Funzionamento del riconoscitore

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

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

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

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Microsoft Word 2007. La BARRA DI ACCESSO RAPIDO, che contiene alcuni comandi sempre visibili e può essere personalizzata.

Microsoft Word 2007. La BARRA DI ACCESSO RAPIDO, che contiene alcuni comandi sempre visibili e può essere personalizzata. Microsoft Word 2007 Microsoft Office Word è il programma di elaborazione testi di Microsoft all interno del pacchetto Office. Oggi Word ha un enorme diffusione, tanto da diventare l editor di testi più

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

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

Sistemi operativi I: Windows. Lezione I

Sistemi operativi I: Windows. Lezione I Sistemi operativi I: Windows Lezione I Scopo della lezione Richiamare le principali funzionalità di un sistema operativo Esemplificarle descrivendo la loro implementazione in Windows Introdurre alcuni

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Giornata aperta sul web 2009

Giornata aperta sul web 2009 : dalla semplificazione del linguaggio alla costruzione di modelli accessibili a cura di Alberto Ardizzone (USR Lombardia) e Renata Durighello (IC Rodari di Santa Giustina BL) 11 maggio 2009 1/51 Oggi

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione al Web WWW World Wide Web CdL Economia A.A. 2012/2013 Domenica Sileo Università degli Studi della Basilicata Introduzione al Web : WWW >> Sommario Sommario 2 n World

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare Facoltà di Lingue e Letterature Straniere Software È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (=

Dettagli

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Tecnologie per lo sviluppo di applicazioni La tendenza attuale dell'ingegneria è quella dell'integrazione di componenti

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

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

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

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Uso del computer e gestione dei file. Parte 1

Uso del computer e gestione dei file. Parte 1 Uso del computer e gestione dei file Parte 1 Avviare il pc Il tasto da premere per avviare il computer è frequentemente contraddistinto dall etichetta Power ed è comunque il più grande posto sul case.

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Il meccanismo dell ereditarietà a.a. 2008/2009 Claudio De Stefano 1 L ereditarietà consente di definire nuove classi per specializzazione o estensione di classi preesistenti,

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

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE OBJECT ORIENTED PROGRAMMING: I METODI DISPENSA 15.02 15-02_OOP_Metodi_[15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio

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

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

Dettagli

Esercitazioni di Basi di Dati

Esercitazioni di Basi di Dati Esercitazioni di Basi di Dati A.A. 2008-09 Dispense del corso Utilizzo base di pgadmin III Lorenzo Sarti sarti@dii.unisi.it PgAdmin III PgAdmin III è un sistema di progettazione e gestione grafica di database

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Capitolo 1 Introduzione a Gambas

Capitolo 1 Introduzione a Gambas Capitolo 1 Introduzione a Gambas Gambas è stato creato inizialmente da Benoit Minisini, un residente della periferia di Parigi. Secondo Benoit, Gambas è un linguaggio Basic con estensioni per la programmazione

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

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

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

Dettagli

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it Il software Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it Outline 1 Il software Outline Il software 1 Il software Algoritmo Sequenza di istruzioni la cui esecuzione consente di risolvere uno

Dettagli

Introduzione...2. 1. Requisiti di sistema.. 4. 2. Accesso alla piattaforma...5. 3. Come registrarsi e navigare nella piattaforma...

Introduzione...2. 1. Requisiti di sistema.. 4. 2. Accesso alla piattaforma...5. 3. Come registrarsi e navigare nella piattaforma... Piattaforma @pprendo Manuale Tutor aziendale INDICE Introduzione...2 1. Requisiti di sistema.. 4 2. Accesso alla piattaforma.....5 3. Come registrarsi e navigare nella piattaforma..... 6 3.1 Iscriversi

Dettagli

Il Software. Scopo della lezione

Il Software. Scopo della lezione Il Software 1 Scopo della lezione Descrivere il software di base e le sue funzionalità principali la gestione della memoria centrale per l esecuzione di piu` programmi simultaneamente il file system come

Dettagli

Note operative per Windows XP

Note operative per Windows XP Note operative per Windows XP AVVIO E ARRESTO DEL SISTEMA All avvio del computer, quando l utente preme l interruttore di accensione, vengono attivati i processi di inizializzazione con i quali si effettua

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

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

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

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD Utilizzare il NetBeans GUI Builder Dott. Ing. M. Banci, PhD Lavorare con i Beans Queste slide ci guidano nel processo di creazione di un bean pattern nel progetto NetBeans 15 Giugno 2007 Esercitazione

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

Iprogrammi scritti in Java sono formati da Classi che

Iprogrammi scritti in Java sono formati da Classi che Capitolo 3. Pesci e Animali Domestici Le Classi di Java Translated by Francesco Orciuoli Iprogrammi scritti in Java sono formati da Classi che rappresentano gli oggetti del mondo reale. Sebbene le persone

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

Linguaggi 2 e laboratorio

Linguaggi 2 e laboratorio Linguaggi 2 e laboratorio Docente: Leonardo Badia Contatti: leonardo.badia@gmail.com Pagina web del corso: www.unife.it/scienze/informatica/ insegnamenti/linguaggi-2-laboratorio Argomenti del corso: Java

Dettagli

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

Dettagli

L interfaccia di Microsoft Word 2007

L interfaccia di Microsoft Word 2007 L interfaccia di Microsoft Word 2007 Microsoft Word 2007 è un Word Processor, ovvero un programma di trattamento testi. La novità di questa versione riguarda la barra multifunzione, nella quale i comandi

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

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

New Team Up in English Flip-Book Guida all uso

New Team Up in English Flip-Book Guida all uso New Team Up in English Flip-Book Indice 1 Introduzione p. 3 2 Procedura d avvio p. 4 2. 1 Procedura per PC WIN p. 4 2. 2 Procedura per Mac p. 4 2. 3 Procedura per Linux p. 4 3 Creazione del profilo p.

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

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

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

Dettagli

L organizzazione dei dati

L organizzazione dei dati L organizzazione dei dati Directory In informatica, una directory (chiamata anche cartella, folder o direttorio), è un entità nel file system che contiene un gruppo di file e altre directory. Il termine

Dettagli

Il Software... A.A. 2013-14 Informatica 96

Il Software... A.A. 2013-14 Informatica 96 Il Software... A.A. 2013-14 Informatica 96 Il software L hardware non è direttamente utilizzabile Sono necessari dei programmi per far svolgere delle funzioni all insieme di circuiti Informatica 97 Il

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

excel La cartella di lavoro Il foglio di lavoro

excel La cartella di lavoro Il foglio di lavoro excel Fogli Elettronici Un foglio elettronico (o spreadsheet) e` un software applicativo nato dall esigenza di organizzare insiemi di dati tramite tabelle, schemi, grafici, etc. effettuare calcoli di natura

Dettagli