204 resultados para Programmazione
Resumo:
In questa Tesi forniamo una libreria di funzioni aritmetiche che operano in spazio logaritmico rispetto all'input. Partiamo con un'analisi dei campi in cui è necessario o conveniente porre dei limiti, in termini di spazio utilizzato, alla computazione di un determinato software. Vista la larga diffusione del Web, si ha a che fare con collezioni di dati enormi e che magari risiedono su server remoti: c'è quindi la necessità di scrivere programmi che operino su questi dati, pur non potendo questi dati entrare tutti insieme nella memoria di lavoro del programma stesso. In seguito studiamo le nozioni teoriche di Complessità, in particolare quelle legate allo spazio di calcolo, utilizzando un modello alternativo di Macchina di Turing: la Offline Turing Machine. Presentiamo quindi un nuovo “modello” di programmazione: la computazione bidirezionale, che riteniamo essere un buon modo di strutturare la computazione limitata in spazio. Forniamo poi una “guida al programmatore” per un linguaggio di recente introduzione, IntML, che permettere la realizzazione di programmi logspace mantenendo però il tradizionale stile di programmazione funzionale. Infine, per mostrare come IntML permetta concretamente di scrivere programmi limitati in spazio, realizziamo una libreria di funzioni aritmetiche che operano in spazio logaritmico. In particolare, mostriamo funzioni per calcolare divisione intera e resto sui naturali, e funzioni per confrontare, sommare e moltiplicare numeri espressi come parole binarie.
Resumo:
l’analiticità del metodo adottato ha permesso di ottenere una precisa e puntuale conoscenza del processo costruttivo, ottimo esempio per poter analizzare e confrontare i due programmi, Ms-Project 2007 e Primavera Project Planner P6.0, oggetto della presente trattazione; per comprendere quale software aiuta il Project Manager a gestire le complessità di un progetto per soddisfare i bisogni dei clienti, ad avere un controllo più stretto sulle strutture di progetto e sui suoi requisiti di rendicontazione, nonché la comprensione di tutto ciò che può ostacolare il corretto avanzamento del programma. Quale programma aiuta le aziende a pianificare e gestire sia i singoli progetti sia il programma complessivo, a implementare e monitorare i livelli di performance necessari e valutare agevolmente l’impatto delle modifiche di programma sui piani di lavoro, sui budget, sull’utilizzazione delle risorse. Un’efficace visione d’insieme dell’intero programma, combinata con la continua verifica delle metriche di produttività, consente ai program manager di mitigare proattivamente i rischi e ottenere come risultato il puntuale rispetto dei tempi e del budget.
Resumo:
Generic programming is likely to become a new challenge for a critical mass of developers. Therefore, it is crucial to refine the support for generic programming in mainstream Object-Oriented languages — both at the design and at the implementation level — as well as to suggest novel ways to exploit the additional degree of expressiveness made available by genericity. This study is meant to provide a contribution towards bringing Java genericity to a more mature stage with respect to mainstream programming practice, by increasing the effectiveness of its implementation, and by revealing its full expressive power in real world scenario. With respect to the current research setting, the main contribution of the thesis is twofold. First, we propose a revised implementation for Java generics that greatly increases the expressiveness of the Java platform by adding reification support for generic types. Secondly, we show how Java genericity can be leveraged in a real world case-study in the context of the multi-paradigm language integration. Several approaches have been proposed in order to overcome the lack of reification of generic types in the Java programming language. Existing approaches tackle the problem of reification of generic types by defining new translation techniques which would allow for a runtime representation of generics and wildcards. Unfortunately most approaches suffer from several problems: heterogeneous translations are known to be problematic when considering reification of generic methods and wildcards. On the other hand, more sophisticated techniques requiring changes in the Java runtime, supports reified generics through a true language extension (where clauses) so that backward compatibility is compromised. In this thesis we develop a sophisticated type-passing technique for addressing the problem of reification of generic types in the Java programming language; this approach — first pioneered by the so called EGO translator — is here turned into a full-blown solution which reifies generic types inside the Java Virtual Machine (JVM) itself, thus overcoming both performance penalties and compatibility issues of the original EGO translator. Java-Prolog integration Integrating Object-Oriented and declarative programming has been the subject of several researches and corresponding technologies. Such proposals come in two flavours, either attempting at joining the two paradigms, or simply providing an interface library for accessing Prolog declarative features from a mainstream Object-Oriented languages such as Java. Both solutions have however drawbacks: in the case of hybrid languages featuring both Object-Oriented and logic traits, such resulting language is typically too complex, thus making mainstream application development an harder task; in the case of library-based integration approaches there is no true language integration, and some “boilerplate code” has to be implemented to fix the paradigm mismatch. In this thesis we develop a framework called PatJ which promotes seamless exploitation of Prolog programming in Java. A sophisticated usage of generics/wildcards allows to define a precise mapping between Object-Oriented and declarative features. PatJ defines a hierarchy of classes where the bidirectional semantics of Prolog terms is modelled directly at the level of the Java generic type-system.
Resumo:
La tesi è l'esito di un lavoro di studio e ricerca nell'ambito della gestione delle sale operatorie, uno dei problemi principali su cui si sono focalizzati gli studi di Ricerca Operativa, applicati ai sistemi sanitari, sviluppati nell'ultimo decennio. Vengono presentati i due modelli di ottimizzazione creati al fine di migliorare l'efficienza organizzativa delle pianificazioni degli interventi chirurgici di un presidio ospedaliero. I due modelli, uno teorico e l'altro implementato con istanze reali, si distinguono dalle ricerche presenti in letteratura per l'innovativa proposta di pianificare attività preoperatorie che contribuiscano a raggiungere una miglior efficienza e la diminuzione dei costi delle pratiche chirurgiche.
Resumo:
La tesi si propone, dopo una panoramica generale sullo stato dell'arte in termini di software e concorrenza, l'obiettivo di studiare il modello ad attori ed analizzarne alcune significative implementazioni. Scelta quindi una specifica implementazione come caso di studio, in particolare il linguaggio AXUM in ambiente .NET, si entrerà nel dettaglio di tale linguaggio, analizzandone tutti gli aspetti e valutandone le potenzialità. Infine, sarà affrontata una breve ma significativa analisi critica sul linguaggio scelto.
Resumo:
Il Web ha subito numerose trasformazioni rispetto al passato. Si è passati da un Web statico, in cui l'unica possibilità era quella di leggere i contenuti della pagina, ad un Web dinamico e interattivo come quello dei social network. Il Web moderno è, ancora oggi, un universo in espansione. La possibilità di arricchire le pagine con contenuti interattivi, video, foto e molto altro, rende l'esperienza web sempre più coinvolgente. Inoltre la diffusione sempre più ampia di mobile device ha reso necessaria l'introduzione di nuovi strumenti per sfruttare al meglio le funzionalità di tali dispositivi. Esistono al momento tantissimi linguaggi di scripting e di programmazione, ma anche CMS che offrono a chiunque la possibilità di scrivere e amministrare siti web. Nonostante le grandi potenzialità che offrono, spesso queste tecnologie si occupano di ambiti specifici e non permettono di creare sistemi omogenei che comprendano sia client che server. Dart si inserisce proprio in questo contesto. Tale linguaggio dà a i programmatori la possibilità di poter sviluppare sia lato client sia lato server. L'obiettivo principale di questo linguaggio è infatti la risoluzione di alcune problematiche comuni a molti programmatori web. Importante in questo senso è il fatto di rendere strutturata la costruzione di programmi web attraverso l'uso di interfacce e classi. Fornisce inoltre un supporto per l'integrazione di svariate funzionalità che allo stato attuale sono gestite da differenti tecnologie. L'obiettivo della presente tesi è quello di mettere a confronto Dart con alcune delle tecnologie più utilizzate al giorno d'oggi per la programmazione web-based. In particolare si prenderanno in considerazione JavaScript, jQuery, node.js e CoffeeScript.