108 research outputs found

    La linguistique au contact de l'informatique : de la construction des grammaires aux grammaires de construction

    Get PDF
    National audienceLes auteurs proposent un essai d'histoire rationnelle d'un aspect du programme gĂ©nĂ©ratif dans sa relation Ă  l'informatique, celui qui va de la dĂ©finition de la notion de grammaire par Chomsky, et en particulier de la caractĂ©risation mathĂ©matique des grammaires possibles (la linguistique algĂ©brique), Ă  la conception de grammaires multidimensionnelles qui trouvent dans les systĂšmes de reprĂ©sentation des connaissances leur fondation formelle. Les auteurs distinguent trois moments : (a) l'Ă©mergence du programme gĂ©nĂ©ratif et de la notion de grammaire gĂ©nĂ©rative ; (b) le mouvement de rĂ©forme qui se cristallise dans le refus de la forme transformationnelle de la grammaire et qui voit l'invention de nombreux nouveaux formalismes qui auront tous la caractĂ©ristique d'ĂȘtre dĂ©claratifs ; (c) le dĂ©veloppement des grammaires multidimensionnelles qui sont chargĂ©es d'intĂ©grer les analyses des dimensions formelles (syntaxe et phonologie) et non formelles (sĂ©mantique, pragmatique) des langues

    Programmation sĂ»re de plates-formes embarquĂ©es de type multi/pluri-cƓurs

    Get PDF
    The purpose of this document is to describe an overview of my work on the topic of "programming mutli/many-core COTS in the context of aeronautics" and to propose future research work.L’objectif de ce document est de dĂ©crire une synthĂšse des travaux que j’ai menĂ©s autour du thĂšme de "la programmation sĂ»re de plates-formes embarquĂ©es" et de proposer des perspectives de recherche pour les annĂ©es Ă  venir

    Génération modulaire de grammaires formelles

    Get PDF
    The work presented in this thesis aim at facilitating the development of resources for natural language processing. Resources of this type take different forms, because of the existence of several levels of linguistic description (syntax, morphology, semantics, . . . ) and of several formalisms proposed for the description of natural languages at each one of these levels. The formalisms featuring different types of structures, a unique description language is not enough: it is necessary to create a domain specific language (or DSL) for every formalism, and to implement a new tool which uses this language, which is a long a complex task. For this reason, we propose in this thesis a method to assemble in a modular way development frameworks specific to tasks of linguistic resource generation. The frameworks assembled thanks to our method are based on the fundamental concepts of the XMG (eXtensible MetaGrammar) approach, allowing the generation of tree based grammars. The method is based on the assembling of a description language from reusable bricks, and according to a unique specification file. The totality of the processing chain for the DSL is automatically assembled thanks to the same specification. In a first time, we validated this approach by recreating the XMG tool from elementary bricks. Some collaborations with linguists also brought us to assemble compilers allowing the description of morphology and semantics.Les travaux prĂ©sentĂ©s dans cette thĂšse visent Ă  faciliter le dĂ©veloppement de ressources pour le traitement automatique des langues. Les ressources de ce type prennent des formes trĂšs diverses, en raison de l’existence de diffĂ©rents niveaux d’étude de la langue (syntaxe, morphologie, sĂ©mantique,. . . ) et de diffĂ©rents formalismes proposĂ©s pour la description des langues Ă  chacun de ces niveaux. Les formalismes faisant intervenir diffĂ©rents types de structures, un unique langage de description n’est pas suffisant : il est nĂ©cessaire pour chaque formalisme de crĂ©er un langage dĂ©diĂ© (ou DSL), et d’implĂ©menter un nouvel outil utilisant ce langage, ce qui est une tĂąche longue et complexe. Pour cette raison, nous proposons dans cette thĂšse une mĂ©thode pour assembler modulairement, et adapter, des cadres de dĂ©veloppement spĂ©cifiques Ă  des tĂąches de gĂ©nĂ©ration de ressources langagiĂšres. Les cadres de dĂ©veloppement crĂ©Ă©s sont construits autour des concepts fondamentaux de l’approche XMG (eXtensible MetaGrammar), Ă  savoir disposer d’un langage de description permettant la dĂ©finition modulaire d’abstractions sur des structures linguistiques, ainsi que leur combinaison non-dĂ©terministe (c’est Ă  dire au moyen des opĂ©rateurs logiques de conjonction et disjonction). La mĂ©thode se base sur l’assemblage d’un langage de description Ă  partir de briques rĂ©utilisables, et d’aprĂšs un fichier unique de spĂ©cification. L’intĂ©gralitĂ© de la chaĂźne de traitement pour le DSL ainsi dĂ©fini est assemblĂ©e automatiquement d’aprĂšs cette mĂȘme spĂ©cification. Nous avons dans un premier temps validĂ© cette approche en recrĂ©ant l’outil XMG Ă  partir de briques Ă©lĂ©mentaires. Des collaborations avec des linguistes nous ont Ă©galement amenĂ© Ă  assembler des compilateurs permettant la description de la morphologie de l’Ikota (langue bantoue) et de la sĂ©mantique (au moyen de la thĂ©orie des frames)

    IngĂ©nierie DirigĂ©e par les ModĂšles (IDM) -- État de l'art

    Get PDF
    L'ingĂ©nierie dirigĂ©e par les modĂšles (IDM), ou Model Driven Engineering (MDE) en anglais, a permis plusieurs amĂ©liorations significatives dans le dĂ©veloppement de systĂšmes complexes en permettant de se concentrer sur une prĂ©occupation plus abstraite que la programmation classique. Il s'agit d'une forme d'ingĂ©nierie gĂ©nĂ©rative dans laquelle tout ou partie d'une application est engendrĂ©e Ă  partir de modĂšles. Un modĂšle est une abstraction, une simplification d'un systĂšme qui est suffisante pour comprendre le systĂšme modĂ©lisĂ© et rĂ©pondre aux questions que l'on se pose sur lui. Un systĂšme peut ĂȘtre dĂ©crit par diffĂ©rents modĂšles liĂ©s les uns aux autres. L'idĂ©e phare est d'utiliser autant de langages de modĂ©lisation diffĂ©rents (Domain Specific Modeling Languages - DSML) que les aspects chronologiques ou technologiques du dĂ©veloppement du systĂšme le nĂ©cessitent. La dĂ©finition de ces DSML, appelĂ©e mĂ©tamodĂ©lisation, est donc une problĂ©matique clĂ© de cette nouvelle ingĂ©nierie. Par ailleurs, afin de rendre opĂ©rationnels les modĂšles (pour la gĂ©nĂ©ration de code, de documentation et de test, la validation, la vĂ©rification, l'exĂ©cution, etc.), une autre problĂ©matique clĂ© est celle de la transformation de modĂšle. Nous proposons dans ce document une prĂ©sentation des principes clĂ©s de cette nouvelle ingĂ©nierie. Nous introduisons dans un premier temps la notion de modĂšle, les travaux de normalisation de l'OMG, et les principes de gĂ©nĂ©ralisation offerts Ă  travers les DSML. Nous dĂ©taillons ensuite les deux axes principaux de l'IDM. La mĂ©tamodĂ©lisation d'abord, dont le but est d'assurer une dĂ©finition correcte des DSML. Nous illustrons cette partie par la dĂ©finition de SimplePDL, un langage simple de description de procĂ©dĂ© de dĂ©veloppement. Nous prĂ©sentons ensuite les principes de la transformation de modĂšle et les outils actuellement disponibles. Nous concluons enfin par une discussion sur les limites actuelles de l'IDM

    Un cadre formel pour le développement orienté aspect : modélisation et vérification des interactions dues aux aspects

    Full text link
    ThÚse numérisée par la Division de la gestion de documents et des archives de l'Université de Montréal

    Prévention et détection des interférences inter-aspects (méthode et application à l'aspectisation de la tolérance aux fautes)

    Get PDF
    La programmation orientĂ©e aspects (POA) sĂ©pare les diffĂ©rentes prĂ©occupations composant un systĂšme informatique pour amĂ©liorer la modularitĂ©. La POA offre de nombreux bĂ©nĂ©fices puisqu'elle permet de sĂ©parer le code fonctionnel du code non-fonctionnel amĂ©liorant ainsi leur rĂ©utilisation et la configurabilitĂš des systĂšmes informatiques. La configurabilitĂ© est un Ă©lĂ©ment essentiel pour assurer la rĂ©silience des systĂšmes informatiques, puisqu elle permet de modifier les mĂ©canismes de sĂ»retĂ© de fonctionnement. Cependant le paradigme de programmation orientĂ©e aspect introduit de nouveaux dĂ©fis pour le test. Dans les systĂšmes de grande taille oĂč plusieurs prĂ©occupations non fonctionnelles cohabitent, une implĂ©mentation Ă  l'aide d'aspects de ces prĂ©occupations peut ĂȘtre problĂ©matique. Partageant le mĂȘme flot de donnĂ©es et le mĂȘme flot de contrĂŽle les aspects implĂ©mentant les diffĂ©rentes prĂ©occupations peuvent Ă©crire dans des variables lues par d'autres aspects ou interrompre le flot de contrĂŽle commun aux diffĂ©rents aspects empĂȘchant ainsi l'exĂ©cution de certains d'entre eux. Dans cette thĂšse nous nous intĂ©ressons plus spĂ©cifiquement aux interfĂ©rences entre aspects dans le cadre du dĂ©veloppement de mĂ©canismes de tolĂ©rance aux fautes implĂ©mentĂ©s sous forme d aspects. Ces interfĂ©rences sont dues Ă  une absence de dĂ©claration de prĂ©cĂ©dence entre les aspects ou Ă  une dĂ©claration de prĂ©cĂ©dence erronĂ©e. Afin de mieux maĂźtriser l assemblage des diffĂ©rents aspects composant un mĂ©canisme de tolĂ©rance aux fautes, nous avons dĂ©veloppĂ© une mĂ©thode alliant l'Ă©vitement Ă  la dĂ©tection des interfĂ©rences au niveau du code. Le but de l'Ă©vitement est d'empĂȘcher l'introduction d'interfĂ©rences en imposant une dĂ©claration de prĂ©cĂ©dence entre les aspects lors de l'intĂ©gration des aspects. La dĂ©tection permet d'exhiber lors du test les erreurs introduites dans la dĂ©claration des prĂ©cĂ©dences. Ces deux facettes de notre approche sont rĂ©alisĂ©es grĂące Ă  l utilisation d une extension d'AspectJ appelĂ©e AIRIA. Les constructions d'AIRIA permettent l instrumentation et donc la dĂ©tection des interfĂ©rences entre aspects, avec des facilitĂ©s de compilation permettant de mettre en Ɠuvre l Ă©vitement d interfĂ©rences. Notre approche est outillĂ©e et vise Ă  limiter le temps de dĂ©boguage : le testeur peut se concentrer directement sur les points oĂč une interfĂ©rence se produit. Nous illustrons notre approche sur une Ă©tude de cas: un protocole de rĂ©plication duplex. Dans ce contexte le protocole est implĂ©mentĂ© en utilisant des aspects Ă  grain fin permettant ainsi une meilleure configurabilitĂ© de la politique de rĂ©plication. Nous montrons que l'assemblage de ces aspects Ă  grain fin donne lieu Ă  des interfĂ©rences de flot de donnĂ©es et flot de contrĂŽle qui sont dĂ©tectĂ©es par notre approche d'instrumentation. Nous dĂ©finissons un ensemble d'aspects interfĂ©rant pour l'exemple, et nous montrons comment notre approche permet la dĂ©tection d'interfĂ©rences.Aspect-oriented programming (AOP) separates the different concerns of a computer software system to improve modularity. AOP offers many benefits since it allows separating the functional code from the non-functional code, thus improving reuse and configurability of computer systems. Configurability is essential to ensure the resilience of computer systems, since it allows modifying the dependability mechanisms. However, the paradigm of aspectoriented programming introduces new challenges regarding testing. In large systems where multiple non-functional concerns coexist, an AOP implementation of these concerns can be problematic. Sharing the same data flow and the same control flow, aspects implementing different concerns can write into variables read by other aspects, or interrupt the control flow involving various aspects, and thus preventing the execution of some aspects in the chain. In this work we focus more specifically on interference between aspects implementing fault tolerance mechanisms. This interference is due to a lack of declaration of fine-grain precedence between aspects or an incorrect precedence declaration. To better control the assembly of the various aspects composing fault tolerance mechanisms, we have developed a method combining avoidance of interferences with runtime detection interferences at code level. The purpose of avoidance is to prevent the introduction of interference by requiring a statement of precedence between aspects during the aspects integration. Detection allows exhibiting during the test, errors introduced in the precedence statement. These two aspects of our approach are performed through the use of an extension called AspectJ AIRIA. AIRIA s constructs allow instrumentation and therefore the detection of interference between aspects, with facilities compilation to implement the interference avoidance. Our approach is designed and equipped to limit the debugging time : the tester can focus directly on the points where an interference occurs. Finaly, we illustrate our approach on a case study : a duplex replication protocol. In this context, the protocol is implemented using fine grained aspects allowing a better configurability of the replication policy.We show that the assembly of these fine-grained aspects gives rise to interference data flow and control flow that are detected by our instrumentation approach. We define a set of interfering aspects in this example, and show how our approach allows the detection of interferences.TOULOUSE-INP (315552154) / SudocSudocFranceF

    Prévention et détection des interférences inter-aspects : méthode et application à l'aspectisation de la tolérance aux fautes

    Get PDF
    La programmation orientĂ©e aspects (POA) sĂ©pare les diffĂ©rentes prĂ©occupations composant un systĂšme informatique pour amĂ©liorer la modularitĂ©. La POA offre de nombreux bĂ©nĂ©fices puisqu'elle permet de sĂ©parer le code fonctionnel du code non-fonctionnel amĂ©liorant ainsi leur rĂ©utilisation et la configurabilitĂš des systĂšmes informatiques. La configurabilitĂ© est un Ă©lĂ©ment essentiel pour assurer la rĂ©silience des systĂšmes informatiques, puisqu’elle permet de modifier les mĂ©canismes de sĂ»retĂ© de fonctionnement. Cependant le paradigme de programmation orientĂ©e aspect introduit de nouveaux dĂ©fis pour le test. Dans les systĂšmes de grande taille oĂč plusieurs prĂ©occupations non fonctionnelles cohabitent, une implĂ©mentation Ă  l'aide d'aspects de ces prĂ©occupations peut ĂȘtre problĂ©matique. Partageant le mĂȘme flot de donnĂ©es et le mĂȘme flot de contrĂŽle les aspects implĂ©mentant les diffĂ©rentes prĂ©occupations peuvent Ă©crire dans des variables lues par d'autres aspects ou interrompre le flot de contrĂŽle commun aux diffĂ©rents aspects empĂȘchant ainsi l'exĂ©cution de certains d'entre eux. Dans cette thĂšse nous nous intĂ©ressons plus spĂ©cifiquement aux interfĂ©rences entre aspects dans le cadre du dĂ©veloppement de mĂ©canismes de tolĂ©rance aux fautes implĂ©mentĂ©s sous forme d’aspects. Ces interfĂ©rences sont dues Ă  une absence de dĂ©claration de prĂ©cĂ©dence entre les aspects ou Ă  une dĂ©claration de prĂ©cĂ©dence erronĂ©e. Afin de mieux maĂźtriser l’assemblage des diffĂ©rents aspects composant un mĂ©canisme de tolĂ©rance aux fautes, nous avons dĂ©veloppĂ© une mĂ©thode alliant l'Ă©vitement Ă  la dĂ©tection des interfĂ©rences au niveau du code. Le but de l'Ă©vitement est d'empĂȘcher l'introduction d'interfĂ©rences en imposant une dĂ©claration de prĂ©cĂ©dence entre les aspects lors de l'intĂ©gration des aspects. La dĂ©tection permet d'exhiber lors du test les erreurs introduites dans la dĂ©claration des prĂ©cĂ©dences. Ces deux facettes de notre approche sont rĂ©alisĂ©es grĂące Ă  l’utilisation d’une extension d'AspectJ appelĂ©e AIRIA. Les constructions d'AIRIA permettent l’instrumentation et donc la dĂ©tection des interfĂ©rences entre aspects, avec des facilitĂ©s de compilation permettant de mettre en Ɠuvre l’évitement d’interfĂ©rences. Notre approche est outillĂ©e et vise Ă  limiter le temps de dĂ©boguage : le testeur peut se concentrer directement sur les points oĂč une interfĂ©rence se produit. Nous illustrons notre approche sur une Ă©tude de cas: un protocole de rĂ©plication duplex. Dans ce contexte le protocole est implĂ©mentĂ© en utilisant des aspects Ă  grain fin permettant ainsi une meilleure configurabilitĂ© de la politique de rĂ©plication. Nous montrons que l'assemblage de ces aspects Ă  grain fin donne lieu Ă  des interfĂ©rences de flot de donnĂ©es et flot de contrĂŽle qui sont dĂ©tectĂ©es par notre approche d'instrumentation. Nous dĂ©finissons un ensemble d'aspects interfĂ©rant pour l'exemple, et nous montrons comment notre approche permet la dĂ©tection d'interfĂ©rences. ABSTRACT : Aspect-oriented programming (AOP) separates the different concerns of a computer software system to improve modularity. AOP offers many benefits since it allows separating the functional code from the non-functional code, thus improving reuse and configurability of computer systems. Configurability is essential to ensure the resilience of computer systems, since it allows modifying the dependability mechanisms. However, the paradigm of aspectoriented programming introduces new challenges regarding testing. In large systems where multiple non-functional concerns coexist, an AOP implementation of these concerns can be problematic. Sharing the same data flow and the same control flow, aspects implementing different concerns can write into variables read by other aspects, or interrupt the control flow involving various aspects, and thus preventing the execution of some aspects in the chain. In this work we focus more specifically on interference between aspects implementing fault tolerance mechanisms. This interference is due to a lack of declaration of fine-grain precedence between aspects or an incorrect precedence declaration. To better control the assembly of the various aspects composing fault tolerance mechanisms, we have developed a method combining avoidance of interferences with runtime detection interferences at code level. The purpose of avoidance is to prevent the introduction of interference by requiring a statement of precedence between aspects during the aspects integration. Detection allows exhibiting during the test, errors introduced in the precedence statement. These two aspects of our approach are performed through the use of an extension called AspectJ AIRIA. AIRIA ‘s constructs allow instrumentation and therefore the detection of interference between aspects, with facilities compilation to implement the interference avoidance. Our approach is designed and equipped to limit the debugging time : the tester can focus directly on the points where an interference occurs. Finaly, we illustrate our approach on a case study : a duplex replication protocol. In this context, the protocol is implemented using fine grained aspects allowing a better configurability of the replication policy.We show that the assembly of these fine-grained aspects gives rise to interference data flow and control flow that are detected by our instrumentation approach. We define a set of interfering aspects in this example, and show how our approach allows the detection of interferences
    • 

    corecore