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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 MethodQuote EZRanger XFaderCtkProtoNotes MelFilter Link NumChannels SOS EZSlider MultiTap UI JSpeech Gradient Model LRUNumberAllocator SoundFileFormats AutoDocTestClass GeneralHIDSlot Grap Pin BeatSched PatchIn JPen JStethoscope Tempo JavaObje GeneralHIDDevi GuidoTimeSig ProxyMixer SCIBTo SCIBViewP TaskPro SampleL Gui NodeMapSetting GeoGraphSynth Exception JSCWindow Insets GraphView Abstra En E LocalQuarks PageLayout ModalDialogUnix UGenInstr SwingGUI Document No Impulsar ImageView Buf CtkNoteObject PitchCollection FreqShift Crucial Mono MIDIClient WiiMoteGUI Quarks FlowLayout PatchOut OSCResponderQueue Runner Collapse QuarkDepe Module Client Pen ControlName De Color XSession Updater GeoAudio ResponderArray JMouseBase InstrAt TaskProxyE Au MultiChanRecorder WiiRemoteGU Manuscript Quest opera è stata rilasciata sotto la licenza Creative Commons Attribuzione- Non commerciale-condividi allo stesso modo 2.5 Italia. Per leggere una copia SwingDialog della licenza visita il sito web o spedisci una lettera a Creative Commons, 171 Second Street, Suite TDuty_old HIDDeviceService ParserGUI Warp XFaderN WiiCalibrationInfo Chronometer CocoaDialog Mix Point ModalFreqUGen QuarkSVNRepository DoRecordProxyMixer NotificationRegistration MXHIDSlot RingNumberAllocato 300, San Francisco, California, 94105, USA. Player88 Quark PowerO SCWindow PatternCondu Spee Stethoscope Nil Help Position PhilologusGuiTable GuidoVo SoundIn UGenHelper OSCresponderNode Process UniqueID SCNSObjectAb FormantChar Questo lavoro utilizza molti software open source Quar DOMNode Magnitude Notificati SlotInspector EnvB SCIBPanelWindow WiiNunchukGUI O PriorityQueue GeoClock HIDDevice Ar RawPointer Class MIDIEvent NB JSoundFil Inspecto SuperCollider: ciò di cui si parla (http://supercollider.sourceforge.net/) ClassBrowser AbstractConstrain Layout Praat AbstractConsole Graph DOMImplementation Philologus SkipJack Instr Obj Praat: analisi e visualizzazione dei segnali audio (http://www.praat.org/) StackNumberAllocator Rect Condition GraphParser TChoose NetAd VolumeGui GetStringDialog XFader4 ControlPrototypes MIDIIn RelativeToPa Spec Platform KeyCodeRes Python: generazione del codice TEX colorato a partire da quello in SuperCollider (http://www.python.org/) Harmonics GUI DocParser AutoCompMethod Scheduler TestDepe S BroadcastServer TEX: tipografia automatica (http://www.ctan.org/) MIDIEndPoint Date NodeProxyEdit GuidoTime Quant KeyCodeRe SCVie ConTEXt: preparazione globale del documento basata su TEX SoundFileViewProgressWindow SOGui (http://www.pragma-ade.nl/) GraphBuilder CocoaGUI HIDDeviceElement CmdPeriod SystemSynthDefs FileR Spla PyX: visualizzazione dei segnali audio (cap. 5) AbstractPlayControl ClassHelper SimpleContro (http://pyx.sourceforge.net/) JKeyState SelectXFocus IndexL Glyph XInFeedback Monitor SpeechChannel Sheet StartUp Pitch GraphViz: generazione dei grafi che rappresentano le relazioni di ereditarietà tra classi in SuperCollider, diagrammi di flusso per le unità audio Actant Messa Insp PhilologusGuiScore GeneralHID Histor (http://www.graphviz.org/) Splay SCIBAreaSelection WiiMote SelectButtonSet ServerOptions CtkTimer SerialPort SynthDef Def TeXShop: tutto l editing basato su TEX FreqScope BusSynthDefs Staff PitchClass JSpeechChan Painter MIDIRespon MXHIDAbsInfoFont (http://www.uoregon.edu/~koch/texshop/) EventStreamClea Praat NodeBox: immagine di copertina UpdateListener SimpleKD andrea Page (http://nodebox.net/) TempoBus valle GlyphWriter MIDIClockOut GuidoArt Interpreter KeyMapper MIDIOut JS Keyboarder InBus SOScore RunnerMixer SCIBDrag AGProcessor ContiguousBlockAlloca Semaphore Finalize CmdString TopicHe GuidoMark Boolean SoundFileEZNumber Vol Sito: EnvGate SelectX HIDInfo JPeakMeterMa Sussuri e grida: NodeIDAllocator HiliteGradient Editor Sco MultiPageLayout MLIDbrowser HistoryGuiInterplEnv Symbol Post SynthDesc IODesc Grapher Collection Frame MyClass PMOsc EnvironmentRed Abstrac JFreq GeoGrapher Bus FlowVar UnicodeResponder LilyPond Co Midi2FreqUGen Helper GuidoScor 2 Scribe ToolboxClientFunc GetFileDialog AutoClassHelpe EventTyp JFont AudioIn ContiguousBlock MXHID InspManager ProxyMonit Node FunctionDef SynthDescLib OSCService PowerOfTwoBlock RunnerGUI XInCtkObj Swi WiiMoteIRObject Clock JKnob PathName PrettyState NodeCon OSC SOScoreNodeBoxGraphGenerator

2 1

3 Sommario 1 Introduzione Ciò di cui si parla: SuperCollider Obiettivi Fonti Convenzioni grafiche 11 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 24 3 Object Oriented Programming in SC: fondamenti Minima objectalia Oggetti in SC Metodi e messaggi I metodi di tipo post e dump Numeri 46 4 Sintassi: elementi fondamentali (Parentesi) // Commenti (/*di diverso tipo*/) Stringhe Variabili Simboli Espressioni ; Errori {Funzioni} 61 Andrea Valle tscirma the SuperCollider Italian Manual at CIRMA ( DRAFT: 9 aprile 2008) 4

4 3

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

6 6.5 Appetizer: un esempio di sintesi e controllo in tempo reale Una synthdef UGen e UGen-Graph Un synth GUI e controller Orologi Sintetizzatori/eventi Routine/Task Micro/macro 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

7 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 ; 1 Introduzione 1.1 Ciò di cui si parla: SuperCollider 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 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

8 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 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 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 Il manuale prevede tre distinzioni: 1.3 Fonti 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

9 SuperCollider application Client 4 Server 5 2 SuperCollider grado 0 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.1 Che cos è SuperCollider 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) 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:

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

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

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

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

14 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: Fig SC in Mac OSX MacOSX 2 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 +. 3 Fig. 2.3 SC in Windows (PsyCollider). 8 Si veda dopo. 9 Gli schemi colori per le due piattaforme sono differenti (chissà perché). Qui si segue quella originale di OSX 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

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

16 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

17 è 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). Traducendo in italiano, la frase equivalente potrebbe essere: z, dichiara la tua classe!. 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. superclass: nil Object is the root class of all other classes. All objects are indirect instances of class Object. 11 La Z verrebbe colorata di blu. Fig. 3.1 Tassonomia dell ippopotamo. è necessario inviargli un messaggio. Un oggetto, per poter rispondere al messaggio, deve conoscere un metodo. In sostanza, può rispondere ad una richiesta (messaggio) attraverso una competenza (metodo). L oggetto che riceve il messaggio è il ricevente di quel messaggio e vi può rispondere se implementa un metodo corrispondente. Riassumendo: oggetto e metodo concernono la definizione dell oggetto dall interno messaggio e ricevente concernono la comunicazione con l oggetto dall esterno 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

18 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 non va pensata come una descrizione alla terza persona ( l oggetto fa una certa cosa ), ma piuttosto come una coppia vocativo/imperativo: oggetto, fai qualcosa!. Ad esempio, conio.imprimi, o anche: ippopotamo.nuota. 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 (per ora si intenda: 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: 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 new- Clear, ovvero oggetto, fai qualcosa (così)! 10. In particolare new- Clear(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); 10 Tornando a prima, conio.imprimi(forte) o ippopotamo.nuota(veloce)

19 Array2D Range Interval Archive Library LibraryBase Event Environment IdentityDictionary Dictionary MultiLevelIdentityDictionary Collection Object IdentitySet Set Bag IdentityBag Pair ObjectTable TwoWayIdentityDictionary Fig. 3.2 Grafo ad albero delle sottoclassi di Collection, a partire da Object. L ultima riga che SC stampa è in entrambi i caso l oggetto Collection (39), che è ciò che i metodi ritornano. Il perché verrà discusso a breve. Se si sostituisce a Collection la classe Object, si ottiene tutta la struttura delle classi di SC. La figura 3.3 riporta una rappresentazione radiale della struttura di tutte delle classi di SC, ottenuta elaborando il risultato di Object.dumpSubclassList 12. Si noti come un punto di addensamento sia rappresentato da UGen, la sopraclasse diretta di tutte le classi che generano segnali in SC. È una classe comprensibilmente molto numerosa. Tutti le classi in SC ereditano da Object. Ad esempio, il metodo class che è stato chiamato su z nell esempio precedente è definito a livello di Object ed ereditato, lungo l albero delle relazioni di ereditarietà, da Array, così che un istanza di quest ultima classe (z) vi possa rispondere. Al di là della navigazione nella struttura degli help files, SC mette a disposizione dell utente molti metodi per ispezionare la struttura interna del codice: è la capacità che tipicamente viene definita introspezione. Ad esempio i metodi dumpclasssubtree e dump- SubclassList stampano su schermo rispettivamente una rappresentazione gerarchica delle sottoclassi della classe su cui è invocato il metodo e una lista in ordine alfabetico. Le due rappresentazioni sono equivalenti. Nella prima sono più chiari i rapporti di parentela tra le classi attraverso la struttura ad albero, nella seconda è invece possibile percorrere -per ognuna delle sottoclassi della classe - la struttura dell albero lungo i rami ascendenti fino a Object. Si prenda la classe Collection, una classe molto generale di cui Array è una sottoclasse, e si inviino i messaggi dumpclasssubtree e dumpsubclasslist. Quanto segue è quanto appare sulla Post Window nei due casi. 3.3 Metodi e messaggi SC è scritto per la maggior parte in SC (con l eccezione di un nucleo di primitive scritte in linguaggio C per ragioni di efficienza): il codice stesso del programma è trasparente al programmatore, nel senso che è scritto in un linguaggio comprensibile per chi parla SC. Questo 12 Propriamente si tratta delle classi installate sulla macchina di scrive

20 1 Collection.dumpClassSubtree; 2 Collection 3 [ 4 Array2D 5 Range 6 Interval 7 MultiLevelIdentityDictionary 8 [ 9 LibraryBase 10 [ Archive Library ] 11 ] 12 Set 13 [ 14 Dictionary 15 [ 16 IdentityDictionary 17 [ 18 Environment 19 [ Event ] 20 ] 21 ] 22 IdentitySet 23 ] 24 Bag 25 [ IdentityBag ] 26 Pair 27 TwoWayIdentityDictionary 28 [ ObjectTable ] 29 SequenceableCollection 30 [ 31 Order 32 LinkedList 33 List 34 [ SortedList ] 35 ArrayedCollection 36 [ 37 RawArray 38 [ 39 DoubleArray 40 FloatArray 41 [ Wavetable Signal ] 43 [ ] 45 ] 46 Collection Collection.dumpSubclassList 2 Archive : LibraryBase : MultiLevelIdentityDictionary : Collection : Object 3 Array : ArrayedCollection : SequenceableCollection : Collection : Object 4 Array2D : Collection : Object 5 ArrayedCollection : SequenceableCollection : Collection : Object 6 Bag : Collection : Object 7 Collection : Object 8 Dictionary : Set : Collection : Object 9 DoubleArray : RawArray : ArrayedCollection : SequenceableCollection : Collection : Object 10 Environment : IdentityDictionary : Dictionary : Set : Collection : Object 11 Event : Environment : IdentityDictionary : Dictionary : Set : Collection : Object 12 FloatArray : Raw 14 [ ] classes listed. 17 Collection Con Collection.dumpClassSubtree si vede la posizione di Array in relazione ai suoi vicini (47). È sullo stesso livello di RawArray (36), entrambi sono sottoclassi di ArrayedCollection (34). Quest ultima classe appartiene alla famiglia delle SequenceableCollection (28). Il metodo Collection.dumpSubclassList lista le classi in ordine alfabetico: è agevole trovare Array (2) per poi seguire i rami dell albero (lungo la stessa riga) fino a Object. La figura 3.2 è una visualizzazione tramite un grafo ad albero della struttura delle classi di Collection, ottenuta elaborando automaticamente l output di Collection.dumpSubclassList. L esempio è tratto dall help file Internal-Snooping, che è dedicato all introspezione in SC. Anche l help file Class è particolarmente interessante al proposito

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

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

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

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

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

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

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

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Introduzione 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

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

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

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

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

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

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

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

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

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

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

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

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/07/2015 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/07/2015 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/07/2015 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX NB: il candidato troverà nell archivio ZIP scaricato da Esamix anche il software Start Kit

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

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

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

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

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

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

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

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

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/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

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

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

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

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

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

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

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

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

Manuale Piattaforma Didattica

Manuale Piattaforma Didattica Manuale Piattaforma Didattica Ver. 1.2 Sommario Introduzione... 1 Accesso alla piattaforma... 1 Il profilo personale... 3 Struttura dei singoli insegnamenti... 4 I Forum... 5 I Messaggi... 7 I contenuti

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

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

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

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

7.6 USO DELLA POSTA ELETTRONICA

7.6 USO DELLA POSTA ELETTRONICA 7.6 USO DELLA POSTA ELETTRONICA La principale utilità di un programma di posta elettronica consiste nel ricevere e inviare messaggi (con o senza allegati) in tempi brevissimi. Esistono vari programmi di

Dettagli

GUIDA RAPIDA ALL USO DI EXCEL

GUIDA RAPIDA ALL USO DI EXCEL GUIDA RAPIDA ALL USO DI EXCEL I fogli elettronici vengono utilizzati in moltissimi settori, per applicazioni di tipo economico, finanziario, scientifico, ingegneristico e sono chiamati in vari modi : fogli

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Sintassi e semantica Compilatori, interpreti e il linker Introduzione al C La funzione main del C 2 Definizione 1 Un linguaggio è un insieme di parole

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

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

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

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

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

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

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

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

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

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

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli 4 Un primo programma Java Introduzione alla programmazione in Java class Program1 { System.out.println("Benvenuti al corso"); 1 5 Programmi e mondo reale Programmare ad oggetti Il codice di un programma

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

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

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

MICROSOFT ACCESS. Fabrizio Barani 1

MICROSOFT ACCESS. Fabrizio Barani 1 MICROSOFT ACCESS Premessa ACCESS è un programma di gestione di banche dati, consente la creazione e modifica dei contenitori di informazioni di un database (tabelle), l inserimento di dati anche mediante

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

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

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

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

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

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

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

Programmazione. Programmare ad oggetti. Programmi e calcolatori. Focalizzazione del corso. Alcuni linguaggi famosi. Programmi e linguaggi

Programmazione. Programmare ad oggetti. Programmi e calcolatori. Focalizzazione del corso. Alcuni linguaggi famosi. Programmi e linguaggi 1 Programmazione Anno accademico 2002-2003 Orario delle lezioni: Mercoledì: 16-19, Giovedì: 16-19 Prof. Gerardo Canfora canfora@unisannio.it Libro di testo: David Arnow, Gerald Weiss Introduzione alla

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

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

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli