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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dettagli

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

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

Dettagli

Andrea Valle. Introduzione a SuperCollider

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

Dettagli

Andrea Valle. Introduzione a SuperCollider

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

Dettagli

Strumenti per lo sviluppo del software

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

Dettagli

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dettagli

Introduzione 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

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

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

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

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

Dettagli

Corso 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

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

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

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

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

FileMaker 12. Guida ODBC e JDBC

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

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

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

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

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

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

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

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

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

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

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

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

2. Strutture dei Sistemi Operativi

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

Dettagli

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

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

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

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

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

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

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

Object Oriented Programming

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

Dettagli

CAPITOLO 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

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

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

Dettagli

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

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

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

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

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

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

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

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

Dettagli

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

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

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

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

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

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

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

Dettagli

Fondamenti di Informatica

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

Capitolo 2. Esplorare l interfaccia tra uomo e computer

Capitolo 2. Esplorare l interfaccia tra uomo e computer Capitolo 2 Esplorare l interfaccia tra uomo e computer Imparare la tecnologia Gli esseri umani non hanno abilità tecnologiche innate La nostra precedente esperienza nell uso di dispositivi simili, incluse

Dettagli

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

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

Dettagli

Buona Programmazione in C

Buona Programmazione in C Più lo sviluppo di un prodotto software prosegue e più le modifiche che devono essere apportate divengono complicate e dispendiose; portando, così, ad un aumento difficilmente accettabile dei suoi costi

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

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

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

Dettagli

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

LABORATORIO DI ANALISI DEI SISTEMI

LABORATORIO DI ANALISI DEI SISTEMI LABORATORIO DI ANALISI DEI SISTEMI Si utilizzerà, come strumento di lavoro, un foglio elettronico, il più diffuso Excel o anche quello gratuito di OpenOffice (www.openoffice.org). Tale scelta, pur non

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

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

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

Struttura logica di un programma

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

Dettagli

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

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

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

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

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

Appunti Modulo 2 - Microsoft Windows

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

Dettagli

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

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

GUIDA iprof. InsTaLLa usa AGGIOrNA

GUIDA iprof. InsTaLLa usa AGGIOrNA GUIDA iprof InsTaLLa usa AGGIOrNA che cos è iprof Progetto Maria Vittoria Alfieri, Luca De Gregorio Progettazione, sviluppo software e grafica Ocho Durando S.P.A. Supervisione tecnica e coordinamento Luca

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

Procedura di installazione del Phaidra Importer... 2

Procedura di installazione del Phaidra Importer... 2 Indice Procedura di installazione del Phaidra Importer... 2 Requisiti di sistema... 2 Verifica su Windows... 3 Verifica su Linux... 4 Verifica su Macintosh... 4 Installazione (Installer)... 5 Windows...

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

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

PC Crash Course: OBIETTIVI

PC Crash Course: OBIETTIVI PC Crash Course: OBIETTIVI 1. PC: uno strumento 2. Microsoft Windows XP: alcuni concetti chiave della interfaccia grafica 3. File System: file, direttori, link, 4. Il prompt dei comandi 5. Un occhiata

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

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

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

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

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

Modulo 8. Strumenti di produzione Strumenti. Gli strumenti più utilizzati per produrre pagine Web sono essenzialmente due:

Modulo 8. Strumenti di produzione Strumenti. Gli strumenti più utilizzati per produrre pagine Web sono essenzialmente due: Pagina 1 di 6 Strumenti di produzione Strumenti Gli strumenti più utilizzati per produrre pagine Web sono essenzialmente due: 1. Netscape Composer, gratuito e scaricabile da netscape.org assieme al browser

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

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

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

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