13 research outputs found
SPaCIFY: a Formal Model-Driven Engineering for Spacecraft On-Board Software
International audienceThe aim of this article is to present a model- driven approach proposed by the SPaCIFY project for spacecraft on-board software development. This ap- proach is based on a formal globally asynchronous lo- cally synchronous language called Synoptic, and on a set of transformations allowing code generation and model verification
Behavioural Properties and Dynamic Software Update for Concurrent Programs, Thesis Progress Report
Correctly developing multi-threaded programs is notoriously difficult, and getting total coverage using traditional testing paradigms, to guarantee the program is correct, is often infeasible. We expand on previous work to provide various tools, namely a generalisation of session typing and an extension of policy automata to multi-threaded code, with which to verify multi-threaded code. Additionally, most programs are not written once and then left; maintaining and updating software is an essential part of the software development cycle. Dynamic software update (DSU) âis a technique by which a running program can be updated with new code and data without interrupting its executionâ [45] and uses code analyses to ensure given safety properties are maintained across update boundaries. We present techniques for verifying if a modification can be applied to a running program whilst maintaining the desired behavioural properties, which may be those the program had before or some new properties
Micro Virtual Machines: A Solid Foundation for Managed Language Implementation
Today new programming languages proliferate, but many of them
suffer from
poor performance and inscrutable semantics. We assert that the
root of
many of the performance and semantic problems of today's
languages is
that language implementation is extremely difficult. This
thesis
addresses the fundamental challenges of efficiently developing
high-level
managed languages.
Modern high-level languages provide abstractions over execution,
memory
management and concurrency. It requires enormous intellectual
capability
and engineering effort to properly manage these concerns.
Lacking such
resources, developers usually choose naive implementation
approaches
in the early stages of language design, a strategy which too
often has
long-term consequences, hindering the future development of the
language. Existing language development platforms have failed
to
provide the right level of abstraction, and forced implementers
to
reinvent low-level mechanisms in order to obtain performance.
My thesis is that the introduction of micro virtual machines will
allow
the development of higher-quality, high-performance managed
languages.
The first contribution of this thesis is the design of Mu, with
the
specification of Mu as the main outcome. Mu is
the first micro virtual machine, a robust, performant, and
light-weight
abstraction over just three concerns: execution, concurrency and
garbage
collection. Such a foundation attacks three of the most
fundamental and
challenging issues that face existing language designs and
implementations, leaving the language implementers free to focus
on the
higher levels of their language design.
The second contribution is an in-depth analysis of on-stack
replacement
and its efficient implementation. This low-level mechanism
underpins
run-time feedback-directed optimisation, which is key to the
efficient
implementation of dynamic languages.
The third contribution is demonstrating the viability of Mu
through
RPython, a real-world non-trivial language implementation. We
also did
some preliminary research of GHC as a Mu client.
We have created the Mu specification and its reference
implementation,
both of which are open-source. We show that that Mu's on-stack
replacement API can gracefully support dynamic languages such as
JavaScript, and it is implementable on concrete hardware. Our
RPython
client has been able to translate and execute non-trivial
RPython
programs, and can run the RPySOM interpreter and the core of the
PyPy
interpreter.
With micro virtual machines providing a low-level substrate,
language
developers now have the option to build their next language on a
micro
virtual machine. We believe that the quality of programming
languages
will be improved as a result
Du geÌnie logiciel pour deÌployer, geÌrer et reconfigurer les logiciels
As a discipline, software engineering embraces various schools of thought, yet remains consistent with respect to its objective. It aims at providing means for effective and inexpensive production of software by contributing mathematical frameworks, methods and tools. Consequently, we witness some automation in software production process that, as of today, allows producing astronomical amounts of lines of code daily. This rapidly and massively produced software is required for all computer equipment that has invaded our daily life in various forms of other devices (PC, tablet, phone, refrigerator, car, etc.). In this world of large software consumption, it is somewhat surprising that the management of software, after its production, remains dominated by manual practices like searching in lists, downloading units and manual installations. In this context, I organized my research activities such that they aim at providing mathematical frameworks, methods and tools to deploy, distribute or update massive amounts of software since 2001, the year of my PhD defense. These research activities were mainly conducted in Brest at the CS department of Telecom Bretagne as part of the PASS team of IRISA. This document puts into perspective my various scientific contributions, undertaken projects, endeavors in training research students and efforts invested as a teacher. My scientific contributions can be divided into five parts: mathematical models and algorithms for dependency management in software deployment; software component models; processes and tools for massive software deployment; dynamic update of programs at runtime; languages for the design and implementation of software development processes. All these works complement each other, thus making it possible to imagine the proposition of methods and tools for large-scale software deployment.Le gĂ©nie logiciel est une discipline constituĂ©e de nombreux courants mais cohĂ©rente par l'objectif affichĂ©. Il s'agit d'aider Ă la production, de maniĂšre efficace et peu coĂ»teuse, de logiciels en offrant des cadres mathĂ©matiques, des mĂ©thodes et des outils. Ainsi, on a pu assister Ă une certaine industrialisation du processus de production de logiciel qui permet aujourd'hui de produire, chaque jour, des quantitĂ©s astronomiques de logiciel. Ce logiciel produit rapidement et en grande quantitĂ© est nĂ©cessaire pour tous les Ă©quipements informatiques qui ont envahi notre quotidien (ordinateur, tablette, tĂ©lĂ©phone, rĂ©frigĂ©rateur, voiture, ...). Dans ce monde de grande consommation du logiciel, il est cependant surprenant de constater que la gestion des logiciels aprĂšs leur production est restĂ© dominĂ© par des pratiques manuelles de recherche dans des listes, de tĂ©lĂ©chargement unitaire et d'installation manuelle. C'est dans ce cadre que j'ai dĂ©veloppĂ© une activitĂ© de recherche visant Ă fournir des cadres mathĂ©matiques, des mĂ©thodes et des outils pour dĂ©ployer, diffuser ou mettre Ă jour massivement les logiciels depuis 2001 annĂ©e de ma soutenance de thĂšse. Ces activitĂ©s de recherche ont Ă©tĂ© conduites principalement Ă Brest au sein du dĂ©partement informatique de TĂ©lĂ©com Bretagne dans le cadre de l'Ă©quipe PASS de l'IRISA. Mon Habilitation Ă Diriger des Recherches est l'occasion de remettre en perspective mes diffĂ©rentes contributions scientifiques, les Ă©tudiants formĂ©s Ă la recherche, les projets rĂ©alisĂ©s ainsi que mon investissement en tant qu'enseignant. Les contributions scientifiques peuvent ĂȘtre classĂ©es en cinq parties : - des modĂšles mathĂ©matiques et les algorithmes associĂ©s pour la gestion des dĂ©pendances de logiciels lors de leur dĂ©ploiement ; - les modĂšles de composants logiciels ; - les processus et outils pour le dĂ©ploiement de logiciel massif ; - la mise Ă jour de programmes sans interrompre leur exĂ©cution ; - des langages pour la conception et la rĂ©alisation de processus de dĂ©veloppement logiciel. Tous ces travaux qui se nourrissent et se complĂštent permettent d'imaginer la proposition de mĂ©thodes et outils pour passer Ă l'Ă©chelle dans la gestion du dĂ©ploiement des logiciels
Plates-formes et mises Ă jour dynamiques configurables
Dynamic software updating allows applications to be modified without interrupting the services it provides. Because today's systems rely heavily on software and its availability, such a possibility is an important issue. Many mechanisms with diverse needs and properties enable dynamic updates. They are used by platforms targeting specific types of applications and/or updates. While the specialization of these platforms make the development of dynamic updates easier, it can cause the platform to be ill suited in the case of unforeseen updates. A solution is to select and combine best-suited mechanisms for each update in order to guarantee a best compatibility of platforms with the different kinds of applications and updates. The three contributions detailed in this thesis follow this objective: - Studying platforms and identify generic models for platforms and updates - Studying the needs and properties of mechanisms as well as their capacity to be combined - Develop configurable platforms allowing the selection of best-suited mechanisms for each update. Theses contributions open leads towards a new generation of platforms and towards new uses of dynamic updates. The third contribution lead to the development of Pymoult, a configurable platform for Python programs. Pymoult provides several mechanisms through a high-level API suited to the conception of dynamic updates.La mise Ă jour dynamique des logiciels permet de modifier ces derniers sans interrompre les services qu'ils fournissent. C'est un enjeu important Ă une Ă©poque oĂč les logiciels sont omniprĂ©sents et oĂč leur indisponibilitĂ© peut ĂȘtre coĂ»teuse (service commercial) ou mĂȘme dangereuse (systĂšme de sĂ©curitĂ©). De nombreux mĂ©canismes aux propriĂ©tĂ©s et besoins variĂ©s permettent d'atteindre cet objectif. Ces mĂ©canismes sont employĂ©s par des plates-formes dĂ©diĂ©es Ă des types de logiciel et/ou de mises Ă jour spĂ©cifiques. En se spĂ©cialisant, ces plates-formes facilitent l'Ă©criture de mises Ă jour dynamiques mais peuvent ĂȘtre mal adaptĂ©es Ă l'application de certaines modifications imprĂ©vues. Il convient alors de sĂ©lectionner et combiner les mĂ©canismes les mieux adaptĂ©s Ă chaque mise Ă jour afin d'assurer une meilleure compatibilitĂ© des plates-formes avec les diffĂ©rents logiciels et mises Ă jour. C'est autour de cet objectif que s'organisent les contributions de ce manuscrit: - Ătudier les plates-formes et identifier des modĂšles gĂ©nĂ©riques de plate-forme et de mise Ă jour - Ătudier les besoins et les propriĂ©tĂ©s des mĂ©canismes de mise Ă jour ainsi que leurs capacitĂ©s Ă ĂȘtre combinĂ©s. - DĂ©velopper des plates-formes configurables permettant de sĂ©lectionner les mĂ©canismes les mieux adaptĂ©s pour chaque mise Ă jour. Les rĂ©sultats obtenus ouvrent des pistes vers une nouvelle gĂ©nĂ©ration de plates-formes ainsi que vers de nouvelles utilisations de la mise Ă jour dynamique. Le troisiĂšme axe a menĂ© au dĂ©veloppement de Pymoult, plate-forme configurable pour programmes Python. Cette plate-forme fournit de nombreux mĂ©canismes au travers d'une API de haut niveau adaptĂ©e Ă la conception de mises Ă jour dynamiques
Recommended from our members
Collaboration and embodiment in networked music interfaces for live performance
Research regarding liveness and embodiment in electronic music has tended to explore
the relationship of bodies and instruments, audience perception, interfaces, and shifting
definitions, less theoretical and empirical study has considered network situations, perhaps
given their relative cultural novelty. Network music has seen many advances since
the time of the Telharmonium, including the invention of the personal computer and the
widespread proliferation of internet connectivity. These advances have fostered a unique
approach to live electronic music that facilitates collaboration in a field where solo performance
is perhaps more common. This thesis explores the design of network music
interfaces, and how those interfaces mediate collaborations.
Three new network music system interfaces, each using different a different paradigm
for interface design are presented in this study. One an instrument for creating modular
feedback lattices. Another is a three dimensional virtual pattern sequencer. And the last
is a web based collaborative live coding language. Accompanying each system is an evaluation
using quantitative and qualitative analysis to frame these instruments in a larger
context regarding network music. The results highlight important themes concerning the
design of networked interfaces, and the attitudes of musicians regarding networked collaborations
Proceedings of the 18th Irish Conference on Artificial Intelligence and Cognitive Science
These proceedings contain the papers that were accepted for publication at AICS-2007, the 18th Annual Conference on Artificial Intelligence and Cognitive Science, which was held in the Technological University Dublin; Dublin, Ireland; on the 29th to the 31st August 2007. AICS is the annual conference of the Artificial Intelligence Association of Ireland (AIAI)
Inference Belief and Interpretation in Science
This monograph explores the deeply cognitive roots of human scientific quest. The process of making scientific inferences is continuous with the day-to-day inferential activity of individuals, and is predominantly inductive in nature. Inductive inference, which is fallible, exploratory, and open-ended, is of essential relevance in our incessant efforts at making sense of a complex and uncertain world around us, and covers a vast range of cognitive activities, among which scientific exploration constitutes the pinnacle.
Inductive inference has a personal aspect to it, being rooted in the cognitive unconscious of individuals, which has recently been found to be of paramount importance in a wide range of complex cognitive processes. One other major aspect of the process of inference making, including the making of scientific inferences, is the role of a vast web of beliefs lodged in the human mind, as also of a huge repertoire of heuristics, that constitute an important component of âunconscious intelligenceâ. Finally, human cognitive activity is dependent in a large measure on emotions and affects that operate mostly at an unconscious level. Of special importance in scientific inferential activity is the process of hypothesis making, which is examined in this book, along with the above aspects of inductive inference, at considerable depth.
The book focuses on the inadequacy of the viewpoint of naive realism in understanding the context-dependence of scientific theories, where a cumulative progress towards an ultimate truth about Nature appears to be too simplistic a generalization. It poses a critique to the commonly perceived image of science where it is seen as the last word in logic and objectivity, the latter in the double sense of being independent of individual psychological propensities and, at the same time, approaching a correct understanding of the workings of a mind-independent nature. Adopting the naturalist point of view, it examines the essential tension between the cognitive endeavors of individuals and scientific communities, immersed in belief systems and cultures, on the one hand, and the engagement with a mind-independent reality on the other. In the end, science emerges as an interpretation of nature, which is perceived by us only contextually, as successively emerging cross-sections of a limited scope and extent. Successive waves of theory building in science appear as episodic and kaleidoscopic changes in perspective as certain in-built borders are crossed, rather than as a cumulative progress towards some ultimate truth.
Based on current literature, I aim to set up, in the form of a plausible hypothesis, a framework for understanding the mechanisms underlying inductive inference in general and abduction in particular