Università di Pisa. Gestione delle eccezioni nella composizione di codice intermedio. Tesi di Laurea: Candidato: Federico Valdes

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università di Pisa. Gestione delle eccezioni nella composizione di codice intermedio. Tesi di Laurea: Candidato: Federico Valdes"

Transcript

1 Unverstà d Psa Facoltà d Scenze Matematche, Fsche e Natural Corso d Laurea Specalstca n Tecnologe Informatche Anno accademco Tes d Laurea: Gestone delle eccezon nella composzone d codce ntermedo Canddato: Federco Valdes Relatore: Prof. Antono Csternno Controrelatore: Prof.ssa Laura Semn

2 2

3 To My Parents 3

4 Rngrazament Vorre esprmere la ma pù sncera grattudne al relatore d questa tes, l prof. Antono Csternno, per averm seguto nella stesura e per la dsponbltà dmostrata. Rngrazo me gentor, per l enorme pazenza avuta durante l mo percorso unverstaro e tutt le persone conoscute n quest ann che m hanno sostenuto durante l corso de me stud, un abbracco specale a tutt gl amc del perodo d C62. 4

5 Indce generale CAPITOLO 1 Introduzone STESURA DELLA TESI CAPITOLO 2 Code Brcks COMMON LANGUAGE RUNTIME Common Type System Common Language Specfcaton Common Intermedate Language Just n Tme Compler Vrtual Exceuton System MANAGED MODULE Metadata Assembly REFLECTION CLI Fle Reader CODE VALUES BINDING Bndng senza code combnators Bndng con code combnators CODE BRICKS CAPITOLO 3 Gestone delle eccezon INTRODUZIONE MODALITA DI GESTIONE Clausole Supporto CIL per le eccezon SINTASSI E SEMANTICA Throw statement Try statement

6 3.4 IMPLEMENTAZIONE Bndng senza code combnators Bndng con code combnators CONCLUSIONI CAPITOLO 4 Modello Formale MODELLO DELL AMBIENTE DI ESECUZIONE Tp e valor Method Bodes Valutazone d method bodes Tpzzazone d method bodes Modello della memora Teorema d valutazone CODE TYPE BINDING CODE VALUES Code transformaton Bndng values Bndπ Bnd χ Funzone Bnd Esecuzone d Code Values MODELLO FORMALE PER LA GESTIONE DELLE ECCEZIONI Estensone all ambente d esecuzone Tpo Code e funzone Bnd Esecuzone d Code Values INTERPRETER THEOREM CAPITOLO 5 - CONCLUSIONI APPENDICE BIBLIOGRAFIA

7 7

8 La generazone d codce runtme è stato un campo d rcerca per svarat ann ma l suo uso pratco è stato n qualche modo lmtato a causa dello svluppo d tool dpendent dal lnguaggo d programmazone utlzzato e anche dalla partcolare pattaforma. Prendendo come esempo un lnguaggo d programmazone come l C l cu codce sorgente vene complato n lnguaggo macchna dpendente dall archtettura su cu vene eseguto dobbamo tenere n consderazone le specfche del complatore e le convenzon adottate dal sstema operatvo. Un modo per essere lber da quest vncol mpost dall archtettura dell elaboratore è stato quello d generare codce runtme su sstem d esecuzone basat sul bytecode, purtroppo però le prestazon d tal programm non erano paragonabl a quell generat n codce natvo dovendo attraversare una fase nterpretatva che consentsse d nterpretare da una macchna vrtuale le struzon scrtte n bytecode per poter essere esegute dalla macchna sottostante. L obbettvo è stato qund quello d combnare vantagg della generazone d codce n bytecode consente una facle generazone e permette la portabltà del codce su dfferent archtetture ) con la generazone del codce n lnguaggo macchna permette una notevole veloctà del codce generato ). Questo è stato possble con l arrvo delle nuove pattaforme d esecuzone basate sul bytecode come la Java Vrtual Machne ed l Common Language Runtme d Mcrosoft che contengono un Just-n-Tme compler che genera codce macchna ottmzzato dal bytecode a runtme. Un complatore just-n-tme o JIT permette un tpo d complazone, conoscuta anche come traduzone dnamca, con la quale è possble aumentare le performance de sstem d programmazone che utlzzano l bytecode, traducendo l bytecode nel codce macchna natvo n fase d run-tme. Graze all ntroduzone de sstem JIT è stato possble combnare vantagg della complazone del bytecode a quell della complazone natva. 8

9 Introduzone Nella fase d complazone del bytecode è eseguta la maggor parte del lavoro pù pesante come anals sntattca e semantca del codce sorgente. La complazone da bytecode a codce natvo nvece è molto pù veloce ed relatv complator molto pù semplc da realzzare n quanto l lavoro pù complesso è eseguto dal complatore che ha prodotto l bytecode. Sa la JVM che l CLR fanno parte d una classe d support run-tme chamata ambente d esecuzone fortemente tpato Strongly Typed Executon Envnronments, STEE ) che mplementa una macchna vrtuale che fornsce un sstema d tp estendble, supporto alla reflecton e l modello d esecuzone garantsce che tp de valor che vengono esegut possono essere sempre stablt e l accesso a quest valor può essere effettuato soltanto utlzzando gl operator defnt su d ess. Il supporto alla reflecton è garantto da quest ambent d esecuzone poché contengono nformazon su tp utlzzat da programm e sulla loro struttura, quest ambent sono n grado d rflettere tp e loro metod a programm n esecuzone. L nput d un STEE è un programma espresso n un lnguaggo chamato lnguaggo ntermedo, l Common Language Runtme esegue programm scrtt n Common Intermedate Language mentre la Java Vrtual Machne esegue l bytecode, l esecuzone nza da un metodo che può nvocare altr metod, ogn nvocazone d un metodo porta all aggunta d un stack frame che contene varabl local e argoment d nput. La lbrera CodeBrcks svluppata utlzzando l lnguaggo d programmazone C# estende l supporto alla reflecton fornto da un ambente STEE defnendo l nuovo tpo Code. I code value che rappresentano le stanze d questo nuovo tpo code possono essere vste come delle scatole nere che rappresentano l corpo d un metodo. Quest valor sono fornt d un operatore chamato Bnd che permette d manpolare code values fornendo un sstema per la generazone d codce durante la fase d esecuzone, meta-programmazone e programmazone mult-stage. Questo meccansmo è potente e facle da usare poché è esposto come tpo nel lnguaggo d programmazone utlzzato e da l mpressone al programmatore che la combnazone d codce avvenga a lvello sorgente nascondendo l fatto che la trasformazone reale avvene a lvello d codce ntermedo. 9

10 Introduzone 1.1 Stesura della tes L obbettvo della tes è d estendere l meccansmo fornto dalla lbrera CodeBrcks per permettere la gestone delle eccezon. Verrà estesa la classe Code con le nformazon necessare per rcostrure la tabella delle eccezon assocata al metodo che l code value rappresenta. Inoltre l operatore d Bnd dovrà permettere d determnare la tabella delle eccezon per l code value creato partendo dalle tabelle delle eccezon de code value da qual l operazone d combnazone d codce vene performata. La tes è stata suddvsa ne seguent captol: Captolo 2: Questo captolo s focalzzerà sulle tecnologe d base d questa tes. Verranno presentate le caratterstche d base dell ambente d esecuzone esteso dalla lbrera CodeBrcks, ovvero l Common Language Runtme. Qund presenteremo l tpo code e l funzonamento dell operatore Bnd fornendo alcun esemp. Captolo 3: Questo è l captolo centrale della tes, verrà presentato l meccansmo d gestone delle eccezon fornto dal Common Language Runtme e presentato una panoramca della soluzone adottata e dscuss alcun aspett dell mplementazone con l auto d esemp. Captolo 4: Vene presentato ed esteso l modello formale d code value e Bnd defnto n [1] per tenere conto delle modfche apportate nel captolo precedente. Captolo 5: Questa è la parte fnale della tes n cu verranno presentate alcune consderazon. 10

11 11

12 CodeBrcks è una lbrera svluppata con l lnguaggo d programmazone C# ed estende l supporto alla reflecton fornto dal.net Common Language Runtme. In questo captolo c preoccuperemo d descrvere le tecnologe sulle qual s basa CodeBrcks, vedremo n cosa consste l.net CLR e da qual component è costtuto descrvendo anche l supporto che fornsce alla reflecton. Nella seconda parte del captolo c concentramo nvece sulla classe attorno alla quale la lbrera è stata costruta, ovvero l tpo Code, analzzando e fornendo esemp sull applcazone dell unco operatore che consente d manpolare Code Values, l operatore Bnd. 12

13 Code Brcks 2.1 Common Language Runtme Il Common Language Runtme è l motore desecuzone della pattaforma.net esegue coè codce IL Intermedate Language) complato con complator che possono avere come target l CLR. Tale componente s occupa d complare Just-In- Tme al volo) l codce IL n lnguaggo comprensble dalla CPU lnguaggo Macchna). Il codce a cu l runtme s rfersce e la cu esecuzone è gestto da esso vene detto codce gestto managed code), ogn volta che vene utlzzato un complatore che ha come target l CLR vene creato un managed module. Fg. 2.1: Complare sorgent n Managed module. Il ruolo crtco del CLR è l fatto che fornsce un ambente d runtme unfcato comune a tutt lnguagg d programmazone. Il CLR può essere vsto come uno strato posto al d sopra del sstema operatvo che è responsable dell esecuzone vera e propra delle applcazon, noltre l common language runtme fornsce servz d base al managed code come la gestone della memora, esecuzone de thread e del codce e altr servz d sstema. Il CLR è composto da seguent cnque component: CTS Common Type System CLS Common Language Specfcaton 13

14 Code Brcks CIL Common Intermedate Language JIT Just In Tme Compler VES Vrtual Executon System Common Type System Il runtme obblga l codce ad avere un comportamento robusto attraverso l nfrastruttura d verfca del codce e del tpo chamata Common Type System. Tutt complator generano managed code conforme al CTS che descrve come tp sono defnt ed l loro comportamento; esso specfca cosa un tpo può contenere e le regole d vsbltà ed accesso a membr. Il CLR s basa su tp, ess espongono funzonaltà all applcazone e ad altr tp; noltre sono l meccansmo che permette a programm scrtt n dfferent lnguagg d poter comuncare tra loro. Il CTS supporta due categore general d tp ognuno de qual è suddvso n sottocategore: Value Types: Contengono drettamente l dato, e le stanze d quest tp vengono allocat drettamente nello stack. Reference Types: Contengono un rfermento al valore della memora ndrzzata, sono allocat nello heap. Fg. 2.2: Relazone tra tp. 14

15 Code Brcks Common Language Specfcaton Quando samo nteressat a defnre oggett che nteragscano con altr ndpendentemente dal lnguaggo con l quale sono stat mplementat dobbamo garantre che quest espongano al chamante solo quelle caratterstche che sono comun a tutt lnguagg con qual dovrà collaborare. Il CLS è stato defnto per questo motvo, è una sere d caratterstche d base de lnguagg necessar ad alcune applcazon. Tutt component defnt che rspettano le caratterstche CLS sono n grado d essere accessbl da altr lnguagg d programmazone che supportano l CLS. La fgura seguente evdenza da un punto d vsta nsemstca come var lnguagg possedono un sottonseme d caratterstche del CTS mentre contengono le specfche del CLS. Fg 2.3: Vsta nsemstca delle caratterstche de lnguagg d programmazone. Quando mplementamo un componente che voglamo sa utlzzato da un altro lnguaggo dobbamo fare attenzone a non utlzzare caratterstche al d fuor dell nseme CLS. 15

16 Code Brcks Common Intermedate Language Il rsultato della complazone del source code è un MSIL Mcrosoft Intermedate Language) che è una sere d struzon ndpendente dalla CPU. Il codce MSIL è una sere d struzon stack-based progettate per essere faclmente generata dal codce sorgente con l uso d complator e altr tool. Esso nclude dvers tp d struzon, struzon per carcare, memorzzare, chamare metod e oggett oltre alle struzon matematche e logche. Questo formato ntermedo ha punt n comune con l tradzonale lnguaggo Assembly, per esempo opera su dat con struzon d tpo push e pop poché gra su un ambente d esecuzone basato sullo stack, a dfferenza del lnguaggo assembly non fa rfermento a nessuna pattaforma hardware partcolare. Il lnguaggo ntermedo esprme un programma eseguto da un thread, l esecuzone nza da un metodo che può nvocare altr metod. Ogn volta che vene nvocato un metodo s aggunge uno stack frame contenente le varabl local e gl argoment d nput. Fg 2.4: Modello della macchna a stat 16

17 Code Brcks Come vene schematzzato n fg 2.4 l common language runtme gestsce dvers thread d controllo, pù managed heap e uno spazo d ndrzzamento condvso. Un thread d controllo tene tracca della lsta lnkata d stat de metod che vene utlzzata per consentre l esecuzone del programma, un nuovo stato vene creato e concatenato detro lo stato corrente ogn volta che vene eseguta una struzone d chamata ad un metodo. Un method state è un astrazone dello stack frame e descrve l ambente entro l quale un metodo vene eseguto, elenchamo d seguto prncpal camp che compongono lo stato d un metodo: Un puntatore struzone IP ) che ndca la prossma struzone MSIL da essere eseguta dal CLR nel metodo presente. Un evaluaton stack. Lo stack è vuoto al momento dell entrata nel metodo e l suo contenuto è completamente locale al metodo e preservato tra le vare chamate d metod. Un array d varabl local alle qual s accede utlzzando le struzon ldloca. Una varable locale può avere solo un tpo d dato e suo valor sono preservat tra le vare chamate d metod. Un array d argoment a qual s accede utlzzando le struzon ldarga. Molte delle struzon del lnguaggo ntermedo recuperano loro argoment dall evaluaton stack e poszona l valore d rtorno sullo stack. Anche gl argoment passat agl altr metod ed l loro valore d rtorno. Quando un metodo vene chamato gl argoment per l metodo chamato dventano gl argoment d nput per l metodo costtuendo l array d argoment presente nel method state. Durante l esecuzone d un metodo sono convolte tre categore d memora locale del metodo pù una categora d memora esterna che comprende camp a cu l meotodo può accedere. Le tre categore d memora locale ncludono l array degl argoment, delle varabl local pù lo stack d valutazone. Consderamo come esempo un metodo che esegue la somma d due valor nter rcevut come argoment d nput, d scuro c aspetteremo che lo stack frame assocato a questo metodo contenga un array degl argoment d lunghezza 2 n quanto contene soltanto due argoment. 17

18 Code Brcks D seguto mostramo l metodo scrtto con un lnguaggo ad alto lvello con accanto la sua possble complazone n codce MSIL: Source Code publc statc nt addnt, nt j) { return +j; MSIL Code ldarg.0 Complazone ldarg.1 add } ret Le prme due struzon leggono gl argoment dal method state assocato e gl carcano sull evaluaton stack, l struzone add legge due valor sullo stack, ne fa la somma e l rsultato è messo n cma allo stack. L struzone ret nfne permette l uscta dal metodo e resttusce l valore al chamante. Se questo metodo fosse stato chamato da un altro metodo allora l valore resttuto venva nserto n cma all evaluaton stack del metodo chamante e l method frame del metodo chamato elmnato. Guardando l codce, sa l sorgente che l rsultato della complazone n codce MSIL c rendamo conto che non vengono utlzzate varabl locale nel codce ntermedo non vengono utlzzare struzon ldloca per carcare delle varabl nell evaluaton stack ) d conseguenza l vettore che contene le varabl local nel method state del metodo sarà vuoto. Il lnguaggo ntermedo non contene struzon per manpolare regstr l chè permette a complator d produrre codce IL n poco tempo e faclmente; un altro grande vantaggo è che IL fornsce robustezza e scurezza. Infatt durante l processo d complazone da IL a struzon per CPU l CLR esegue una operazone d verfca del codce per asscurare che qualsas cosa l codce facca sa scuro; durante questa fase d verfca controlla che ogn metodo sa chamato con l gusto numero d parametr e d tpo corretto, controlla l uso corretto d puntator e asscura che non sano present converson d tpo non consentte. 18

19 Code Brcks Just In Tme Compler Una volta complato l codce sorgente e ottenuto l relatvo MSIL code un ulterore passo è necessaro prma che l codce possa essere eseguto, l MSIL deve essere convertto n codce specfco per la partcolare archtettura dell elaboratore, questo compto è effettuato dal JIT compler. La complazone just n tme s affda al presupposto che non tutto l codce verrà rchamato durante l esecuzone e qund puttosto che convertre tutto l MSIL n ununca passata n codce natvo converte soltanto l codce MSIL necessaro durante la sua esecuzone e ne conserva l codce natvo per le eventual chamate successve. Consderamo un semplce programma: statc vod Man) Console.WrteLne Chama l JIT ); Console.WrteLne NATIVO ); ) Un attmo prma che l metodo Man venga eseguto l CLR rleva tutt tp rfert da Man e vene creata una struttura dat nterna usata per gestre gl access ad altr tp; nel nostro esempo vene rferto soltanto un tpo, Console, n questo modo s alloca soltanto una struttura dat nterna che contene un entry per ogn metodo defnto dal tpo Console. Ogn entry fornsce l ndrzzo dell mplementazone del metodo. Quando la struttura vene nzalzzata ogn entry vene settata a una funzone nterna poché l metodo non è ancora stato convertto n codce natvo. Alla prma chamata del metodo WrteLne, graze alla struttura dat nterna utlzzando l entry assocata al metodo vene rchamata la funzone JIT Compler che s occuperà d convertre l metodo n codce natvo e memorzzarlo n un blocco dnamco d memora. Vene regstrato l ndrzzo del blocco nell entry relatva al metodo chamato all nterno della struttura dat nterna. In questo modo alla seconda chamata del metodo WrteLne leggerò nella struttura dat nterna l ndrzzo del blocco d memora dove s trova l codce natvo del metodo. 19

20 Code Brcks Vrtual Executon System Il vrtual executon system è l equvalente della java vrtual machne per l ambente d esecuzone d java; l VES s occupa d carcare ed esegure programm scrtt per l common language runtme. Esegue le funzonaltà d Loader utlzzando le funzonaltà contenute ne metadat e permette d ntegrare modul complat separatamente che possono anche essere scrtt n dfferent lnguagg d programmazone. Come funzonaltà agguntve durante l esecuzone del codce l VES s occupa della gestone automatca della memora utlzzando meccansm d tpo garbage collecton e fornsce servz per l nteroperabltà con codce d tpo unmanaged. 2.2 Managed Module Un applcazone.net dal punto d vsta del common language runtme consste d uno o pù managed module ognuno de qual contene metadat e codce ntermedo, l managed code vene generato durante la fase d complazone. Il formato d un managed module è un estensone dello standard Mcrosoft Wndows Portable Executable e Common Object Fle Format PE/COFF). Fg 2.5: Struttura d un Managed Module 20

21 Code Brcks Tutt fle mmagne contengono: Intestazon PE/COFF che descrvono le sezon e le nformazon mportant present all nterno. Indca anche su quale sstema operatvo l applcazone deve essere eseguta e d che tpo d fle s tratta pù altre nformazon come la data d creazone del modulo. Intestazone runtme, che contene tutte le nformazon che lo rendono un managed module. L nstestazone nclude la versone del CLR rchesto, qualche flag e l methoddef metadata token del punto d entrata del modulo per l metodo man. Questa ntestazone deve rsedere n una sezone d sola lettura del fle mmagne. Una sezone contenente dat utlzzat dal CLR come l codce prodotto dalla complazone del codce sorgente, nformazon rguardo alla gestone delle eccezon ed metadat Metadat Oltre che alla generazone del codce ntermedo un complatore che ha come target l common language runtme deve produrre metadata all nterno d cascun managed module. In breve metadat sono delle tabelle d dat che descrvono cosa è defnto all nterno del modulo, ogn tpo e membro utlzzat dal programma. Quando l managed module è n esecuzone l runtme utlzza metadat per ottenere nformazon crca le class, membr, eredtà etc. All nterno del managed module metadata sono organzzat n database relazonal che comprendono un certo numero d tabelle. Ogn tabella de metadata contene dat o rferment alle rghe d altre tabelle e non esstono duplcat dello stesso campo poché ogn categora de dat rsede soltanto n una sola tabella del database. I metadat possono essere suddvs n due categore, metadata heaps e metadata tables, entramb sono rappresentat come stream d byte; metadata heaps sono quattro e contengono dat del programma: 21

22 Code Brcks #Strngs: Contene strnghe che ndcano nom de metod, nom de fle etc. #GUID Globally Unque Identfer): Contene tutt gl dentfcator unc. #Blob: Contene dat bnary rfert dall assembly per esempo la segnatura de metod e delle varabl local d un metodo. #UserStrng: Sono present tutte le strnghe defnte all nterno del codce utente. Queste strnghe non sono ma rferte dalle tabelle ma possono essere ndrzzate dal codce ntermedo tramte l struzone ldstr. Fg 2.6: Struttura generale de metadat. Lo stream del metadata table contene un vasto nseme d tabelle puttosto mportant che defnscono l contenuto de.net Assembly l untà d svluppo fondamentale delle applcazon.net, ved paragrafo ). Lo stream può essere d due tp #~ oppure #-; #~ è una versone ottmzzata del metadata dove ogn nseme d records è dsposto n manera ordnata. Vedamo alcune d queste tabelle: AssemblyRef: Include la lsta degl assembly estern da qual questo assembly dpende. 22

23 Code Brcks MethodRef: Include la lsta d tutt metod estern utlzzat. MethodDef: Contene tutt metod defnt nell assembly. Param: Questa tabella contene tutt parametr d tutt metod defnt nella tabella MethodDef. Concentramo la nostra attenzone n partcolare sulla tabella de metod: ogn rga della tabella de metod contene un RVA Relatve Vrtual Address, ) del metodo, alcun flag mplementatv e del metodo ), l nome del metodo, un offset nel #Blob heap alla segnatura del metodo e un ndce all nterno della tabella Param che contene l prmo parametro della funzone. Un RVA è l ndrzzo vrtuale d un oggetto del fle una volta carcato n memora con l ndrzzo base del fle mmagne sottratto da esso, n questo caso ndca l corpo del metodo n codce ntermedo.i flag d mplementazone specfcano se s tratta d un applcazone natva o managed, se è un metodo specale o normale ect. La segnatura del metodo specfca la convenzone d chamata, l tpo resttuto e tp de parametr. Fg 2.7: Relazone tra metadat. In fgura è mostrato un semplce schema d come le metadata tables possano rferrs a vcenda e rferre anche a metadata heaps e alle sequenze d struzon d un metodo n lnguaggo ntermedo. 23

24 Code Brcks Graze anche al fatto che rappresentano tutte le nformazon su dat d un applcazone fornscono uno strumento mportante per facltare l meccansmo della reflecton, nterrogare e rcavare nformazon utl sulla struttura de dat e del corpo de metod durante la fase d esecuzone. Possedere la capactà e gl strument per poter accedere a tutte le sezon degl assembly apre al programmatore nuove possbltà e tecnche programmatve Assembly Il common language runtme non lavora con managed module bens con assembles. L assembly è un untà d svluppo, costtusce blocch delle applcazon.net e logcamente rappresenta un raggruppamento d managed modules e rsorse. Gl assembly sono completamente autodescrttv graze a metadat contenut n esso, nclude anche nformazon sulla versone che permette al common language runtme d usare una versone specfca d un assembly per una partcolare applcazone. Gl assembly possono essere prvat o condvs a seconda che sa permesso a dfferent applcazon d utlzzare lo stesso assembly. Fg 2.8: Combnare managed modules e rsorse n un assembly. 24

25 Code Brcks Ogn assembly che vene costruto può essere o un applcazone eseguble o una lbrera DLL contenente una sere d tp utlzzat da un applcazone. C sono var mod per costrure un assembly, s possono raggruppare gl element costtutv d un assembly managed modules e rsorse ) n un sngolo fle oppure possono essere contenut n pù fle. Fg 2.9: Assembly sngolo e multplo. Ogn assembly contene una collezone d dat che descrvono come gl element nell assembly sono n relazone l uno con l altro, queste nformazon sono contenute nell assembly manfest. Esso contene tutt metadata per specfcare la versone dell assembly, suo requst e tutt metadat necessar a defnre le component e rsolvere rferment alle rsorse e class. Ogn manfest assolve le seguent funzonaltà: Enumera fle che compongono l assembly. Permette gl access a tp e alle rsorse dell assembly al fle che contene la sua dcharazone e mplementazone. Enumera le dpendenze ad altr assembly. Rende gl assembly autodescrttv. 2.3 Reflecton La reflecton è l meccansmo fornto da lnguagg d programmazone per permettere d spezonare la struttura d un componente a tempo d esecuzone puttosto che durante la sua complazone. 25

26 Code Brcks La reflecton è orma dventata una caratterstca essenzale de lnguagg d programmazone. Il sstema d reflecton può essere pù o meno potente a seconda del tpo d lnguaggo d programmazone e dal lvello d complesstà mplementato: l programma può accedere alla rappresentazone del suo stato nterno ed eventualmente modfcarlo a runtme. E nteressante fare un paragone tra lnguagg d programmazone complat e quell nterpretat; tradzonalmente lnguagg complat offrono un supporto alla reflecton lmtato perché dopo la fase d complazone l codce sorgente e tutte le sue astrazon non sono pù dsponbl durante l esecuzone. Per esempo l lnguaggo C++ permette ad un programma d avere nformazon esatte su tp degl oggett durante la sua esecuzone questo purché l supporto contenga codce agguntvo per tenere tracca de tp a runtme. I lnguagg d programmazone nterpretat nvece offrono un rcco supporto alla reflecton poché tengono le esatte nformazon su tp e sul codce sorgente; questo è quello che accade con l common language runtme che utlzzano managed code che contengono metadat e l codce MSIL, mentre per lnguagg complat rsulta puttosto complcato rendere dsponbl element del codce sorgente perché l programma oggetto vene eseguto su d una macchna che generalmente è molto dfferente dalla macchna astratta del lnguaggo sorgente. Il CLR espone l suo sstema d reflecton tramte le class contenuta nel namespace System.Reflecton. La reflecton è usata frequentemente per determnare qual tp sono defnt n un assembly collezone d managed code), le class sono defnte per stanze della classe System.Type. Assembly a = Assembly.LoadFrom "MyExe.exe"); Type [] types = a.gettypes ); foreach Type t n types) Console.WrteLne t.fullname); In questo esempo vengono lett tutt tp defnt n un assembly chamato MyExe.exe e per cascuno vene stampato semplcemente l suo nome. 26

27 Code Brcks Oppure s possono anche ottenere nformazon su metod che un partcolare tpo possede graze al metodo GetMethods) della classe Type che resttusce un array d MethodInfo contenente tutt metod pubblc del Type corrente Cl Fle Reader Le funzonaltà della reflecton generalmente non rendono dsponbl corp de metod nonostante sano parte ntegrante della defnzone del tpo, una delle ragon per cu accade questo è che ne lnguagg d programmazone come l C dopo la fase d complazone del codce sorgente l motore d esecuzone conosce solamente la lsta delle struzon macchna che sono ovvamente sconoscute al lvello del lnguaggo sorgente. Come abbamo vsto precedentemente questo problema vene rsolto dal common language runtme graze all utlzzo de managed module che contengono una sezone dedcata al codce MSIL del metodo. Ispezonando questa partcolare sezone è possble qund ottenere nformazon a runtme sulla struttura del codce d un partcolare metodo. E stata mplementata una lbrera chamata Cl Fle Reader da Antono Csternno durante l suo lavoro [1] che consente d accedere a queste nformazon assocate al metodo n quanto l supporto alla reflecton fornto dal common language runtme non fornva nessuno strumento per recuperare lo stream d struzon ntermede assocate al metodo. I corp de metod possono essere memorzzat n una sezone d sola lettura del portable executable fle, un metodo consste d una ntestazone header) mmedatamente seguta dal corpo del metodo eventualmente seguta da sezon agguntve, generalmente da sezon per la gestone delle eccezon. Header Method Body Addtonal sectons)* Fg 2.10: Struttura d un metodo CIL. 27

28 Code Brcks L accesso al corpo del metodo non è comunque dretto, abbamo vsto nel paragrafo precedente come l untà d svluppo sa l assembly la quale può contenere dvers managed module e d conseguenza la defnzone d molt tp. Il Cl Fle Reader class permette d leggere.net assembles per essere n grado d accedere a corp de metod; utlzzando metadat dell assembly rcerchamo nella tabella TypeDef l tpo a cu appartene l metodo a cu samo nteressat. Dall entry n TypeDef possamo recuperare la lsta de metod della classe che è un segmento contguo d rghe della tabella Method, utlzzando la RVA dell entry del metodo rcercato possamo poszonarc all nzo dello strema delle struzon del suo corpo. Dopo la sezone rguardante l corpo del metodo è possble che v sano altre sezon d dat extra, tpcamente dat per la gestone delle eccezon, queste nformazon sono d fondamentale mportanza per una corretta gestone delle eccezon durante la generazone del codce ntermedo n quanto ndcano qual sono blocch d codce protetto ed gestor del metodo. Il formato bnaro delle nformazon sulla sezone rguardante la gestone delle eccezon [5] è espresso sotto forma d clausole, cascuna delle qual contene camp necessar per dentfcare la porzone d codce protetto, l tpo d gestore e la porzone d codce del gestore dell eccezone. 2.4 Code Values In [1] vene ntrodotto un nuovo tpo d dato, Code, un astrazone per rappresentare l corpo d un metodo eseguto dall ambente d esecuzone; non è altro che una sequenza d struzon assocata ad una segnatura che descrve l numero e l tpo de parametr d nput, ovvero gl argoment del metodo, contene noltre nformazon sul tpo resttuto e sulle varabl local utlzzate. In questo modo vene esteso l supporto alla reflecton fornto dall ambente d esecuzone, le stanze d questo tpo Code sono chamate Code values che rappresentano delle black box contenent l corpo del metodo e l unca operazone fornta per manpolare code values è quella d Bnd che consente d combnare quest valor per crearne d nuov. 28

29 Code Brcks Nel seguente esempo assegnamo alla varable cadd un code value che rappresenta l metodo statco add: publc class Test { publc statc nt addnt, nt j) { return + j;} publc statc vod Manstrng[] args) { Type t = typeoftest); MethodInfo m = t.getmethod"add"); Code cadd = new Codem);} } Graze al supporto della reflecton cerhamo ne metadat l tpo Test, una volta creato questo oggetto Type m rcavo le nformazon sul metodo Add e quando creo un stanza del tpo Code graze alle funzonaltà della classe ClFleReader vado a leggere all nterno dell assembly la porzone d MSIL code relatva a quel partcolare metodo. I code values s possono dstnguere n due categore: Atomc values: ottenut drettamente da metod, come nell esempo. Derved values: ottenut chmando l opeatore bnd su altr valor. In [1] vene ntrodotto un nuovo tpo d dato, Code, un astrazone per rappresentare l corpo d un metodo eseguto dall ambente d esecuzone; non è altro che una sequenza d struzon assocata ad una segnatura che descrve l numero e l tpo de parametr d nput, ovvero gl argoment del metodo, pù l tpo resttuto. Anche se Code Values rappresentano sempre un metodo ess non sono drettamente esegubl, aggungamo un operazone per convertre un code value cadd n un oggetto che ha un metodo la cu segnatura è la stessa d cadd; per fare questo generamo un delegate a partre da un Code Value. Rtornando all esemp precedente nel metodo Man dobbamo aggungere le seguent struzon: Sum s = cadd.makedelegatetypeofsum)) as Sum; Console.WrteLne"{0} == {1}", add1, 1), s1, 1)); 29

30 Code Brcks Dove Sum non è altro che un delegate: delegate nt Sumnt x, nt y); Il Code Value è trasformato n un delegate d tpo Sum che è un oggetto che espone un metodo Invoke con la segnatura nt x nt nt mplctamente chamato quando gl argoment sono assegnat a s. 2.5 Bndng L operazone d Bnd è la sola operazone dsponble per poter manpolare Code values. Bnd permette d fssare parametr d Code values esstent per generare nuov Code values specalzzat per que parametr. A cascun Code value vene assocata una segnatura che rappresenta l nterfacca del frammento d codce a cu è assocato; l operazone d Bnd agsce anche su questa segnatura fssando gl argoment d nput con valor o altr Code values o lascandol nalterat per poter essere utlzzat a loro volta come argoment anche per l codce generato. E possble ndcare che un argomento d nput non è legato a altr argoment d nput utlzzando un valore specale durante l operazone d Bnd ndcato da Code.Free, n questo modo lasceremo la varable aperta. Come esempo consderamo l Code Value cadd vsto nella sezone precedente che rappresenta l metodo add l quale effettua l addzone de suo due argoment nter e applchamo la seguente trasformazone: Code cadd1 = cadd.bnd1, Code.Free); In manera ntutva possamo concludere che l nuovo Code value appena generato esegue la seguente somma: 1 + x n quanto l operazone d Bnd ha legato soltanto l prmo argomento del code value cadd lascando lbero l secondo argomento. statc nt cadd1nt j) { return 1 + j;} 30

31 Code Brcks Questa trasformazone è andata a buon fne poché l tpo d ogn argomento del code value è compatble con l tpo del corrspondente parametro. Nelle tabelle seguent vene mostrato l codce ntermedo relatvo al code value rappresentante l metodo add e quello relatvo al nuovo code value appena creato. Notamo che nel codce generato vene carcato nello stack un solo argomento, l argomento 0 mentre l altro operando è carcato come costante. IL_0000: nop IL_0001: ldarg.0 IL_0002: ldarg.1 IL_0003: add IL_0004: stloc.0 IL_0005: ldloc.0 IL_0006: ret IL_0000: nop IL_0001: ldc.4.1 IL_0002: ldarg.0 IL_0003: add IL_0004: stloc.0 IL_0005: ldloc.0 IL_0006: ret Msl code d cadd Msl code d cadd1 La trasformazone d codce n questo semplce caso ha rguardato soltanto una struzone del codce ntermedo trasformando una struzone per carcare un argomento n una per carcare una costante ma ha agto anche sulla segnatura elmnandone un argomento. Il tpo d trasformazone appena vsta è quella pù semplce che permette d legare gl argoment del metodo con de valor purchè l suo tpo sa compatble con l tpo del parametro corrspondente. Il Bndng values è una caratterstca dell operazone Bnd che non consente d combnare code values n nuov code values, ma sempre con l operazone d Bnd è possble combnare l codce n due mod dfferent: Fssando parametr d nput d tpo Code values con altr. Usando Code combnators, metod che prendono come nput uno o pù tp delegate. In entramb cas la semantca dell operazone d composzone è faclmente comprensble dal programmatore senza pensare n termn dell operazone eseguta a lvello del lnguaggo ntermedo. 31

32 Code Brcks Fg 2.5: Trasformazone percepta e reale dell operazone Bnd. Questo è semplce poché l programmatore utlzzando Code Type defnt nel lnguaggo che sta utlzzando percepsce la combnazone d codce che vuole effettuare come una trasformazone d codce a lvello d codce sorgente puttosto che al reale lvello d trasformazone e coè al lvello d lnguaggo ntermedo Bndng senza Code Combnators Questo caso s presenta quando un argomento d nput d un Code Value vene legato con un altro Code Value, purchè l tpo resttuto da un metodo rappresentato dal Code Value che stamo legando ad un argomento d nput sa compatble con l argomento d nput stesso. Partendo dal metodo che esegue la somma d due nter provamo a creare un Code Value che esegue la somma d tre nter, l dea è quella d legare un argomento d nput del code value cadd con lo stesso cadd: Code cadd3 = cadd.bnd Code.Free, cadd); In questo modo se un code value aperto è utlzzato per essere legato con un argomento d nput suo parametr sono portat nella segnatura del code value che è stato creato. 32

33 Code Brcks La segnatura del code value cadd3 conterrà tre argoment l prmo è lascato aperto durante l operazone d Bnd mentre gl altr due sono ottenut dalla segnatura del code value cadd che vene legato con l secondo argomento del code value cadd al quale s applca l operazone d bndng. Il rsultato d questa operazone è un code value equvalente al seguente metodo: publc statc nt addnt, nt j, nt k) { nt l = j + k; return + l;} Il codce equvalente mette n evdenza come l codce assocato al code value utlzzato come parametro dell operazone d Bnd venga messo prma rspetto al codce assocato al code value sul quale s effettua l bndng. Inoltre l rsultato è memorzzato n una varable locale che è utlzzata al posto dell argomento d nput al quale è stato legato l corrspondente code value. Vene eseguta la somma del secondo e terzo argomento del metodo e successvamente l prmo argomento vene sommato al rsultato della precedente addzone. Questo s può faclmente notare anche analzzando l codce ntermedo generato: IL_0000: nop IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: add IL_0004: stloc.1 IL_0005: ldloc.1 IL_0006: stloc.2 IL_0007: nop IL_0008: ldarg.0 IL_0009: ldloc.2 IL_000a: add IL_000b: stloc.0 IL_000c: ldloc.0 IL_000d: ret Sullo stack vengono prma carcat gl argoment 1 e 2 corrspondent alle varabl j e k e l rsultato della somma de due argoment memorzzato n una varable locale, nfne vene carcato l argomento 0 ) e la locazone dove s è memorzzato l rsultato della somma precedente, a questo punto la seconda somma vene eseguta. 33

34 Code Brcks Bndng con Code Combnators Il secondo modo d combnare l codce permette d superare lmt mpost dal metodo precedente per la generazone del codce. Il metodo precedente c permetteva d assocare l valore resttuto da un code value all argomento d un altro e l unco modo possble per generare l codce è quello d prefssare l codce del code value che leghamo ad un argomento d nput rspetto al codce del code value sul quale applchamo l operazone d composzone. Graze a questa alternatva per la composzone d codce possamo nserre l codce d un code value all nterno del codce d un altro code value semplcemente utlzzando un partcolare tpo d argomento d nput che rappresenta una funzone, questo è possble utlzzando delegate. Consderamo l seguente metodo: delegate nt I1nt a); delegate nt I2nt a, nt b); publc statc nt add_posnt a, nt b, nt c,i1 fun1,i2 fun2) { nt k=0; nt temp1 = fun1a); nt temp2 = fun1b); fornt =0; <c; ++) k += fun2temp1, temp2); } return k; La segnatura del metodo add_pos contene cnque argoment, tre nter e due argoment d tpo funzone, la prma funzone è unara mentre la seconda bnara e entrambe resttuscono un valore ntero. Il metodo applca la funzone unara al prmo e al secondo metodo mentre all nterno d un cclo for vene applcata la seconda funzone c volte. Quando l delegate è legato con un code value ogn nvocazone dell argomento è sosttuto con l corpo del code value, noltre questo argomento dovrà essere soltanto nvocato e non può essere utlzzato n altre manere. 34

35 Code Brcks Consderamo la seguente composzone: MethodInfo k = t.getmethod"add_pos"); MethodInfo r = t.getmethod"abs"); Code cadd_pos = new Codek); Code cabs = new Coder); Code crs=cadd_pos.bndcode.free,code.free,code.free, cabs, cadd); Dove l metodo abs calcola l valore assoluto d un valore ntero: publc statc nt absnt x) { f x < 0) return -x; else return x; } Questa operazone d bndng consente d creare un metodo a partre dal code value cadd_pos lascando apert prm tre argoment e assocando al delegate fun1 l code value per l calcolo del valore assoluto e al delegate fun2 l code value che effettua la somma d due nter. In questo modo tutte le occorrenze dell argomento fun1 e fun2 vene sosttuto nel code value generato con l corpo del metodo relatvo al code value assocato. Il rsultato è un code value equvalente al seguente metodo: publc statc nt crsnt a, nt b, nt c) { nt k=0; f a < 0) temp1 = -a; else temp1 = a; f b < 0) temp2 = -b; else temp2 = b; fornt =0; <c; ++) k += temp1 + temp2; } return k; 35

36 Code Brcks La segnatura del metodo contene tre argoment a,b,c) poché durante l operazone d bndng abbamo legato prm tre argoment d nput con l valore Code.Free. Mentre se avessmo legato per esempo l secondo argomento con un valore oppure con un altro code value s sarebbe applcato rspettvamente l Bndng value o l Bndng senza code combnator. Ved appendce paragrafo 6.1 per la consultazone de metod complat n lnguaggo ntermedo). 2.6 CodeBrcks La lbrera CodeBrcks è esposta a lnguagg d programmazone che la utlzzano come una sere d class, l nucleo d CodeBrcks è costuto dalla classe Code attorno alla quale la lbrera è stata svluppata. Altra classe che goca un ruolo fondamentale per l mplementazone d CodeBrcks è data dalla classe ClFleReader che permette d leggere le struzon n lnguaggo ntermedo del corpo del metodo. L untà d svluppo del codce è l assembly l quale contene la defnzone d un certo un numero d tp, per questo motvo è stato necessaro defnre un reader d.net assembly. CodeBrcks può essere utlzzato per generare codce a runtme, questo processo d generazone è abbastanza veloce poché s basa su un semplce processo d composzone d codce al lvello d codce ntermedo ordnando lste d struzon. Questo tpo d generazone del codce a lvello ntermedo favorsce oltretutto la portabltà e l ottmzzazone del codce n quanto rsulterà ndpendente dall archtettura su cu sarà eseguto. Ulteror camp d applcazone d CodeBrcks sono dscuss n [1] captolo 6 come supporto per meta-programmazone e programmazone mult-stage. 36

37 37

38 La gestone delle eccezon ha lo scopo d facltare l uso d meccansm conson per gestre stuazon erronee o eccezonal che s verfcano ne programm; può essere utlzzata per passare nformazon d errore che avvengono all nterno d pezz d codce verso suo utent e rspondere n manera selettva a quegl error. Un possble ruolo della gestone delle eccezon è quella d permettere al programma d contnuare la sua normale esecuzone prevenendo gl error ntern e consentendo una precsa localzzazone della condzone erronea. Il captolo s apre descrvendo l modello d gestone delle eccezon del Common Language Runtme e l supporto fornto a lvello d codce ntermedo. Una volta descrtta la sntass e la semantca de comand fornt per la gestone delle eccezon dal lnguaggo C# con l quale soluzone adottata per estendere CodeBrcks. sono stat scrtt nostr esemp descrvamo la 38

39 Gestone delle eccezon 3.1 Introduzone Un eccezone è una condzone d errore o un comportamento mprevsto verfcatos durante l esecuzone d un programma. Le eccezon vengono generate per dvers motv, per esempo esse vengono generate n caso d error nel codce dell applcazone oppure se qualche rsorsa del sstema operatvo non è dsponble. Vengono generate eccezon anche quando l Common Language Runtme rscontra delle stuazon mprevste. Nel.Net Framework le eccezon sono oggett che eredtano dalla classe Excepton, esse vengono generate nelle aree d codce dell applcazone n cu s è verfcato un problema e contengono nformazon rguardant l errore. Ogn qualvolta che una eccezone vene generata essa è passata a lvell superor dello stack fno a quando vene gestta dall applcazone o s arresta l programma. 3.2 Modaltà d gestone Il Common Language Runtme fornsce un modello d gestone delle eccezon che è basato sulla rappresentazone delle eccezon come oggett e blocch d codce protett. La separazone del codce normale con l codce per la gestone delle eccezon avvene tramte blocch try e catch rspettvamente, vedremo noltre che sono present dfferent blocch per la gestone delle eccezon. C possono essere uno o pù blocch per la gestone delle eccezon cascuno de qual è progettato per gestre un partcolare tpo d eccezone o un blocco per la gestone d una pù specfca eccezone puttosto d un altro blocco. Nel runtme vene creata una tabella per cascun eseguble che contene nformazon sulle eccezon, questa tabella vene creata passo passo a partre dalle tabelle delle eccezon assocata a var metodo. Ad ogn metodo dell applcazone nfatt è assocata a sua volta una tabella delle eccezon contenente nformazon sulla gestone delle eccezon, cascuna entry d questa tabella descrve un blocco d codce protetto e tutt gl eventual blocch d gestone delle eccezon. 39

40 Gestone delle eccezon Questa tabella delle eccezon è molto effcente e fno a quando non s presenta una eccezone non compromette n nessun modo le prestazon sa n termn d tempo del processore sa n termn d occupazone d memora. Soltanto quando s verfca una eccezone queste rsorse vengono utlzzate con un pccolo mpatto sulle prestazon dell applcazone. La tabella delle eccezon rappresenta quattro tp d gestor delle eccezon per blocch protett supportat dal Common Language Runtme [5]: Gestore fnally: vene eseguto ogn volta che l elaborazone del blocco s nterrompe sa per un normale flusso d controllo o n seguto ad una eccezone non gestta. Gestore fault: vene eseguto se s verfca un eccezone ma non esce normalmente, propaga a sua volta un eccezone. Gestore catch: gestore fltrato n base al tpo che gestsce tutte le eccezon d una classe specfcata o delle relatve class dervate. Gestore flter: gestore fltrato dall utente che esegue codce specfcato da esso per determnare se deve essere gestta dal gestore assocato o passato al blocco protetto successvo. Ogn lnguaggo d programmazone mplementa quest gestor secondo le loro specfche, per esempo n Vsual Basc 2005 vene mplementato l gestore flter medante un confronto tra varabl mentre n C# sa l gestore flter che quello fault non sono mplementat. Quando s verfca un eccezone l runtme come prma cosa effettua una rcerca nella tabella delle eccezon assocata al metodo corrente, scopo della rcerca è trovare l prmo blocco protetto che protegge una regone che nclude l struzone n corso d esecuzone che ha generato l eccezone e che contenga un gestore d eccezon d tpo catch oppure un flter che sa n grado d gestre tale eccezone. Vene creato un oggetto Excepton che descrve l eccezone, noltre vengono esegute tutte le struzon fnally o fault present tra l struzone n cu s è verfcata l eccezone e l struzone che gestsce tale struzone. 40

41 Gestone delle eccezon L ordne de gestor è mportante, l gestore delle eccezon pù nterno vene valutato per prmo. Se nvece la rcerca d tale blocco all nterno del metodo corrente fallsce la rcerca contnua n cascun chamante del metodo corrente rpercorrendo qund var lvell dello stack. Se la rcerca ha esto negatvo anche tra tutt chamant allora l gestore delle eccezon d default provvede a gestre l eccezone e a termnare l applcazone Clausole All nterno del PE fle nella sezone per la gestone delle eccezon assocato ad un metodo gestor delle eccezon vengono rappresentat attraverso le excepton clauses [5]. Queste clausole contengono nformazon per dentfcare all nterno del corpo d un metodo le porzon d struzon ntermede che s comportano da gestor e per ndvduare a quale blocco d protezone sono assocat: Flag TryOffset TryLength HandlerOffset HandlerLength ClassToken Identfca l tpo d gestore dell eccezone. Offset n byte del blocco try dall nzo del corpo del metodo. Lunghezza n byte del blocco try. Offset n byte del gestore per questo blocco try dall nzo del corpo del metodo. Lunghezza n byte del gestore. Metadata token per un gestore catch. FlterOffset Offset nel corpo del metodo per un gestore flter. Tabella 3.1: Rappresentazone delle excepton clauses all nterno del excepton handler secton Supporto CIL per le eccezon 41

42 Gestone delle eccezon Il Common Intermedate Language ha dverse struzon specal [5] per: Lancare throw) e rlancare rethrow) un eccezone defnta dall utente. Uscre da un blocco protetto leave) e esegure la clausola fnally approprata senza lancare un eccezone. Leave è utlzzata anche per uscre da una clausola catch. Termnare una clausola flter endflter) e restture un valore che ndca se gestre l eccezone. Termnare una clausola fnally endfnally) e contnuare a segure lo stack. 3.3 Sntass e Semantca Vedamo n questo paragrafo la sntass e la semantca de comand fornt dal lnguaggo C# per la gestone delle eccezon. C lmtamo a trattare gestor d tpo try, catch e fnally poché sono gl unc mplementat nel lnguaggo C# utlzzato per la produzone degl esemp Throw statement Sntass ThrowStatement: throw Expresson opt ; Semantca La produzone ThrowStatement: throw Expresson; è valutata nel seguente modo: 1. Valuta Expresson. 2. GetValueResult1)). 3. Resttusc throw, Result2)). 42

43 Gestone delle eccezon Un throw statement con un espressone lanca l valore prodotto valutando l espressone. L espressone deve denotare un valore d tpo System.Excepton o che derv da essa. Se la valutazone dell espressone produce valore null vene lancato System.NullReferenceExcepton. Un throw statement senza espressone può essere utlzzato soltanto all nterno d un blocco catch per rlancare l eccezone Try statement Sntass TryStatement: try Block catch-clauses try Block fnally-clause try Block catch-clauses fnally-clause catch-clauses: specfc-catch-clauses general-catch- clause opt specfc-catch- clauses general-catch-clause specfc-catch-clauses: specfc-catch-clause specfc-catch-clauses specfc-catch-clause: catch class-type general-catch-clause: catch block fnally-clause: fnally block opt specfc-catch-clause dentfer opt ) block C sono tre possbl forme d statements try: Un blocco try seguto da uno o pù blocch catch. Un blocco try seguto da un fnally block. 43

44 Gestone delle eccezon Un blocco try seguto da uno o pù blocch catch seguto da un blocco fnally. Semantca La produzone TryStatement: try Block catch-clauses; è valutata nel seguente modo: 1. Valuta Block. 2. Se Result1).type non è throw resttusc Result1). 3. Valuta catch-clauses con parametro Result1). 4. Resttusc Result3). La produzone TryStatement: try Block fnally-clause; è valutata nel seguente modo: 1. Valuta Block. 2. Valuta fnally-clause. 3. Resttusc Result2). La produzone TryStatement: try Block catch-caluses fnally-clause; è valutata nel seguente modo: 1. Valuta Block. 2. Se Result1).type non è throw va al passo Valuta catch-clauses con parametro Result1). 4. Se Result4).type è throw resttusc Result4). 5. Valuta fnally-clause. 6. Resttusc Result6). 44

45 Gestone delle eccezon La valutazone d catch-clauses come spegato nella parte rguardante la modaltà con la quale vengono gestte le eccezon consste nel rcercare un gestore che sa n grado d gestre la relatva eccezone lancata, qund questo caso s rduce nella valutaone d un general-catch-clause statement oppure d un specfc-catch-clause. La produzone general-catch-clause: catch Block è valutata nel seguente modo: 1. Valuta Block. 2. Resttusc Result1). La produzone specfc-catch-clause: catch class-type dentfer ) Block è valutata nel seguente modo: 1. Defnamo C l parametro che è stato passato a questa produzone. 2. Creamo un nuovo oggetto new Object). 3. Creamo una property nell oggetto Result2). Il nome è Identfer, valore è C.value e gl attrbut sono { DontDelete }. 4. Aggung Result2) nello scope. 5. Valuta Block. 6. Rmuov Result2) dallo scope. 7. Resttusc Result5). Quando una clausola catch specfca un class-type l tpo deve essere System.Excepton oppure un tpo che derva da esso. Se una clausola catch specfca sa l class-type che dentfer allora vene creata una varable eccezone del dato nome e tpo. La varable eccezone non è altro che una varable locale che estende lo scope del blocco catch e durante l esecuzone d tale blocco la varable rappresenta l eccezone correntemente gestta. La produzone fnally-clause: fnally Block è valutata nello stesso modo d una general-catch-clause. 45

Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne

Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne Metod e Modell per l Ottmzzazone Combnatora Progetto: Metodo d soluzone basato su generazone d colonne Lug De Govann Vene presentato un modello alternatvo per l problema della turnazone delle farmace che

Dettagli

Algebra 2. 6 4. Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i.

Algebra 2. 6 4. Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i. Testo Fac-smle 2 Durata prova: 2 ore 8 1. Un gruppo G s dce semplce se suo unc sottogrupp normal sono 1 e G stesso. Sa G un gruppo d ordne pq con p e q numer prm tal che p < q. (a) Il gruppo G può essere

Dettagli

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 -

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 - PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE (Metodo delle Osservazon Indrette) - - SPECIFICHE DI CALCOLO Procedura software per la compensazone d una rete d lvellazone collegata

Dettagli

Corso di Architettura (Prof. Scarano) 25/03/2002

Corso di Architettura (Prof. Scarano) 25/03/2002 Corso d rchtettura (Prof. Scarano) // Un quadro della stuazone Lezone Logca Dgtale (): Crcut combnator Vttoro Scarano rchtettura Corso d Lauren Informatca Unverstà degl Stud d Salerno Input/Output Regstr

Dettagli

Hansard OnLine. Unit Fund Centre Guida

Hansard OnLine. Unit Fund Centre Guida Hansard OnLne Unt Fund Centre Guda Sommaro Pagna Introduzone al Unt Fund Centre (UFC) 3 Uso de fltr per la selezone de fond 4-5 Lavorare con rsultat del fltro 6 Lavorare con rsultat del fltro - Prezz 7

Dettagli

{ 1, 2,..., n} Elementi di teoria dei giochi. Giovanni Di Bartolomeo Università degli Studi di Teramo

{ 1, 2,..., n} Elementi di teoria dei giochi. Giovanni Di Bartolomeo Università degli Studi di Teramo Element d teora de goch Govann D Bartolomeo Unverstà degl Stud d Teramo 1. Descrzone d un goco Un generco goco, Γ, che s svolge n un unco perodo, può essere descrtto da una Γ= NSP,,. Ess sono: trpla d

Dettagli

PARENTELA e CONSANGUINEITÀ di Dario Ravarro

PARENTELA e CONSANGUINEITÀ di Dario Ravarro Introduzone PARENTELA e CONSANGUINEITÀ d Daro Ravarro 1 gennao 2010 Lo studo della genealoga d un ndvduo è necessaro al fne d valutare la consangunetà dell ndvduo stesso e la sua parentela con altr ndvdu

Dettagli

Introduzione al Machine Learning

Introduzione al Machine Learning Introduzone al Machne Learnng Note dal corso d Machne Learnng Corso d Laurea Magstrale n Informatca aa 2010-2011 Prof Gorgo Gambos Unverstà degl Stud d Roma Tor Vergata 2 Queste note dervano da una selezone

Dettagli

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni:

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni: Anals ammortzzata Anals ammortzzata S consdera l tempo rchesto per esegure, nel caso pessmo, una ntera sequenza d operazon. Se le operazon costose sono relatvamente meno frequent allora l costo rchesto

Dettagli

Aritmetica e architetture

Aritmetica e architetture Unverstà degl stud d Parma Dpartmento d Ingegnera dell Informazone Poltecnco d Mlano Artmetca e archtetture Sommator Rpple Carry e CLA Bozza da completare del 7 nov 03 La rappresentazone de numer Rappresentazone

Dettagli

InfoCenter Product A PLM Application

InfoCenter Product A PLM Application genes d un fra o Gestone de crcolazone dell'nformazone sa crcoscrtta entro Pdetermnat ambt settoral. L'ntegrazone de sstem e de odpartment azendal rchede nuove modaltà operatve, nuove t competenze e nuov

Dettagli

CAPITOLO IV CENNI SULLE MACCHINE SEQUENZIALI

CAPITOLO IV CENNI SULLE MACCHINE SEQUENZIALI Cenn sulle macchne seuenzal CAPITOLO IV CENNI SULLE MACCHINE SEQUENZIALI 4.) La macchna seuenzale. Una macchna seuenzale o macchna a stat fnt M e' un automatsmo deale a n ngress e m uscte defnto da: )

Dettagli

Trigger di Schmitt. e +V t

Trigger di Schmitt. e +V t CORSO DI LABORATORIO DI OTTICA ED ELETTRONICA Scopo dell esperenza è valutare l ampezza dell steres d un trgger d Schmtt al varare della frequenza e dell ampezza del segnale d ngresso e confrontarla con

Dettagli

* * * Nota inerente il calcolo della concentrazione rappresentativa della sorgente. Aprile 2006 RL/SUO-TEC 166/2006 1

* * * Nota inerente il calcolo della concentrazione rappresentativa della sorgente. Aprile 2006 RL/SUO-TEC 166/2006 1 APAT Agenza per la Protezone dell Ambente e per Servz Tecnc Dpartmento Dfesa del Suolo / Servzo Geologco D Itala Servzo Tecnologe del sto e St Contamnat * * * Nota nerente l calcolo della concentrazone

Dettagli

Manuale di istruzioni Manual de Instruções Millimar C1208 /C 1216

Manuale di istruzioni Manual de Instruções Millimar C1208 /C 1216 Manuale d struzon Manual de Instruções Mllmar C1208 /C 1216 Mahr GmbH Carl-Mahr-Str. 1 D-37073 Göttngen Telefon +49 551 7073-0 Fax +49 551 Cod. ord. Ultmo aggornamento Versone 3757474 15.02.2007 Valda

Dettagli

Condensatori e resistenze

Condensatori e resistenze Condensator e resstenze Lucano attaa Versone del 22 febbrao 2007 Indce In questa nota presento uno schema replogatvo relatvo a condensator e alle resstenze, con partcolare rguardo a collegament n sere

Dettagli

I generatori dipendenti o pilotati e gli amplificatori operazionali

I generatori dipendenti o pilotati e gli amplificatori operazionali 108 Lucano De Menna Corso d Elettrotecnca I generator dpendent o plotat e gl amplfcator operazonal Abbamo pù volte rcordato che generator fn ora ntrodott, d tensone e d corrente, vengono dett deal per

Dettagli

Variabili statistiche - Sommario

Variabili statistiche - Sommario Varabl statstche - Sommaro Defnzon prelmnar Statstca descrttva Msure della tendenza centrale e della dspersone d un campone Introduzone La varable statstca rappresenta rsultat d un anals effettuata su

Dettagli

Invio fascicolo di Bilancio

Invio fascicolo di Bilancio HELP DESK Nota Salvatempo 0052 TUTTOBILANCIO Invo fasccolo d Blanco Quando serve D seguto sono elencat passagg da segure per predsporre, frmare e scarcare una pratca d Blanco (Modello B) per la presentazone

Dettagli

Capitolo 3 Covarianza, correlazione, bestfit lineari e non lineari

Capitolo 3 Covarianza, correlazione, bestfit lineari e non lineari Captolo 3 Covaranza, correlazone, bestft lnear e non lnear ) Covaranza e correlazone Ad un problema s assoca spesso pù d una varable quanttatva (es.: d una persona possamo determnare peso e altezza, oppure

Dettagli

ESERCIZIO 4.1 Si consideri una popolazione consistente delle quattro misurazioni 0, 3, 12 e 20 descritta dalla seguente distribuzione di probabilità:

ESERCIZIO 4.1 Si consideri una popolazione consistente delle quattro misurazioni 0, 3, 12 e 20 descritta dalla seguente distribuzione di probabilità: ESERCIZIO. S consder una popolazone consstente delle quattro msurazon,, e descrtta dalla seguente dstrbuzone d probabltà: X P(X) ¼ ¼ ¼ ¼ S estrae casualmente usando uno schema d camponamento senza rpetzone

Dettagli

B - ESERCIZI: IP e TCP:

B - ESERCIZI: IP e TCP: Unverstà d Bergamo Dpartmento d Ingegnera dell Informazone e Metod Matematc B - ESERCIZI: IP e TCP: F. Martgnon Archtetture e Protocoll per Internet Eserczo b. S consder l collegamento n fgura A C =8 kbt/s

Dettagli

STATISTICA DESCRITTIVA - SCHEDA N. 5 REGRESSIONE LINEARE

STATISTICA DESCRITTIVA - SCHEDA N. 5 REGRESSIONE LINEARE Matematca e statstca: da dat a modell alle scelte www.dma.unge/pls_statstca Responsabl scentfc M.P. Rogantn e E. Sasso (Dpartmento d Matematca Unverstà d Genova) STATISTICA DESCRITTIVA - SCHEDA N. REGRESSIONE

Dettagli

FORMAZIONE ALPHAITALIA

FORMAZIONE ALPHAITALIA ALPHAITALIA PAG. 1 DI 13 FORMAZIONE ALPHAITALIA IL SISTEMA DI GESTIONE PER LA QUALITA Quadro ntroduttvo ALPHAITALIA PAG. 2 DI 13 1. DEFINIZIONI QUALITA Grado n cu un nseme d caratterstche ntrnseche soddsfa

Dettagli

Allegato A. Modello per la stima della produzione di una discarica gestita a bioreattore

Allegato A. Modello per la stima della produzione di una discarica gestita a bioreattore Modello per la stma della produzone d una dscarca gestta a boreattore 1 Produzone d Bogas Nella letteratura tecnca sono stat propost dvers modell per stmare la produzone d bogas sulla base della qualtà

Dettagli

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Controllo e schedulng delle operazon Paolo Dett Dpartmento d Ingegnera dell Informazone Unverstà d Sena Organzzazone della produzone PRODOTTO che cosa ch ORGANIZZAZIONE PROCESSO come FLUSSO DI PRODUZIONE

Dettagli

Soluzioni per lo scarico dati da tachigrafo innovativi e facili da usare. http://dtco.it

Soluzioni per lo scarico dati da tachigrafo innovativi e facili da usare. http://dtco.it Soluzon per lo scarco dat da tachgrafo nnovatv e facl da usare http://dtco.t Downloadkey II Moble Card Reader Card Reader Downloadtermnal DLD Short Range and DLD Wde Range Qual soluzon ho a dsposzone per

Dettagli

Newsletter "Lean Production" Autore: Dott. Silvio Marzo

Newsletter Lean Production Autore: Dott. Silvio Marzo Il concetto d "Produzone Snella" (Lean Producton) s sta rapdamente mponendo come uno degl strument pù modern ed effcac per garantre alle azende la flessbltà e la compettvtà che l moderno mercato rchede.

Dettagli

La tua area riservata Organizzazione Semplicità Efficienza

La tua area riservata Organizzazione Semplicità Efficienza Rev. 07/2012 La tua area rservata Organzzazone Semplctà Effcenza www.vstos.t La tua area rservata 1 MyVstos MyVstos è la pattaforma nformatca rservata a rvendtor Vstos che consente d verfcare la dsponbltà

Dettagli

Code a priorità (Heap) Definizione Heapify (mantenimento coda a priorità) Costruire un Heap Insert, Maximum e Extract-Max

Code a priorità (Heap) Definizione Heapify (mantenimento coda a priorità) Costruire un Heap Insert, Maximum e Extract-Max Code a prortà (Heap) Defnzone Heapfy (mantenmento coda a prortà) Costrure un Heap Insert, Maxmum e Extract-Max Coda a prortà (Heap) Una coda a prortà può essere rappresentato da un albero bnaro completo.

Dettagli

Corso di laurea in Ingegneria Meccatronica. DINAMICI CA - 04 ModiStabilita

Corso di laurea in Ingegneria Meccatronica. DINAMICI CA - 04 ModiStabilita Automaton Robotcs and System CONTROL Unverstà degl Stud d Modena e Reggo Emla Corso d laurea n Ingegnera Meccatronca MODI E STABILITA DEI SISTEMI DINAMICI CA - 04 ModStablta Cesare Fantuzz (cesare.fantuzz@unmore.t)

Dettagli

Macchine. 5 Esercitazione 5

Macchine. 5 Esercitazione 5 ESERCITAZIONE 5 Lavoro nterno d una turbomacchna. Il lavoro nterno massco d una turbomacchna può essere determnato not trangol d veloctà che s realzzano all'ngresso e all'uscta della macchna stessa. Infatt

Dettagli

Dati di tipo video. Indicizzazione e ricerca video

Dati di tipo video. Indicizzazione e ricerca video Corso d Laurea n Informatca Applcata Unverstà d Urbno Dat d tpo vdeo I dat vdeo sono generalmente rcch dal punto d vsta nformatvo. Sottottol (testo) Colonna sonora (audo parlato e/o musca) Frame (mmagn

Dettagli

Calibrazione. Lo strumento idealizzato

Calibrazione. Lo strumento idealizzato Calbrazone Come possamo fdarc d uno strumento? Abbamo bsogno d dentfcare l suo funzonamento n condzon controllate. L dentfcazone deve essere razonalmente organzzata e condvsa n termn procedural: s tratta

Dettagli

CHE COS E LA COMPLESSITA

CHE COS E LA COMPLESSITA CHE COS E LA COMPLESSITA E un termne d moda, ambguo perché rcco d sgnfcat nterdscplnar, a volte mpropramente usato sa n campo scentfco, che nel lnguaggo colloquale, gornalstco e d costume Inter centr d

Dettagli

Ettore Limoli. Lezioni di Matematica Prof. Ettore Limoli. Sommario. Calcoli di regressione

Ettore Limoli. Lezioni di Matematica Prof. Ettore Limoli. Sommario. Calcoli di regressione Sto Personale d Ettore Lmol Lezon d Matematca Prof. Ettore Lmol Sommaro Calcol d regressone... 1 Retta d regressone con Ecel... Uso della funzone d calcolo della tendenza... 4 Uso della funzone d regressone

Dettagli

Apprendimento Automatico e IR: introduzione al Machine Learning

Apprendimento Automatico e IR: introduzione al Machine Learning Apprendmento Automatco e IR: ntroduzone al Machne Learnng MGRI a.a. 2007/8 A. Moschtt, R. Basl Dpartmento d Informatca Sstem e produzone Unverstà d Roma Tor Vergata mal: {moschtt,basl}@nfo.unroma2.t 1

Dettagli

Il modello markoviano per la rappresentazione del Sistema Bonus Malus. Prof. Cerchiara Rocco Roberto. Materiale e Riferimenti

Il modello markoviano per la rappresentazione del Sistema Bonus Malus. Prof. Cerchiara Rocco Roberto. Materiale e Riferimenti Il modello marovano per la rappresentazone del Sstema Bonus Malus rof. Cercara Rocco Roberto Materale e Rferment. Lucd dstrbut n aula. Lemare 995 (pag.6- e pag. 74-78 3. Galatoto G. 4 (tt del VI Congresso

Dettagli

CONFORMITA DEL PROGETTO

CONFORMITA DEL PROGETTO AMGA - Azenda Multservz S.p.A. - Udne pag. 1 d 6 INDICE 1. PREMESSA...2 2. CALCOLI IDRAULICI...3 3. CONFORMITA DEL PROGETTO...6 R_Idr_Industre_1 Str.doc AMGA - Azenda Multservz S.p.A. - Udne pag. 2 d 6

Dettagli

La contabilità analitica nelle aziende agrarie

La contabilità analitica nelle aziende agrarie 2 La contabltà analtca nelle azende agrare Estmo rurale ed element d contabltà (analtca) S. Menghn Corso d Laurea n Scenze e tecnologe agrare Percorso Economa ed Estmo Contabltà generale e cont. ndustrale

Dettagli

Analisi di mercurio in matrici solide mediante spettrometria di assorbimento atomico a vapori freddi

Analisi di mercurio in matrici solide mediante spettrometria di assorbimento atomico a vapori freddi ESEMPIO N. Anals d mercuro n matrc solde medante spettrometra d assorbmento atomco a vapor fredd 0 Introduzone La determnazone del mercuro n matrc solde è effettuata medante trattamento termco del campone

Dettagli

L AUTORITÀ PER L ENERGIA ELETTRICA E IL GAS

L AUTORITÀ PER L ENERGIA ELETTRICA E IL GAS Delberazone 20 ottobre 2004 Approvazone delle condzon general d accesso e d erogazone del servzo d rgassfcazone d gnl predsposte dalla socetà Gnl Itala Spa (delberazone n. 184/04) L AUTORITÀ PER L ENERGIA

Dettagli

TITOLO: L INCERTEZZA DI TARATURA DELLE MACCHINE PROVA MATERIALI (MPM)

TITOLO: L INCERTEZZA DI TARATURA DELLE MACCHINE PROVA MATERIALI (MPM) Identfcazone: SIT/Tec-012/05 Revsone: 0 Data 2005-06-06 Pagna 1 d 7 Annotazon: Il presente documento fornsce comment e lnee guda sull applcazone della ISO 7500-1 COPIA CONTROLLATA N CONSEGNATA A: COPIA

Dettagli

Premessa essa sulle soluzioni

Premessa essa sulle soluzioni Appunt d Chmca La composzone delle soluzon Premessa sulle soluzon...1 Concentrazone...2 Frazone molare...2 Molartà...3 Normaltà...4 Molaltà...4 Percentuale n peso...4 Percentuale n volume...5 Massa per

Dettagli

Programmazione e Controllo della Produzione. Analisi dei flussi

Programmazione e Controllo della Produzione. Analisi dei flussi Programmazone e Controllo della Produzone Anals de fluss Clent SERVIZIO Uscta Quanto al massmo produce l mo sstema produttvo? Quanto al massmo produce la ma macchna? Lo rsolvo con la smulazone? Sarebbe

Dettagli

La retroazione negli amplificatori

La retroazione negli amplificatori La retroazone negl amplfcator P etroazonare un amplfcatore () sgnfca sottrarre (o sommare) al segnale d ngresso (S ) l segnale d retroazone (S r ) ottenuto dal segnale d uscta (S u ) medante un quadrpolo

Dettagli

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Modelli per la Logistica: Single Flow One Level Model Multi Flow Two Level Model

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Modelli per la Logistica: Single Flow One Level Model Multi Flow Two Level Model Rcerca Operatva e Logstca Dott. F.Carrabs e Dott.ssa M.Gentl Modell per la Logstca: Sngle Flow One Level Model Mult Flow Two Level Model Modell d localzzazone nel dscreto Modell a Prodotto Sngolo e a Un

Dettagli

Università degli Studi di Urbino Facoltà di Economia

Università degli Studi di Urbino Facoltà di Economia Unverstà degl Stud d Urbno Facoltà d Economa Lezon d Statstca Descrttva svolte durante la prma parte del corso d corso d Statstca / Statstca I A.A. 004/05 a cura d: F. Bartolucc Lez. 8/0/04 Statstca descrttva

Dettagli

DECRETA. ART. 3 Il compenso per l attività di collaborazione è fissato in 1.095,00 esente dall imposta sul reddito delle persone fisiche.

DECRETA. ART. 3 Il compenso per l attività di collaborazione è fissato in 1.095,00 esente dall imposta sul reddito delle persone fisiche. BANDO PER n. 64 BORSE DI COLLABORAZIONE PER IL SUPPORTO PRESSO IL C.I.A.O. DELL UNIVERSITA DEGLI STUDI DI ROMA LA SAPIENZA NEL PERIODO DA SETTEMBRE 2010 A FINE GENNAIO 2011 000280 IL RETTORE VISTO VISTO

Dettagli

STATISTICA DESCRITTIVA CON EXCEL

STATISTICA DESCRITTIVA CON EXCEL STATISTICA DESCRITTIVA CON EXCEL Corso d CPS - II parte: Statstca Laurea n Informatca Sstem e Ret 2004-2005 1 Obettv della lezone Introduzone all uso d EXCEL Statstca descrttva Utlzzo dello strumento:

Dettagli

Analisi dei flussi 182

Analisi dei flussi 182 Programmazone e Controllo Anals de fluss Clent SERVIZIO Uscta Quanto al massmo produce l mo sstema produttvo? Quanto al massmo produce la ma macchna? Anals de fluss 82 Programmazone e Controllo Teora delle

Dettagli

Dai circuiti ai grafi

Dai circuiti ai grafi Da crcut a graf Il grafo è una schematzzazone grafca semplfcata che rappresenta le propretà d nterconnessone del crcuto ad esso assocato Il grafo è costtuto da un nseme d nod e d lat Se lat sono orentat

Dettagli

V n. =, e se esiste, il lim An

V n. =, e se esiste, il lim An Parttore resstvo con nfnte squadre n cascata. ITIS Archmede CT La Fg. rappresenta un parttore resstvo, formato da squadre d restor tutt ugual ad, conness n cascata, e l cu numero n s fa tendere ad nfnto.

Dettagli

AVVISO PUBBLICO Costituzione di short list: Servizio di pulizie presso l Istituto di Ricerca Biogem s.c.ar.l. Via Camporeale, Ariano Irpino (AV)

AVVISO PUBBLICO Costituzione di short list: Servizio di pulizie presso l Istituto di Ricerca Biogem s.c.ar.l. Via Camporeale, Ariano Irpino (AV) AVVISO PUBBLICO Costtuzone d short lst: Servzo d pulze presso l Isttuto d Rcerca Camporeale, Arano Irpno (AV) In esecuzone della Determna Presdenzale n. 15/103 del 10/09/2015, la Bogem Scarl ntende procedere

Dettagli

Capitolo 6 Risultati pag. 468. a) Osmannoro. b) Case Passerini c) Ponte di Maccione

Capitolo 6 Risultati pag. 468. a) Osmannoro. b) Case Passerini c) Ponte di Maccione Captolo 6 Rsultat pag. 468 a) Osmannoro b) Case Passern c) Ponte d Maccone Fgura 6.189. Confronto termovalorzzatore-sorgent dffuse per l PM 10. Il contrbuto del termovalorzzatore alle concentrazon d PM

Dettagli

Ministero della Salute D.G. della programmazione sanitaria --- GLI ACC - L ANALISI DELLA VARIABILITÀ METODOLOGIA

Ministero della Salute D.G. della programmazione sanitaria --- GLI ACC - L ANALISI DELLA VARIABILITÀ METODOLOGIA Mnstero della Salute D.G. della programmazone santara --- GLI ACC - L ANALISI DELLA VARIABILITÀ METODOLOGIA La valutazone del coeffcente d varabltà dell mpatto economco consente d ndvduare gl ACC e DRG

Dettagli

Corso di Statistica (canale P-Z) A.A. 2009/10 Prof.ssa P. Vicard

Corso di Statistica (canale P-Z) A.A. 2009/10 Prof.ssa P. Vicard Corso d Statstca (canale P-Z) A.A. 2009/0 Prof.ssa P. Vcard VALORI MEDI Introduzone Con le dstrbuzon e le rappresentazon grafche abbamo effettuato le prme sntes de dat. E propro osservando degl stogramm

Dettagli

Il Ministro delle Infrastrutture e dei Trasporti

Il Ministro delle Infrastrutture e dei Trasporti Il Mnstro delle Infrastrutture e de Trasport VISTO l decreto legslatvo 30 aprle 1992, n. 285, come da ultmo modfcato dal decreto legslatvo 18 aprle 2011, n. 59, recante Attuazone delle drettve 2006/126/CE

Dettagli

Tutti gli strumenti vanno tarati

Tutti gli strumenti vanno tarati L'INCERTEZZA DI MISURA Anta Calcatell I.N.RI.M S eseguono e producono msure per prendere delle decson sulla base del rsultato ottenuto, come per esempo se bloccare l traffco n funzone d msure d lvello

Dettagli

MODELLISTICA DI SISTEMI DINAMICI

MODELLISTICA DI SISTEMI DINAMICI CONTROLLI AUTOMATICI Ingegnera Gestonale http://www.automazone.ngre.unmore.t/pages/cors/controllautomatcgestonale.htm MODELLISTICA DI SISTEMI DINAMICI Ing. Federca Gross Tel. 059 2056333 e-mal: federca.gross@unmore.t

Dettagli

Edifici a basso consumo energetico: tra ZEB e NZEB

Edifici a basso consumo energetico: tra ZEB e NZEB Edfc a basso consumo energetco: tra ZEB e NZEB Prof. Ing. Percarlo Romagnon Dpartmento d Progettazone e Panfcazone n Ambent Compless Unverstà IUAV d Veneza Dorsoduro 2206 30123 Veneza perca@uav.t Modell

Dettagli

T3 (IP) Comfort collegabile a Integral 5

T3 (IP) Comfort collegabile a Integral 5 T3 (IP) Comfort collegable a Integral 5 Benutzerhandbuch User s gude Manual de usuaro Manuel utlsateur Manuale d uso Gebrukersdocumentate Indce Indce Utlzzo del telefono Note mportant...4 Panoramca del

Dettagli

POR FESR Sardegna 2007-2013 Asse VI Competitività BANDO PUBBLICO. Voucher Startup Incentivi per la competitività delle Startup innovative

POR FESR Sardegna 2007-2013 Asse VI Competitività BANDO PUBBLICO. Voucher Startup Incentivi per la competitività delle Startup innovative POR FESR Sardegna 2007-2013 Asse VI Compettvtà BANDO PUBBLICO Voucher Startup Incentv per la compettvtà delle Startup nnovatve ALLEGATO 3 PIANO DI UTILIZZO DEL VOUCHER STARTUP INNOVATIVE 2014 3. Pano d

Dettagli

Circuiti di ingresso differenziali

Circuiti di ingresso differenziali rcut d ngresso dfferenzal - rcut d ngresso dfferenzal - Il rfermento per potenzal Gl stad sngle-ended e dfferenzal I segnal elettrc prodott da trasduttor, oppure preleat da un crcuto o da un apparato elettrco,

Dettagli

Questo è il secondo di una serie di articoli, di

Questo è il secondo di una serie di articoli, di DENTRO LA SCATOLA Rubrca a cura d Fabo A. Schreber Il Consglo Scentfco della rvsta ha pensato d attuare un nzatva culturalmente utle presentando n ogn numero d Mondo Dgtale un argomento fondante per l

Dettagli

Lezione 10. L equilibrio del mercato finanziario: la struttura dei tassi d interesse

Lezione 10. L equilibrio del mercato finanziario: la struttura dei tassi d interesse Lezone 1. L equlbro del mercato fnanzaro: la struttura de tass d nteresse Ttol con scadenza dversa hanno prezz (e tass d nteresse) dfferent. Due ttol d durata dversa emess dallo stesso soggetto (stesso

Dettagli

LA CALIBRAZIONE NELL ANALISI STRUMENTALE

LA CALIBRAZIONE NELL ANALISI STRUMENTALE LA CALIBRAZIONE NELL ANALISI STRUMENTALE La maggor parte delle anals chmche sono ogg condotte medante metod strumental (spettrometra d assorbmento ed emssone a dverse λ, metod elettrochmc, spettrometra

Dettagli

T3 (IP) Classic collegabile a Integral 5

T3 (IP) Classic collegabile a Integral 5 IP Telephony Contact Centers Moblty Servces T3 (IP) Classc collegable a Integral 5 Benutzerhandbuch User's Gude Manual de usuaro Manuel utlsateur Manuale d uso Gebrukersdocumentate Indce Indce... 2 Utlzzo

Dettagli

Codice di Stoccaggio Capitolo 7 Bilanciamento e reintegrazione dello stoccaggio

Codice di Stoccaggio Capitolo 7 Bilanciamento e reintegrazione dello stoccaggio Codce d Stoccaggo Captolo 7 Blancamento e rentegrazone dello stoccaggo 7.4 Corrspettv per servz d stoccaggo L UTENTE è tenuto a corrspondere a STOGIT, per la prestazone de servz, gl mport dervant dall

Dettagli

VA TIR - TA - TAEG Introduzione

VA TIR - TA - TAEG Introduzione VA TIR - TA - TAEG Introduzone La presente trattazone s pone come obettvo d analzzare due prncpal crter d scelta degl nvestment e fnanzament per valutare la convenenza tra due o pù operazon fnanzare. S

Dettagli

UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA

UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Dpartmento d Informatca Sstemstca e Comuncazone Corso d Laurea n Informatca ALGORITMI DI MORPHING FACCIALE PER

Dettagli

Il Ministro delle Infrastrutture e dei Trasporti

Il Ministro delle Infrastrutture e dei Trasporti Il Mnstro delle Infrastrutture e de Trasport VISTO l decreto legslatvo 30 aprle 1992, n. 285, come da ultmo modfcato dal decreto legslatvo 18 aprle 2011, n. 59, recante Attuazone delle drettve 2006/126/CE

Dettagli

Impresa Familiare - Quadro RR

Impresa Familiare - Quadro RR HELP DESK Nota Salvatempo 0005 MODULO Impresa Famlare - Quadro RR Quando serve Novtà Termn presentazone Gestre n modo veloce ed ntegrato l Quadro RR n caso d Impresa famlare. Rportare sulla delega del

Dettagli

A. AUMENTO DELLA SPESA PUBBLICA FINANZIATO ESCLUSIVAMENTE TRAMITE INDEBITAMENTO

A. AUMENTO DELLA SPESA PUBBLICA FINANZIATO ESCLUSIVAMENTE TRAMITE INDEBITAMENTO 4. SCHMI ALTRNATIVI DI FINANZIAMNTO DLLA SPSA PUBBLICA. Se l Governo decde d aumentare la Spesa Pubblca G (o Trasferment TR), allora deve anche reperre fond necessar per fnanzare questa sua maggore spesa.

Dettagli

Fig.1.2.1 Schema a blocchi di un PMSM isotropo con ingressi ed uscite del controllo digitale.

Fig.1.2.1 Schema a blocchi di un PMSM isotropo con ingressi ed uscite del controllo digitale. . ll metodo del fattore d scala globale Il progetto d un sstema d controllo dgtale può avvalers del cosddetto metodo del fattore d scala globale (FSG), attraverso l quale è possble stablre una corrspondenza

Dettagli

Fotogrammetria. O centro di presa. fig.1 Geometria della presa fotogrammetrica

Fotogrammetria. O centro di presa. fig.1 Geometria della presa fotogrammetrica Fotogrammetra Scopo della fotogrammetra è la determnazone delle poszon d punt nello spazo fsco a partre dalla msura delle poszon de punt corrspondent su un mmagne fotografca. Ovvamente, affnché questo

Dettagli

RELAZIONE TECNICA. Introduzione. 1 Finalità e requisiti delle attività di dispacciamento nel mercato elettrico liberalizzato

RELAZIONE TECNICA. Introduzione. 1 Finalità e requisiti delle attività di dispacciamento nel mercato elettrico liberalizzato Allegato n. 1 a Prot AU/01/130 RELAZIONE TECNICA PRESUPPOSTI PER L ADOZIONE DI SCHEMA DI CONDIZIONI PER L EROGAZIONE DEL PUBBLICO SERVIZIO DI DISPACCIAMENTO DELL ENERGIA ELETTRICA SUL TERRITORIO NAZIONALE

Dettagli

Capitolo 7. La «sintesi neoclassica» e il modello IS-LM. 2. La curva IS

Capitolo 7. La «sintesi neoclassica» e il modello IS-LM. 2. La curva IS Captolo 7 1. Il modello IS-LM La «sntes neoclassca» e l modello IS-LM Defnzone: ndvdua tutte le combnazon d reddto e saggo d nteresse per le qual l mercato de ben (curva IS) e l mercato della moneta (curva

Dettagli

Calcolo della caduta di tensione con il metodo vettoriale

Calcolo della caduta di tensione con il metodo vettoriale Calcolo della caduta d tensone con l metodo vettorale Esempo d rete squlbrata ed effett del neutro nel calcolo. In Ampère le cadute d tensone sono calcolate vettoralmente. Per ogn utenza s calcola la caduta

Dettagli

Analisi e Sviluppo di una Rete Neurale Modulare basata su Mixture of Experts, e Confronto con Algoritmi di Boosting

Analisi e Sviluppo di una Rete Neurale Modulare basata su Mixture of Experts, e Confronto con Algoritmi di Boosting Tes d Dploma d Laurea n Informatca d Petro Mele matrcola 54304 Anals e Svluppo d una Rete Neurale Modulare basata su Mxture of Experts, e Confronto con Algortm d Boostng Relatore: Prof. Alberto Berton

Dettagli

Relazione funzionale e statistica tra due variabili Modello di regressione lineare semplice Stima puntuale dei coefficienti di regressione

Relazione funzionale e statistica tra due variabili Modello di regressione lineare semplice Stima puntuale dei coefficienti di regressione 1 La Regressone Lneare (Semplce) Relazone funzonale e statstca tra due varabl Modello d regressone lneare semplce Stma puntuale de coeffcent d regressone Decomposzone della varanza Coeffcente d determnazone

Dettagli

SOFTWARE NBSI (NEIGHBOURHOOD BASED STRUCTURAL INDICES)

SOFTWARE NBSI (NEIGHBOURHOOD BASED STRUCTURAL INDICES) SOFTWARE NBSI (NEIGHBOURHOOD BASED STRUCTURAL INDICES) DIPARTIMENTO DI SCIENZE DELL AMBIENTE FORESTALE E DELLE SUE RISORSE (DISAFRI) UNIVERSITÀ DEGLI STUDI DELLA TUSCIA - Va San Camllo de Lells, 000 Vterbo

Dettagli

Modelli descrittivi, statistica e simulazione

Modelli descrittivi, statistica e simulazione Modell descrttv, statstca e smulazone Master per Smart Logstcs specalst Roberto Cordone (roberto.cordone@unm.t) Statstca descrttva Cernusco S.N., govedì 28 gennao 2016 (9.00/13.00) 1 / 15 Indc d poszone

Dettagli

PROGRAMMAZIONE DIDATTICA

PROGRAMMAZIONE DIDATTICA ISTITUTO ISTRUZIONE SUPERIORE STATALE CARLO GEMMELLARO CATANIA PROGRAMMAZIONE DIDATTICA ECONOMIA AZIENDALE A.S.: 2015/2016 Prof Pnzzotto Dana classe 5 b afm Obtv educatv OBTV ddattc trasversal Acqusre

Dettagli

Ministero dell Ambiente e della Tutela del Territorio e del Mare MANUALE OPERATIVO PER IL SISTEMA DI MISURAZIONE E VALUTAZIONE DEL PERSONALE

Ministero dell Ambiente e della Tutela del Territorio e del Mare MANUALE OPERATIVO PER IL SISTEMA DI MISURAZIONE E VALUTAZIONE DEL PERSONALE Mnstero dell Ambente e della Tutela del Terrtoro e del Mare MANUALE OPERATIVO PER IL SISTEMA DI MISURAZIONE E VALUTAZIONE DEL PERSONALE INDICE 1. INTRODUZIONE 1.1. I RIFERIMENTI NORMATIVI 1.2. GLI OBIETTIVI

Dettagli

Obiettivi Il concetto di Resilienza applicato ai territori rurali Una proposta p metodologica Un esempio: diversità e sviluppo

Obiettivi Il concetto di Resilienza applicato ai territori rurali Una proposta p metodologica Un esempio: diversità e sviluppo Obettv Il concetto d Reslenza applcato a terrtor rural Una proposta p metodologca Un esempo: dverstà e svluppo Concluson Interpretare terrtor rural come sstem soco-ecologc Analzzare le propretà della reslenza

Dettagli

La taratura degli strumenti di misura

La taratura degli strumenti di misura La taratura degl strument d msura L mportanza dell operazone d taratura nasce dall esgenza d rendere l rsultato d una msura rferble a campon nazonal od nternazonal del msurando n questone affnché pù msure

Dettagli

Grafico di una serie di dati sperimentali in EXCEL

Grafico di una serie di dati sperimentali in EXCEL Grafco d una sere d dat spermental n EXCEL 1. Inseramo sulla prma rga l ttolo che defnsce l contenuto del foglo. Po nseramo su un altra rga valor spermental della x e su quella successva valor della y.

Dettagli

gia Perug tudi di egli St net ello Mattiol tto in intern Prof.Leone od. 1:Il dirit

gia Perug tudi di egli St net ello Mattiol tto in intern Prof.Leone od. 1:Il dirit Corso base per la rcerca del drtto n Inter d Leon nverstà de egl St tud d erug tud d egl St stà de nvers Il gursta nella rete La rvoluzone dell era dgtale mplca che ogn manfestazone umana deve necessaramente

Dettagli

Indicatori di rendimento per i titoli obbligazionari

Indicatori di rendimento per i titoli obbligazionari Indcator d rendmento per ttol obblgazonar LA VALUTAZIONE DEGLI INVESTIMENTI A TASSO FISSO Per valutare la convenenza d uno strumento fnanzaro è necessaro precsare: /4 Le specfche esgenze d un nvesttore

Dettagli

Aton CLT402 ISDN Bedienungsanleitung Mode d emploi Istruzioni per l uso

Aton CLT402 ISDN Bedienungsanleitung Mode d emploi Istruzioni per l uso Aton CLT402 ISDN Bedenungsanletung Mode d emplo Istruzon per l uso A31008- M365- F171-2- 2X19 dt/fr/t 05.2008 Breve descrzone del telefono base Breve descrzone del telefono base Tasto d accesso al menu

Dettagli

Kit di conversione gas CELSIUS/Hydrosmart

Kit di conversione gas CELSIUS/Hydrosmart Kt d conversone gas CELSIUS/Hydrosmart IT (04.06) SM Indce 2 Indcazon per la scurezza 3 Legenda de smbol 3 1 Regolazone del gas - Celsus/Hydrosmart 4 1.1 Trasformazone gas 4 1.2 Impostazon d fabbrca 4

Dettagli

RETI TELEMATICHE Lucidi delle Lezioni Capitolo VII

RETI TELEMATICHE Lucidi delle Lezioni Capitolo VII Prof. Guseppe F. Ross E-mal: guseppe.ross@unpv.t Homepage: http://www.unpv.t/retcal/home.html UNIVERSITA' DEGLI STUDI DI PAVIA Facoltà d Ingegnera A.A. 2011/12 - I Semestre - Sede PV RETI TELEMATICHE Lucd

Dettagli

Strutture deformabili torsionalmente: analisi in FaTA-E

Strutture deformabili torsionalmente: analisi in FaTA-E Strutture deformabl torsonalmente: anals n FaTA-E Il comportamento dsspatvo deale è negatvamente nfluenzato nel caso d strutture deformabl torsonalmente. Nelle Norme Tecnche cò vene consderato rducendo

Dettagli

Soluzione attuale ONCE A YEAR. correlation curve (ISO10155) done with, at least 9 parallel measurements

Soluzione attuale ONCE A YEAR. correlation curve (ISO10155) done with, at least 9 parallel measurements Torna al programma Sstema per la garanza della qualtà ne sstem automatc d msura alle emsson: applcazone del progetto d norma pren 14181:2003. Rsultat dell esperenza n campo presso due mpant plota. Cprano

Dettagli

Risoluzione quesiti I esonero 2011

Risoluzione quesiti I esonero 2011 Rsoluzone quest I esonero 011 1) Compto 1 Q3 Un azenda a a dsposzone due progett d nvestmento tra d loro alternatv. Il prmo prevede l pagamento d un mporto par a 100 all epoca 0 e fluss par a 60 all epoca

Dettagli

EH SmartView. Una SmartView sui rischi e sulle opportunità. Servizio di monitoraggio dell assicurazione del credito. www.eulerhermes.

EH SmartView. Una SmartView sui rischi e sulle opportunità. Servizio di monitoraggio dell assicurazione del credito. www.eulerhermes. EH SmartVew Servz Onlne d Euler Hermes Una SmartVew su rsch e sulle opportuntà Servzo d montoraggo dell asscurazone del credto www.eulerhermes.t Cos è EH SmartVew? EH SmartVew è l servzo d Euler Hermes

Dettagli

Cenni di matematica finanziaria Unità 61

Cenni di matematica finanziaria Unità 61 Prerequst: - Rsolvere equazon algebrche d 1 grado ed equazon esponenzal Questa untà è rvolta al 2 benno del seguente ndrzzo dell Isttuto Tecnco, settore Tecnologco: Agrara, Agroalmentare e Agrondustra.

Dettagli

DATA MINING E CLUSTERING

DATA MINING E CLUSTERING Captolo 4 DATA MINING E CLUSTERING 4. Che cos'è l Data Mnng Per Data Mnng s'ntende quel processo d estrazone d conoscenza da banche dat, tramte l'applcazone d algortm che ndvduano le assocazon non mmedatamente

Dettagli

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri Artmetca de calcolator Rappresentazone de numer natural e relatv Addzone e sommator: : a propagazone d rporto, veloce, con segno Moltplcazone e moltplcator: senza segno, con segno e algortmo d Booth Rappresentazone

Dettagli