965 resultados para Programming and programming languages
Resumo:
Mutable state can be useful in certain algorithms, to structure programs, or for efficiency purposes. However, when shared mutable state is used in non-local or nonobvious ways, the interactions that can occur via aliases to that shared memory can be a source of program errors. Undisciplined uses of shared state may unsafely interfere with local reasoning as other aliases may interleave their changes to the shared state in unexpected ways. We propose a novel technique, rely-guarantee protocols, that structures the interactions between aliases and ensures that only safe interference is possible. We present a linear type system outfitted with our novel sharing mechanism that enables controlled interference over shared mutable resources. Each alias is assigned separate, local roles encoded in a protocol abstraction that constrains how an alias can legally use that shared state. By following the spirit of rely-guarantee reasoning, our rely-guarantee protocols ensure that only safe interference can occur but still allow many interesting uses of shared state, such as going beyond invariant and monotonic usages. This thesis describes the three core mechanisms that enable our type-based technique to work: 1) we show how a protocol models an alias’s perspective on how the shared state evolves and constrains that alias’s interactions with the shared state; 2) we show how protocols can be used while enforcing the agreed interference contract; and finally, 3) we show how to check that all local protocols to some shared state can be safely composed to ensure globally safe interference over that shared memory. The interference caused by shared state is rooted at how the uses of di↵erent aliases to that state may be interleaved (perhaps even in non-deterministic ways) at run-time. Therefore, our technique is mostly agnostic as to whether this interference was the result of alias interleaving caused by sequential or concurrent semantics. We show implementations of our technique in both settings, and highlight their di↵erences. Because sharing is “first-class” (and not tied to a module), we show a polymorphic procedure that enables abstract compositions of protocols. Thus, protocols can be specialized or extended without requiring specific knowledge of the interference produce by other protocols to that state. We show that protocol composition can ensure safety even when considering abstracted protocols. We show that this core composition mechanism is sound, decidable (without the need for manual intervention), and provide an algorithm implementation.
Resumo:
The MAP-i Doctoral Program of the Universities of Minho, Aveiro and Porto
Resumo:
La programación concurrente es una tarea difícil aún para los más experimentados programadores. Las investigaciones en concurrencia han dado como resultado una gran cantidad de mecanismos y herramientas para resolver problemas de condiciones de carrera de datos y deadlocks, problemas que surgen por el mal uso de los mecanismos de sincronización. La verificación de propiedades interesantes de programas concurrentes presenta dificultades extras a los programas secuenciales debido al no-determinismo de su ejecución, lo cual resulta en una explosión en el número de posibles estados de programa, haciendo casi imposible un tratamiento manual o aún con la ayuda de computadoras. Algunos enfoques se basan en la creación de lenguajes de programación con construcciones con un alto nivel de abstración para expresar concurrencia y sincronización. Otros enfoques tratan de desarrollar técnicas y métodos de razonamiento para demostrar propiedades, algunos usan demostradores de teoremas generales, model-checking o algortimos específicos sobre un determinado sistema de tipos. Los enfoques basados en análisis estático liviano utilizan técnicas como interpretación abstracta para detectar ciertos tipos de errores, de una manera conservativa. Estas técnicas generalmente escalan lo suficiente para aplicarse en grandes proyectos de software pero los tipos de errores que pueden detectar es limitada. Algunas propiedades interesantes están relacionadas a condiciones de carrera y deadlocks, mientras que otros están interesados en problemas relacionados con la seguridad de los sistemas, como confidencialidad e integridad de datos. Los principales objetivos de esta propuesta es identificar algunas propiedades de interés a verificar en sistemas concurrentes y desarrollar técnicas y herramientas para realizar la verificación en forma automática. Para lograr estos objetivos, se pondrá énfasis en el estudio y desarrollo de sistemas de tipos como tipos dependientes, sistema de tipos y efectos, y tipos de efectos sensibles al flujo de datos y control. Estos sistemas de tipos se aplicarán a algunos modelos de programación concurrente como por ejemplo, en Simple Concurrent Object-Oriented Programming (SCOOP) y Java. Además se abordarán propiedades de seguridad usando sistemas de tipos específicos. Concurrent programming has remained a dificult task even for very experienced programmers. Concurrency research has provided a rich set of tools and mechanisms for dealing with data races and deadlocks that arise of incorrect use of synchronization. Verification of most interesting properties of concurrent programs is a very dificult task due to intrinsic non-deterministic nature of concurrency, resulting in a state explosion which make it almost imposible to be manually treat and it is a serious challenge to do that even with help of computers. Some approaches attempts create programming languages with higher levels of abstraction for expressing concurrency and synchronization. Other approaches try to develop reasoning methods to prove properties, either using general theorem provers, model-checking or specific algorithms on some type systems. The light-weight static analysis approach apply techniques like abstract interpretation to find certain kind of bugs in a conservative way. This techniques scale well to be applied in large software projects but the kind of bugs they may find are limited. Some interesting properties are related to data races and deadlocks, while others are interested in some security problems like confidentiality and integrity of data. The main goals of this proposal is to identify some interesting properties to verify in concurrent systems and develop techniques and tools to do full automatic verification. The main approach will be the application of type systems, as dependent types, type and effect systems, and flow-efect types. Those type systems will be applied to some models for concurrent programming as Simple Concurrent Object-Oriented Programming (SCOOP) and Java. Other goals include the analysis of security properties also using specific type systems.
Resumo:
Nuestra Web tiene como eje central divulgar todo el material desarrollado en el Proyecto Wolframio, queriendo ser una herramienta sencilla y ágil para gestionar el material y ser más accesible para los usuarios. Para el desarrollo del proyecto se ha diseñado una arquitectura en la que conviven varias tecnologías y varios lenguajes de codificación y programación: HTML, PHP, MySQL, Java script, AJAX, JQUERY y CSS.
Resumo:
El projecte es centra en el desenvolupament d'un recol·lector de notícies publicades a una llarga llista de blocs ampliada contínuament pel desenvolupador i pels usuaris, afegint els seus blocs preferits. L'aplicació desenvolupada realitza una recol·lecció contínua de notícies consultant les possibles novetats que apareguin en cada un dels blocs inscrits a l'aplicació. Se'ls hi aplica un classificador per idioma i per temàtica i es relaciona amb les altres notícies existents si aquestes parlen sobre el mateix tema. En l'aplicació desenvolupada hi ha la possibilitat d'escollir entre les temàtiques ofertes i en l'idioma que ha estat publicada la notícia. Pel desenvolupament del projecte s'ha desitjat que la plataforma sigui el més compatible possible amb la tecnologia actual fent servir diversos llenguatges de programació que han permès desenvolupar cada un dels algorismes necessaris pel desenvolupament global de l'aplicació; en ordre d'ús he fet servir Php, Matlab, Html, MySql, CSS3, Javascript i XML. s'ha de destacar que el projecte aporta una comoditat per tots aquells lectors de blocs que es troben tantes vegades amb notícies ja llegides en els diferents blocs que consulten.
Resumo:
Aquest treball de final de carrera vol fer un estudi comparatiu entre el llenguatge XQuery del W3C i el llenguatge X-Query de Tamino, amb una valoració de les possibilitats que ofereix aquest sistema nadiu en el treball amb XML amb relació al llenguatge de consultes sobre XML definit pel W3C.
Resumo:
Aquest document descriu els passos necessaris per a desenvolupar una botiga virtual a Internet, per mitjà de les fases d'anàlisi, disseny i codificació. L'aplicació en qüestió ha de permetre als diferents tipus d'usuaris fer tasques de manteniment (altes, baixes i actualitzacions) i de consulta dels diversos elements del domini del problema.
Resumo:
L'objectiu d'aquest treball de final de carrera és clar pel que fa a la funcionalitat: es tracta de fer un analitzador de xarxa (vulgarment conegut com a detector) que funcioni en entorns Linux i amb interfícies d'usuari gràfiques.
Resumo:
L'objectiu fonamental d'aquest treball és estudiar les relacions que hi ha a nivell teòric entre XML (eXtensible Markup Language) i RDF (Resource Description Language).
Resumo:
Aquest estudi té com a objectiu introduir el lector en dues tecnologies complementàries, XML i RDF. L'estudi mostra els inicis dels llenguatges de marcatge i explica perquè van ser concebuts.
Resumo:
Aquest projecte estudia els conceptes de web semàntica, ontologia i llenguatges semàntics, i proposa un cas pràctic de disseny i desenvolupament d'una ontologia amb un prototipus de lloc web anotat semànticament.
Resumo:
S'ha creat un aplicatiu web autogestionable per a l'Associació Cultural Pubills de Valls de Torroella que millora l’existent. El nou aplicatiu disposa de noves funcionalitats com el fòrum, notícies, secció d’arxius multimèdia i botiga virtual. L'aplicatiu ha estat desenvolupat des de zero utilitzant programari lliure i els principals llenguatges de programació web actuals. Projecte disponible a http://www.pubills.com.
Resumo:
The MyHits web site (http://myhits.isb-sib.ch) is an integrated service dedicated to the analysis of protein sequences. Since its first description in 2004, both the user interface and the back end of the server were improved. A number of tools (e.g. MAFFT, Jacop, Dotlet, Jalview, ESTScan) were added or updated to improve the usability of the service. The MySQL schema and its associated API were revamped and the database engine (HitKeeper) was separated from the web interface. This paper summarizes the current status of the server, with an emphasis on the new services.
Resumo:
En aquest món on ens ha tocat viure i patir canvis tan durs amb la crisi econòmica que patim, que ens ha fet passar de lligar els gossos amb llonganisses a vigilar en les despeses del dia a dia per poder arribar just a final de mes, és el moment de reinventar-se. És per aquest motiu que presento aquesta idea, on el seu objectiu és desenvolupar una pàgina web que esdevingui un punt de trobada entre usuaris que volen transmetre o ampliar el seu coneixement i oferir-los la possibilitat que entre ells puguin compartir les seves habilitats i destreses. El web consistirà en un panell d’activitats on els usuaris un cop s’hagin registrat puguin crear les activitats que vulguin aprendre o bé ensenyar, tot demanant, si ho desitgen, quelcom a canvi. Aleshores la resta d’usuaris si els interessa l’activitat, poden acceptar la demanda o bé fer una proposta pròpia. A partir d’aquí els usuaris s’han de posar d’acord a l’hora de dur a terme l’activitat. El web disposarà d’una part pels usuaris amb permisos d’administrador perquè puguin gestionar el portal. Aquest projecte s’ha desenvolupat amb el framework de PHP Codeigniter, el qual utilitza la programació per capes MVC, la qual separa la programació en tres parts: el Model, la Vista i el Controlador. També s’han utilitzat els llenguatges HTML5 i CSS3, i jQuery, que és una llibreria de JavaScript. Com a sistema gestor de base de dades s’ha utilitzat el MySQL.
Resumo:
The broad aim of biomedical science in the postgenomic era is to link genomic and phenotype information to allow deeper understanding of the processes leading from genomic changes to altered phenotype and disease. The EuroPhenome project (http://www.EuroPhenome.org) is a comprehensive resource for raw and annotated high-throughput phenotyping data arising from projects such as EUMODIC. EUMODIC is gathering data from the EMPReSSslim pipeline (http://www.empress.har.mrc.ac.uk/) which is performed on inbred mouse strains and knock-out lines arising from the EUCOMM project. The EuroPhenome interface allows the user to access the data via the phenotype or genotype. It also allows the user to access the data in a variety of ways, including graphical display, statistical analysis and access to the raw data via web services. The raw phenotyping data captured in EuroPhenome is annotated by an annotation pipeline which automatically identifies statistically different mutants from the appropriate baseline and assigns ontology terms for that specific test. Mutant phenotypes can be quickly identified using two EuroPhenome tools: PhenoMap, a graphical representation of statistically relevant phenotypes, and mining for a mutant using ontology terms. To assist with data definition and cross-database comparisons, phenotype data is annotated using combinations of terms from biological ontologies.