Haut PDF A language and an Integrated Environment for Program Transformations

A language and an Integrated Environment for Program Transformations

A language and an Integrated Environment for Program Transformations

101 - 54602 Villers lès Nancy Cedex France Unité de recherche INRIA Rennes : IRISA, Campus universitaire de Beaulieu - 35042 Rennes Cedex France Unité de recherche INRIA Rhône-Alpes : 65[r]

22 En savoir plus

Extended Cyclostatic Dataflow Program Compilation and Execution for an Integrated Manycore Processor

Extended Cyclostatic Dataflow Program Compilation and Execution for an Integrated Manycore Processor

6 Conclusion and future works In this paper, we described an end-to-end compilation toolchain and an ex- ecution support for the ΣC language, with an illustration of its performance on an implementation of a H.264 video encoder. Doing so, we assert in practice that the ΣC language meets the criteria enounced in [11] (good expressivity, efficient integration of existing C code, properties allowing a compiler to provide guarantees on produced binaries as well as support of modularity and code reuse, and to produce binaries fit for execution on embedded manycores). The performance results of the video encoder also demonstrate that, combined to the development ease given by a stream lan- guage, architectures like the MPPA chip offer a good alternative to VHDL description and FPGA-based solutions.
En savoir plus

19 En savoir plus

Towards easy program migration using language virtualization

Towards easy program migration using language virtualization

3.5 Dependency management In some cases, the missing entities are still present in the host environment and are compatible, so we want to use them. In the last example Point is missing in the module containing the program but is present in the host environment. We would like to create a stub for Point and make it inherit from the Point from the host environment. We need then to import the point from the host. This creates a name conflict, we have two times "Point" inside the same module. Point from the host which will stay in the host but is imported and the subclass Point we want to create. For doing so, we suggest aliasing as a solution for this problem. We import Point by giving it another name, an alias. With this mechanism, you can solve the problem in different ways. As show in Figure 8), you can use alias in the program’s module or in the hypervisor.
En savoir plus

9 En savoir plus

OpenAlea 2.0: Architecture of an integrated modeling environment on the web

OpenAlea 2.0: Architecture of an integrated modeling environment on the web

Keywords: Scientific workflow, Integrated modeling environment, Web 2.0, WebGL The development of a model of plant or cellular tissue requires the use of a modeling paradigm: (i) imperative using a script or a compiled language, (ii) declarative to define a set of rewriting rules like in L- systems, (iii) interactive using a sketch-based interface for creating 3D models of plants, or (iv) visual programming to combine existing components. All these modeling paradigms have been developed in different software platforms in the plant modeling community, but, as of today, none of them provides all the modeling paradigms in an integrated software environment: vlab/LStudio (Prusinkiewicz et al. 2007), GroIMP (Hemmerling et al. 2008) and L-Py (Boudon et al. 2012) focus on L-systems; TreeSketch (Longay et al., 2012) focuses on sketch-based modeling of tree; and OpenAlea (Pradal et al., 2008) focuses on visual programming. However, the need to develop more complex and integrated models, often assembling many sub-models, leads us to consider a modeling environment capable of supporting multiple design paradigms and models, and make them interoperable.
En savoir plus

2 En savoir plus

Continuation-Passing C: Program Transformations for Compiling Concurrency in an Imperative Language

Continuation-Passing C: Program Transformations for Compiling Concurrency in an Imperative Language

In hindsight, the author believes that it would have been a better choice not to use condition variables to interrupt CPS primitives. For instance, we could have introduced a separate concept of thread identifier with the ability to interrupt a thread blocked in a CPC primitive— similar to the interrupt function in Java [Ora12]—and to use condition variables only for synchronising threads. With such a feature, cpc_wait would be interruptible like any other CPC primitive and it would be possible to implement an interruptible wait on an arbitrary number of variables. However, interruptibility introduces its own set of issues. For instance, library functions must deal with the possibility of being interrupted, yielding more verbose and error-prone code. The Alert function of Modula-2+ [Bir+87] solves this dilemma by offering both interruptible and non-interruptible primitives (Wait and AlertWait for instance). Another approach is the “cancellation token” used by Windows; “a token can be passed to an asynchronous IO operation when it is started, and cancelling a token cancels all asynchronous requests associated with it” [Har+11]. All these solutions decouple the notion of semaphore or condition variable from the notion of cancellation. In any case, such a mechanism would add a number of indirections and runtime overhead which should be carefully balanced with the increased flexibility.
En savoir plus

201 En savoir plus

Integrated environment for verifying and running distributed components -Extended version

Integrated environment for verifying and running distributed components -Extended version

In this paper we presented our integrated environment for designing and implementing safe component-based systems. Our approach includes three main aspects. First, we provide graph- ical formalisms for the application architecture and the behavior specification, as well as type abstractions. The formalism extensively uses UML models that makes it easy to learn and use for the programmer. Second, we ensure behavioral correctness, by running a model-checker on the specified model. In practice, we transform graphical models into input for the CADP model-checker. As a result, the user can verify correctness properties of the modeled system even if he does not have a strong expertise in formal methods. Finally, we transform the models into executable application code. We implemented our approach in the VerCors platform and we tested it by modeling, verifying, and executing Peterson’s leader election algorithm. Our approach was illustrated by generating GCM/ProActive code but it would be easy to generate code for any actor or active-object based language, or more generally any programming model made of components interacting by asynchronous requests and replies. Beyond the academic example of this paper, we have also published a study of a fault-tolerant protocol [23], showing how to handle scalability issues in the model-checking activities. In another paper, we showed an industrial-inspired study [24] in which we handle large state-spaces modeling an application with dynamic reconfiguration of components.
En savoir plus

28 En savoir plus

Formal verification of a C-like memory model and its uses for verifying program transformations

Formal verification of a C-like memory model and its uses for verifying program transformations

The second pass that affects memory behavior is register allocation. In RTL, the source language for this translation, local variables and temporaries are initialized to the undef value on function entry. (This initialization agrees with the semantics of Clight, where reading an uninitialized local variable amounts to loading from a freshly allocated block.) After register allocation, some of these RTL variables and temporaries are mapped to global hardware registers, which are not initialized to the undef value on function entry, but instead keep whatever value they had in the caller function at point of call. This does not change the semantics of well-defined RTL programs, since the RTL semantics goes wrong whenever an undef value is involved in an arithmetic operation or conditional test. Therefore, values of uninitialized RTL variables do not participate in the computations performed by the program, and can be changed from undef to any other value without changing the semantics of the program. However, the original RTL program could have stored these values of uninitialized variables in memory locations. Therefore, the memory states before and after register allocation have the same shapes, but the contents of some memory locations can change from undef to any value, as pictured in figure 2, center.
En savoir plus

30 En savoir plus

A UML-integrated test description language for component testing

A UML-integrated test description language for component testing

Recall that we are interested in black-box testing and among the properties we wish to test are those concerned with correct ordering of the messages interchanged between the SUT and the tester, the latter playing the role of the SUT’s environment. Among the different views used in UML modelling, interactions are clearly the most suited to de- scribing message orderings and therefore the most adequate on which to base our test description language. Sequence diagrams, in particular, are also considered to be espe- cially user-friendly, as are related formalisms such as MSCs. With simplicity and user- friendliness in mind, we set ourselves the goal of using only the sequence diagram (and possibly collaboration diagram) and class diagram views with the overwhelming empha- sis on the sequence diagrams 1 . As we explain in the rest of this article, this inevitably involves increasing the expressive power of the latter diagrams. In so doing, we cur- rently do not attempt to maintain an equivalence between sequence diagrams, on the one hand, and collaboration diagrams with superimposed interactions, on the other.
En savoir plus

17 En savoir plus

Integrated Environment for Verifying and Running Distributed Components

Integrated Environment for Verifying and Running Distributed Components

7 Discussion and Perspectives In this paper we presented our integrated environment for designing and im- plementing safe component-based systems. Our approach includes three main aspects. First, we provide graphical formalisms for the application architecture and the behavior specification, as well as type abstractions. The formalism ex- tensively uses UML models that makes it easy to learn and use for the program- mer. Second, we ensure behavioral correctness, by running a model-checker on the specified model. In practice, we transform graphical models into input for the CADP model-checker. As a result, the user can verify correctness properties of the modeled system even if he does not have a strong expertise in formal methods. Finally, we transform the models into executable application code. We implemented our approach in the VerCors platform and we tested it by modeling, verifying, and executing Peterson’s leader election algorithm. Our approach was illustrated by generating GCM/ProActive code but it would be easy to generate code for any actor or active-object based language, or more generally any pro- gramming model made of components interacting by asynchronous requests and replies. Beyond the academic example of this paper, we have also published a study of a fault-tolerant protocol [25], showing how to handle scalability issues in the model-checking activities. In another paper, we showed an industrial-inspired study [26] in which we handle large state-spaces modeling an application with dynamic reconfiguration of components.
En savoir plus

18 En savoir plus

CoSim20: An Integrated Development Environment for Accurate and Efficient Distributed Co-Simulations

CoSim20: An Integrated Development Environment for Accurate and Efficient Distributed Co-Simulations

The proposed language and framework are detailed in the next sections. III. C O S IM 20 M ODELING E NVIRONMENT Figure 2 gives an overview of the proposed framework. There are two distinct parts: one part dedicated to the modeling of the co-simulation by using the language provided in the CoSim20 modeling environment; and one part dedicated to the co-simulation itself in the distributed CoSim20 Runtime framework. In the modeling environment, the development starts by importing a set of existing simulation units with their native runtime API. A coordination interface is then defined for each simulation unit, exposing appropriate properties like input/outputs and their nature (see next subsection). Then, the interface is used to define rich connectors which specify the intention of the coordination (see section III-B). Based on such model, the framework automatically generates for each simulation unit a Runtime Coordination API and an algorithm that handles the model execution through its native runtime API. The runtime coordination API makes use of a set of distributed queues (generated and configured during the automatic generation phase) to exchange actions to be realized by other simulation units in order to realize the coordination. A distributed master algorithm emerges from such exchanges. A. Coordination Interface
En savoir plus

9 En savoir plus

Leveraging streaming for deterministic parallelization: an integrated language, compiler and runtime approach

Leveraging streaming for deterministic parallelization: an integrated language, compiler and runtime approach

Common to all of these models and, to the best of our knowledge, more generally to stream programming models, is the notion that the computation is driven by the avail- ability of sufficient input data 1 . The OpenMP extension for stream-computing, presented in the first chapter of this thesis, extends the OpenMP task-parallel programming model in a way that is also similar, in certain aspects, to KPNs. Intuitively, the difference lies in the fact that, in our model, the main OpenMP program specifies both data-flow and control-flow, so instead of providing a work-function to be applied to data from some input streams, we know that this work-function must be applied a specific number of times. One way to handle this would be to rely on if-conversion, creating an additional input stream to encode the control-dependence, but this stream needs to be given a special status as it does not represent only an upper bound on the number of iterations to execute, but also a strict lower bound. This behaviour conflicts with Kahn semantics, as there can be a discrepancy between the required number of firings mandated by the control flow and the least fixed point solution to a feedback-loop a process belongs to. In our model, this generally leads to deadlocks, which we consider to be functional in that they result from discrepancies between the control-flow and the data-flow in the source program.
En savoir plus

282 En savoir plus

Cognitive Advantage in Children Enrolled in a Second-Language Immersion Elementary School Program for One Year

Cognitive Advantage in Children Enrolled in a Second-Language Immersion Elementary School Program for One Year

Besides studies having investigated cog- nitive advantages of early bilingualism acquired in the home or other community settings, further studies were interested in examining potential cognitive advantages in children learning an L2 at school using teaching programs, such as the “Content and languageIntegrated learning method” (CLIL) (Bialystok & Barac, 2012; Carlson & Meltzoff, 2008; Kalashnikova & Mattock, 2014; Kaushanskaya, Gross, & Buac, 2014; Nicolay & Poncelet, 2013a, 2015; Poarch & van Hell, 2012; Simonis, Van der Linden, Galand, Hiligsmann, & Szmalec, 2019; Woumans, Surmont, & Struys, 2016). One of the key characteristics of the CLIL program is that L2 is not taught as a foreign language. Instead, it is used to teach other academic subjects. Moreover, L2 English classes are taught either by L2 native-like teachers or by individuals with equivalent native-like L2 mastery (Comblain & Rondal, 2001). Since its development in the beginning of 1960s in Canada, the number of schools (in different countries around the world) implementing a CLIL program has increased dramatically (Bjorklund, 1997; O Duibhir, 2009). The CLIL method is of particular interest in bilingual research because it offers the opportunity to assess cognitive L2 effects under particu- larly homogenous learning conditions. In this program, children enter without any L2 knowledge, receive the same type and
En savoir plus

20 En savoir plus

SISYPHE - An Integrated Development Environment for System Designing and Performing Simulations

SISYPHE - An Integrated Development Environment for System Designing and Performing Simulations

SISYPHE can only permit to program small systems (about several ten nodes at maximum). The next step is to develop new functionalities to program big systems (several thousand and even million nodes) and so, graphs and rules must be generated automatically. In order to reduce running times, grid computing must be used [6]. The applications are directed at image processing and computer vision where each pixel is a node of the system graph [7]. In the long term, our hope is to program and simulate perception and vision systems inspired by the human perception system.
En savoir plus

10 En savoir plus

ATSyRa: An Integrated Environment for Synthesizing Attack Trees

ATSyRa: An Integrated Environment for Synthesizing Attack Trees

3 ATSyRa: Tooling the Approach We implement an environment, called ATSyRA , for realizing the methodology previ- ously introduced. Our experience for assessing the physical security of military build- ings 2 motivated its design. The tool assists practitioners in synthesizing attack trees from the high-level description of the system. In our case, we develop a domain-specific language (DSL) for expressing military buildings. Other DSLs can be considered as well. ATSyRA 3 is implemented on top of Eclipse and offers to experts different facili- ties (DSLs’ services like editors and automated reasoning support). Box (0) in Figure 1 is a screen-shot of the ATSyRA environment, with windows À-Ã, which we now detail. À Experts define the system in a dedicated, textual or graphical language, called a
En savoir plus

6 En savoir plus

Content and language integrated learning in Vietnam: evolution of students' and teachers' perceptions in an innovative foreign language learning system

Content and language integrated learning in Vietnam: evolution of students' and teachers' perceptions in an innovative foreign language learning system

2. My own journey from a language learner to the CLIL project Being raised and educated in a very traditional way, I can describe myself as a typical Vietnamese student. My parents value education highly and always did everything possible to provide me with a good education. I remember that every book in my house needed to be wrapped and stored very carefully. As a little child, I was obedient – a very positive word to describe a child in Vietnam. I listened attentively to the teachers and never questioned them. I worked hard and was a high-achieving student at all levels. As a result, I was always selected for the schools or classes for high-achieving students. When I entered high school, I was oriented to choose English as a major by my parents because “English is the key to opening the door to the world”, as they said. At high school, I was taught all the very difficult grammatical rules. The teacher explained them in Vietnamese. Hardly ever did we practice speaking or listening. Our main learning activities were memorising rules, learning new words, and even memorising English texts in the textbooks. As a result, I could not speak a word of English and could not understand spoken English. Still, I got high results in the entrance exam to the university because the exam only tested English grammar and reading skills. When I entered university, with that family tradition which values education highly, I chose a pedagogical school to become a teacher.
En savoir plus

256 En savoir plus

Source-to-Source Automatic Program Transformations for GPU-like Hardware Accelerators

Source-to-Source Automatic Program Transformations for GPU-like Hardware Accelerators

J’ai étudié plusieurs méthodes de remplacement de tableaux par des scalaires dans le contexte de la pratique du GPGPU à la Section 4.7, page 127, et j’ai modifié l’implémentation de PIPS [r]

351 En savoir plus

Facilitating the Exploration of Compositions of Program Transformations

Facilitating the Exploration of Compositions of Program Transformations

Cet article a pour but d’introduire un cadre général pour exprimer facilement des com- positions de transformations de programme. Ce cadre général est fondé sur une représenta- tion polyédrique unifiée des boucles et des instructions. L’idée directrice consiste a séparer radicalement l’impact de chaque transformation sur les trois composantes suivantes : le do- maine d’itération, l’ordondancement, et les fonctions d’accès à la mémoire. Nous montrons que, dans ce cadre général de travail, composer des transformations selon une longue sé- quence n’induit pas d’explosion de la taille du code. Ainsi, la recherche de compositions de transformations n’est pas limitée par la multiplicité des compositions, et bien souvent, elle apparaît comme équivalente a l’essai de différentes valeurs pour les coefficients des matrices de la représentation. Nos techniques sont implémentées dans l’environnement du compilateur Open64/ORC.
En savoir plus

33 En savoir plus

Language Deficiency in Moderately Deaf Adolescents: An Environment based Perspective

Language Deficiency in Moderately Deaf Adolescents: An Environment based Perspective

Introduction This chapter illustrates two important theories that are concerned with communicative competence and social interaction. Firstly, it contains an overview of Dell Hymes’ theory and the history behind the term communicative competence. Furthermore, the basic rules for effective communication. Moreover, the questions that are suggested in Dell Hymes’ model for using language properly. Secondly, the second theory is Vygotsky’s sociocultural theory of cognitive development. This section explains the main elements of the theory. Besides, the process of development of the child’s mental functions from elementary to higher mental functions. Then, there are the fundamental themes of sociocultural theory, including key terms as MKO, ZPD, Scaffolding and Mediation. Finally, the chapter includes some figures and tables that clarify some complex concepts about both theories.
En savoir plus

65 En savoir plus

A new effective dynamic program for an investment optimization problem

A new effective dynamic program for an investment optimization problem

three sets of numbers: a set of break points I (at each break point, a new linear segment of the piecewise linear function ends), a set of slopes U and a set of values of the function at the beginning of the intervals B. Let I[k] denote the k-th element of the ordered set I. The same notations will be used for the sets U and B as well. The notation ϕ.I[k] denotes the k-th element of the set I of the function ϕ(x). Then, for example, for x ∈ (t k−1 j , t k

22 En savoir plus

Decision Representation Language (DRL) and Its Support Environment

Decision Representation Language (DRL) and Its Support Environment

I define viewpoint management as the set of services responsible for creating and manipulating a viewpoint, which is in turn defined as an object that groups objects which[r]

56 En savoir plus

Show all 10000 documents...