25 research outputs found

    Views, Program Transformations, and the Evolutivity Problem in a Functional Language

    Get PDF
    We report on an experience to support multiple views of programs to solve the tyranny of the dominant decomposition in a functional setting. We consider two possible architectures in Haskell for the classical example of the expression problem. We show how the Haskell Refactorer can be used to transform one view into the other, and the other way back. That transformation is automated and we discuss how the Haskell Refactorer has been adapted to be able to support this automated transformation. Finally, we compare our implementation of views with some of the literature.Comment: 19 page

    Invertible Program Restructurings for Continuing Modular Maintenance

    Get PDF
    When one chooses a main axis of structural decompostion for a software, such as function- or data-oriented decompositions, the other axes become secondary, which can be harmful when one of these secondary axes becomes of main importance. This is called the tyranny of the dominant decomposition. In the context of modular extension, this problem is known as the Expression Problem and has found many solutions, but few solutions have been proposed in a larger context of modular maintenance. We solve the tyranny of the dominant decomposition in maintenance with invertible program transformations. We illustrate this on the typical Expression Problem example. We also report our experiments with Java and Haskell programs and discuss the open problems with our approach.Comment: 6 pages, Early Research Achievements Track; 16th European Conference on Software Maintenance and Reengineering (CSMR 2012), Szeged : Hungary (2012

    Program Transformation based Views for Modular Maintenance

    Get PDF
    PosterNational audienceModular programming is a practical solution for separation of concerns but the support for modularity provided by programming languages does not resolve the classic expression problem and more generally the tyranny of the dominant decomposition: evolutions are modular only on the principal axis of decomposition. To solve this problem, a practical solution would be to be able to choose the architecture of an application each time one has to make it evolve. We provide a prototype tool for the Haskell language to support that. Our tool allows to build transformations to switch Haskell programs from one structure to another. We do this by driving a refactoring tool for Haskell (HaRe): transformations are built by chaining elementary operations of refactoring. Since each elementary refactoring operation preserve the semantics, the whole transformations also do

    Program Transformation based Views for Modular Maintenance

    Get PDF
    PosterNational audienceModular programming is a practical solution for separation of concerns but the support for modularity provided by programming languages does not resolve the classic expression problem and more generally the tyranny of the dominant decomposition: evolutions are modular only on the principal axis of decomposition. To solve this problem, a practical solution would be to be able to choose the architecture of an application each time one has to make it evolve. We provide a prototype tool for the Haskell language to support that. Our tool allows to build transformations to switch Haskell programs from one structure to another. We do this by driving a refactoring tool for Haskell (HaRe): transformations are built by chaining elementary operations of refactoring. Since each elementary refactoring operation preserve the semantics, the whole transformations also do

    Towards agile cross-platform application development with Smalltalk and Model Driven Engineering

    No full text
    International audienceNowadays, general public applications or specific infor-mation systems must be able to run on mobile platforms as well as on conventional platforms. Because developers have to deal with mobile platform specificities, this constraint si-gnificantly lessen the benefits of agile methods and as a consequence impacts on the application development cost. Many research works aim at reducing the development cost. Prototyping as well as automatic code generation have been investigated by the community. In this article, we present Dali, a framework that uses both Smalltalk and Model Dri-ven Engineering. With Dali, an application model can be de-signed for multiple platforms and interpreted before code generation. An execution platform is modelled as a set of constraints over a context. These constraints can affect the presentation of the Graphical User-Interface (GUI) but also the overall behaviour of an application

    Formalization of the neuro-biological models for spike neurons.

    Get PDF
    When modelizing cortical neuronal maps (here spiking neuronal networks) within the scope of the FACETS project, researchers in neuro-science and computer-science use NeuroML, a XML language, to specify biological neuronal networks. These networks could be simulated either using analogue or event-based techniques. Specifications include : - parametric model specification - model equation symbolic definition - formalization of related semantic aspects (paradigms, ..) and they are used by "non-computer-scientists". In this context XML is used to specify data structures, not documents. The first version of NeuroML uses Java to map XML biological data which can be later simulated within GENESIS, NEURON, etc. The second version uses tools for handling XML data, as XSL, to transform an XML file. To allow NeuroML to be used intensively within the scope of the FACETS project, we will entirely analyse the software. First we are going to evaluate this software deeply in the Technical Report section. Then we will propose a prototype to write down NeuroML code easily

    A Correct Refactoring Operation to Rename Global Variables in C Programs

    Get PDF
    GALLINETTE_HCERES2020Most integrated development environments are shipped with refactoring tools. However, their refactoring operations are often known to be unreliable. As a consequence, developers have to test their code after applying an automatic refactoring. In this report, we consider a refactoring operation (renaming of global variables in C), and we prove that its core implementation preserves the set of possible behaviors of transformed programs. That proof of correctness relies on the operational semantics of C provided by Compcert C in Coq. We also prove some static properties of the considered refactoring operation and we use them to find properties of some composed refactoring operations

    A Correct Refactoring Operation to Rename Global Variables in C Programs

    Get PDF
    GALLINETTE_HCERES2020Most integrated development environments are shipped with refactoring tools. However, their refactoring operations are often known to be unreliable. As a consequence, developers have to test their code after applying an automatic refactoring. In this report, we consider a refactoring operation (renaming of global variables in C), and we prove that its core implementation preserves the set of possible behaviors of transformed programs. That proof of correctness relies on the operational semantics of C provided by Compcert C in Coq. We also prove some static properties of the considered refactoring operation and we use them to find properties of some composed refactoring operations

    Composing idiomatically for specific performers : collaboration in the creation of electroacoustic music

    Get PDF
    Cette thèse examine l'impact de la collaboration avec des instrumentistes particuliers sur la composition de quatre œuvres électroacoustiques. Assumant un rôle plus important que celui de consultant ou conseiller, les interprètes ont influencé les décisions de l'auteur / compositeur dans le cadre de multiples ateliers et d'enregistrements de ceux-ci. Cette thèse examine ainsi comment les outils médiatiques de la musique électroacoustique affectent et enrichissent les relations personnelles : ces outils favorisent la transcription et la traduction, qui à la fois soulignent et transforment la spécificité du son. Le dialogue de la collaboration permet par la suite non seulement une réconciliation plus facile entre les éléments médiatisés et directs dans une oeuvre, mais aussi l'ouverture de son potentiel d'interprétation. En se servant d'une méthodologie qui fait appel à une pratique d'auto-réflexion et récursivité, cette thèse explore des sujets tels que : l'analyse du style personnel dans un cadre linguistique; l'importance du contact physique dans la collaboration et sa traduction incomplète sur support; et les défis de la préservation de la musique électroacoustique pour média ou interprète particulier. Des exemples de la création collaborative de quatre œuvres, racontés de manière personnelle, sont tressés parmi le récit plus théorique de cette thèse, imitant le va-et-vient de la recherche-création.This dissertation examines the impact of collaboration with specific instrumental performers on the composition of four electroacoustic works. Acting as more than consultants or advisors, the performers influenced the author/composer's decision-making in multiple workshop situations and in the recordings of these meetings. This dissertation thus examines the ways in which the media tools of electroacoustic music affect and extend personal relationships: these tools encourage transcription and translation, activities that highlight and transform specificity. The dialogue of collaboration subsequently not only allows for an easier reconciliation between mediatized and live elements within a work, but also to an opening out of its interpretive potential. Using a methodology that involves recursive and self-reflexive practice, this dissertation explores topics such as: the analysis of personal style in the framework of language; the importance of eye-to-eye, physical contact in collaboration and its incomplete translation onto media; and the challenges of preserving performer- and media-specific electroacoustic music. Examples from the collaborative creation of four works, acting as personal accounts, are braided into the more theoretical narrative of this dissertation, reflecting mimetically the to and fro of research-creation
    corecore