313 research outputs found

    Apports de la modélisation algébrique pour la représentation de connaissances par objets : illustration en AROM

    Get PDF
    National audienceAROM est un systĂšme de reprĂ©sentation de connaissances reposant, Ă  l'image des diagrammes de classes d'UML, sur deux types d'entitĂ©s de modĂ©lisation complĂ©mentaires : les classes et les associations. Il intĂšgre un langage de modĂ©lisation algĂ©brique (ou LMA) qui sert de support Ă  diffĂ©rents mĂ©canismes d'infĂ©rence. Ce langage permet l'Ă©criture d'Ă©quations, de contraintes, et de requĂȘtes, impliquant les instances des classes et des associations. La prĂ©sence d'un module de types en AROM permet d'Ă©tendre l'ensemble des types (donc des valeurs et des opĂ©rateurs) supportĂ©s par le LMA. A travers la description du LMA d'AROM, cet article souligne l'apport d'un langage de modĂ©lisation algĂ©brique pour un systĂšme de reprĂ©sentation de connaissances tant au niveau de la dĂ©clarativitĂ© qu'en termes des infĂ©rences possibles

    Une approche formelle de l'interopérabilité pour une famille de langages dédiés

    Get PDF
    In this thesis, we introduce a rigorous formally founded method to address the interoperability of a family of domain specific languages (DSLs). Our approach targets DSLs from the same business domain and consists in constructing a unifying language. The unification is obtained by using a categorical approach. For this, we use the category of algebraic specifications of each language in the family. On this category, we apply the colimit on algebraic specifications of each DSL to generate their unifying. This approach allows us to obtain a set of translators from each family member to the unifying language. Moreover, properties established in the context of a language of the family are transferred to the unifier. The approach experimented in the context of the Specware software for categorical computations and of the Isabelle proof assistant.Dans cette thĂšse, nous proposons une mĂ©thode rigoureuse, formellement fondĂ©e pour traiter de l'interopĂ©rabilitĂ© d'une famille de langages dĂ©diĂ©s (DSL) issus d'un mĂȘme domaine mĂ©tier. A partir de la sĂ©mantique de chacun des DSL, notre dĂ©marche construit, par un calcul de co-limite sur des spĂ©cifications algĂ©briques, un langage qui unifie les concepts de la famille. L'approche se caractĂ©rise notamment par la capacitĂ© Ă  traduire automatiquement le code d'un DSL vers le langage unificateur. Un autre bĂ©nĂ©fice rĂ©side dans la preuve qu'une propriĂ©tĂ© sur un langage de la famille se dĂ©cline, par construction, vers l'environnement unifiĂ©. La mise en Ɠuvre de la dĂ©marche a Ă©tĂ© outillĂ©e ; elle s'appuie principalement sur le logiciel Specware de Kestrel et l'assistant de preuve Isabelle

    Une Plate Forme Logique de Spécification et de Preuve de Programmes ML

    Get PDF
    Nous verrons ici la présentation d'un systÚme logique dédié à la spécification et la preuve de programmes ML. La spécificité de ce systÚme est de chercher à avoir une approche simple et "orientée programmation" de la preuve. Ce systÚme est fondé sur un calcul des prédicats au premier ordre, enrichi par des constructions ML habituelles. Nous montrerons ensuite que ce systÚme est cohérent en le plongeant dans une théorie des types au deuxiÚme ordre

    Mathématiques et programmation analyse des besoins et inventaire de ressources au collégial /

    Get PDF
    "Ce projet constitue le troisiĂšme volet d'une recherche portant sur les applications de l'ordinateur dans l'enseignement et l'apprentissage des mathĂ©matiques au collĂ©gial"Également disponible en version papierTitre de l'Ă©cran-titre (visionnĂ© le 5 dĂ©c. 2009)Bibliogr

    ModÚle de coopération entre calcul formel et calcul numérique pour la simulation et l'optimisation des systÚmes

    Get PDF
    AprÚs avoir étudié les collaborations établies aujourd'hui entre différents environnements de résolution de problÚmes, le manuscrit propose un modÚle de conception d'un systÚme de calcul basé sur la coopération entre calcul formel et numérique. Cette coopération entre différents sous-systÚmes de calcul est de type complémentaire : les rÎles sont définis a priori. Suivant une démarche orientée modÚle, le modÚle de coopération est spécifié en UML 2.0 selon la vue structurelle et la vue comportementale. A partir du modÚle conceptuel, nous définissons les rÚgles de transformation pour produire le modÚle d'implémentation spécifique de la "plate-forme" FORTRAN 90. Au vu des résultats d'études particuliÚres en génie des procédés - la solvatation d'acides forts, et la distillation de Rayleigh- il apparaßt que la démarche de calcul coopératif proposée : apporte plus d'expressivité lors de la modélisation; incite à modéliser les systÚmes physiques à l'aide de fonctions, souvent implicites; permet la réutilisation de modÚles par la composition et l'assemblage de fonctions; et apporte plus de fiabilité lors de la simulation, notamment grùce au calcul précis des dérivées des modÚles. ABSTRACT : After investigating state-of-the-art collaborations between various environments aimed at system resolution, this paper presents a design model for a calculation system based on the co-operation of formal and numerical calculations. This co-operation between multiple sub-systems is complementary: the roles are defined a priori. Following an object-oriented approach, the model is specified via UML 2.0, in terms of the structural and behavioural views. From the conceptual model, we define the transformation rules required to create the implementation - specific model for the FORTRAN 90 platform. From the results witnessed within specific process engineering studies - namely the solvation of strong acids and Rayleigh's distillation - it can be seen that this co-operative approach: empowers us with an improved expressivity at the modelling stage; instigates physical modelling using (often implicit) functions; allows model re-use through function aggregation and assembly; and brings a greater reliability during simulation, notably as a result of the precise calculation of derivatives of the mode

    Analyse critique de la notion de variable. Points de vue sémiotique et formel

    Get PDF
    For B. Russell “The variable is perhaps the most distinctively mathematical of all notions ; it is certainly also one of the most difficult to understand” (The Principles of Mathematics, 1903). The aim of this paper is to highlight the meaning of variable in different fields of Mathematics: the expression of equations in Algebra with indeterminate entities; the analytical expression of functions in Analysis; the expression of quantification in Logic
 We give a historical survey of this notion from ViĂšte and Descartes to Frege’s representations of a concept, viewed as a non numerical function, yielding to the modern theory of quantification in first order languages. On one hand, the Peirce’s theory of signs, and on the other hand, with Church’s functional types, λ-calculus “with bound variables” and Curry’s combinatory logic “without bound variables”, are very useful tools for investigating different kinds of variables in Mathematics, in Logic and in theoretical Computer Sciences. For instance, it was showed that “bound variables” were not semiotic tools necessary to formulate quantification (in Frege’s sense) in “classical” Logic. Indeed, a simple quantifier is an operator which applies to a predicate by building a proposition; restricted quantifiers are derived from simple quantifiers by formal combinations with logical connectors (conditional or conjunction operators). We propose to take into account and to formalize, inside the framework of Combinatory Logic with types, (i) the “old logical notions” of “extension / intension”; (ii) determination operations from Port Royal’s Logic; (iii) the distinction from the anthropology and cognitive psychology between “typical” and “atypical” instances of a concept, which brings us to define new quantifiers, called “star quantifiers”, conceived as determination operators acting on terms. These quantifiers are more adequate than the fregean quantifiers, for a natural languages processing. Thus, we are able to give a conceptual distinction between the meanings of “Whatever” and “Indeterminate”, implicitly used in Gentzen’s Natural Deduction; thanks to this distinction, we can clarify an apparent “paradox” emerging with the universal quantifier introduction rule.Pour B. Russell, la variable est peut-ĂȘtre une des notions les plus difficiles Ă  comprendre en mathĂ©matiques (The Principles of Mathematics, 1903). En effet, la variable est fondamentalement polysĂ©mique. Sa signification varie avec les domaines d’utilisation ; tantĂŽt elle est utilisĂ©e pour indiquer une indĂ©termination d’un signe dans une Ă©quation ; tantĂŽt elle sert Ă  dĂ©crire analytiquement une fonction en Analyse, tantĂŽt, on l’utilise en logique pour exprimer la quantification au moyen de « variables liĂ©es ». Nous donnons une brĂšve analyse historique de l’évolution de cette notion en mathĂ©matiques, depuis sa crĂ©ation avec l’AlgĂšbre de ViĂšte et Descartes pour l’expression des Ă©quations, jusqu’à la reprĂ©sentation formelle d’un concept, formalisĂ© par Frege comme une fonction non numĂ©rique, ce qui a donnĂ© naissance aux modernes langages du premier ordre. D’une part, la thĂ©orie des signes de Peirce et d’autre part, les types fonctionnels de Church, le λ-calcul « avec variables liĂ©es » ainsi que la logique combinatoire de Curry « sans variables liĂ©es », sont d’excellents instruments qui sont convoquĂ©s pour examiner les diffĂ©rentes sortes de variables aussi bien en mathĂ©matiques, qu’en logique ou en informatique thĂ©orique. Par exemple, nous montrons que la notion de « variable liĂ©e » n’est pas nĂ©cessaire pour la formulation de la quantification en logique et son analyse dans le fonctionnement des langues naturelles : un quantificateur simple est avant tout un opĂ©rateur qui s’applique Ă  un prĂ©dicat afin de construire une proposition ; un quantificateur restreint est dĂ©rivĂ© d’un quantificateur simple, obtenu par une composition fonctionnelle avec un connecteur logique (les opĂ©rateurs d’implication ou de conjonction). Nous proposons de prendre en compte et de formaliser Ă  l’intĂ©rieur du cadre formel de la logique combinatoire typĂ©e :(i) les « vielles notions » logiques « extension / intension », (ii) les distinctions issues de la psychologie cognitive et de l’anthropologie, entre les exemplaires « typiques » ou « atypiques » d’un concept, (iii) l’opĂ©ration de dĂ©termination » de la Logique de Port Royal,, ce qui nous a conduit Ă  dĂ©finir les quantificateurs « star », considĂ©rĂ©s comme des opĂ©rateurs qui viennent apporter des dĂ©terminations supplĂ©mentaires aux termes, en particulier aux termes nominaux. Ces nouveaux quantificateurs sont plus adĂ©quats Ă  l’analyse logique des langues naturelles que les quantificateurs frĂ©gĂ©ens. Nous sommes ainsi capables de donner une distinction nette entre les significations de « quelconque » et «indĂ©terminĂ© », qui sont implicitement mises en Ɠuvre dans la DĂ©duction Naturelle de Gentzen. Cela nous conduit Ă  donner une solution Ă  un paradoxe apparent qui surgit avec la rĂšgle d’introduction du quantificateur universel

    Analyse critique de la notion de variable. Points de vue sémiotique et formel

    Get PDF
    For B. Russell “The variable is perhaps the most distinctively mathematical of all notions ; it is certainly also one of the most difficult to understand” (The Principles of Mathematics, 1903). The aim of this paper is to highlight the meaning of variable in different fields of Mathematics: the expression of equations in Algebra with indeterminate entities; the analytical expression of functions in Analysis; the expression of quantification in Logic
 We give a historical survey of this notion from ViĂšte and Descartes to Frege’s representations of a concept, viewed as a non numerical function, yielding to the modern theory of quantification in first order languages. On one hand, the Peirce’s theory of signs, and on the other hand, with Church’s functional types, λ-calculus “with bound variables” and Curry’s combinatory logic “without bound variables”, are very useful tools for investigating different kinds of variables in Mathematics, in Logic and in theoretical Computer Sciences. For instance, it was showed that “bound variables” were not semiotic tools necessary to formulate quantification (in Frege’s sense) in “classical” Logic. Indeed, a simple quantifier is an operator which applies to a predicate by building a proposition; restricted quantifiers are derived from simple quantifiers by formal combinations with logical connectors (conditional or conjunction operators). We propose to take into account and to formalize, inside the framework of Combinatory Logic with types, (i) the “old logical notions” of “extension / intension”; (ii) determination operations from Port Royal’s Logic; (iii) the distinction from the anthropology and cognitive psychology between “typical” and “atypical” instances of a concept, which brings us to define new quantifiers, called “star quantifiers”, conceived as determination operators acting on terms. These quantifiers are more adequate than the fregean quantifiers, for a natural languages processing. Thus, we are able to give a conceptual distinction between the meanings of “Whatever” and “Indeterminate”, implicitly used in Gentzen’s Natural Deduction; thanks to this distinction, we can clarify an apparent “paradox” emerging with the universal quantifier introduction rule.Pour B. Russell, la variable est peut-ĂȘtre une des notions les plus difficiles Ă  comprendre en mathĂ©matiques (The Principles of Mathematics, 1903). En effet, la variable est fondamentalement polysĂ©mique. Sa signification varie avec les domaines d’utilisation ; tantĂŽt elle est utilisĂ©e pour indiquer une indĂ©termination d’un signe dans une Ă©quation ; tantĂŽt elle sert Ă  dĂ©crire analytiquement une fonction en Analyse, tantĂŽt, on l’utilise en logique pour exprimer la quantification au moyen de « variables liĂ©es ». Nous donnons une brĂšve analyse historique de l’évolution de cette notion en mathĂ©matiques, depuis sa crĂ©ation avec l’AlgĂšbre de ViĂšte et Descartes pour l’expression des Ă©quations, jusqu’à la reprĂ©sentation formelle d’un concept, formalisĂ© par Frege comme une fonction non numĂ©rique, ce qui a donnĂ© naissance aux modernes langages du premier ordre. D’une part, la thĂ©orie des signes de Peirce et d’autre part, les types fonctionnels de Church, le λ-calcul « avec variables liĂ©es » ainsi que la logique combinatoire de Curry « sans variables liĂ©es », sont d’excellents instruments qui sont convoquĂ©s pour examiner les diffĂ©rentes sortes de variables aussi bien en mathĂ©matiques, qu’en logique ou en informatique thĂ©orique. Par exemple, nous montrons que la notion de « variable liĂ©e » n’est pas nĂ©cessaire pour la formulation de la quantification en logique et son analyse dans le fonctionnement des langues naturelles : un quantificateur simple est avant tout un opĂ©rateur qui s’applique Ă  un prĂ©dicat afin de construire une proposition ; un quantificateur restreint est dĂ©rivĂ© d’un quantificateur simple, obtenu par une composition fonctionnelle avec un connecteur logique (les opĂ©rateurs d’implication ou de conjonction). Nous proposons de prendre en compte et de formaliser Ă  l’intĂ©rieur du cadre formel de la logique combinatoire typĂ©e :(i) les « vielles notions » logiques « extension / intension », (ii) les distinctions issues de la psychologie cognitive et de l’anthropologie, entre les exemplaires « typiques » ou « atypiques » d’un concept, (iii) l’opĂ©ration de dĂ©termination » de la Logique de Port Royal,, ce qui nous a conduit Ă  dĂ©finir les quantificateurs « star », considĂ©rĂ©s comme des opĂ©rateurs qui viennent apporter des dĂ©terminations supplĂ©mentaires aux termes, en particulier aux termes nominaux. Ces nouveaux quantificateurs sont plus adĂ©quats Ă  l’analyse logique des langues naturelles que les quantificateurs frĂ©gĂ©ens. Nous sommes ainsi capables de donner une distinction nette entre les significations de « quelconque » et «indĂ©terminĂ© », qui sont implicitement mises en Ɠuvre dans la DĂ©duction Naturelle de Gentzen. Cela nous conduit Ă  donner une solution Ă  un paradoxe apparent qui surgit avec la rĂšgle d’introduction du quantificateur universel

    Analyse statique de valeurs par interprétation abstraite de programmes fonctionnels manipulant des types algébriques récursifs

    Get PDF
    National audienceAfin de prévenir les erreurs de programmation, des analyseurs statiques ont été développés pour de nombreux langages ; cependant, aucun analyseur mature ne cible l'analyse de valeurs pour un langage fonctionnel à la ML. Des outils de vérification pour ces langages existent, tels les systÚmes de types classiques ou les méthodes déductives, mais le raisonnement automatique sur des programmes numériques a jusqu'alors été peu exploré. Cet article décrit un analyseur statique de valeurs par interprétation abstraite pour un langage fonctionnel typé du premier ordre, approche sûre et automatique pour garantir l'absence d'erreurs à l'exécution. En se basant sur des domaines abstraits relationnels et en réalisant des résumés des champs récursifs des types algébriques, cette approche permet d'analyser des fonctions récursives manipulant des types algébriques récursifs et d'inférer dans un domaine abstrait leur relation entrée-sortie. Une implémentation est en cours sur la plateforme d'analyse multilangage MOPSA et analyse avec succÚs de courts programmes de quelques lignes. Ce travail ouvre ainsi la voie vers une analyse de valeurs précise et relationnelle basée sur l'interprétation abstraite pour les langages fonctionnels d'ordre supérieur à la ML

    Décidabilité et Complexité

    Get PDF
    International audienceL'informatique fondamentale est un vaste sujet, comme en témoignent les 2 283 et 3 176 pages des "Handbooks" (228; 1). Couvrir en quelques dizaines de pages, l'ensemble de l'in- formatique nous a semblé une entreprise hors de notre portée. De ce fait, nous nous sommes concentrés sur la notion de calcul, sujet qui reflÚte le goût et la passion des auteurs de ce chapitre. La notion de calcul est omniprésente et aussi ancienne que les mathématiques

    Compilation certifiée de SCADE/LUSTRE

    Get PDF
    Les langages synchrones sont apparus autour des annĂ©es quatre-vingt, en rĂ©ponse Ă  un besoin d avoir un modĂšle mathĂ©matique simple pour implĂ©menter des systĂšmes temps rĂ©el critiques. Dans ce modĂšle, le temps est dĂ©coupĂ© en instants discrets durant lesquels tous les composants du systĂšme reçoivent et produisent une donnĂ©e. Cette modĂ©lisation permet des raisonnements beaucoup plus simples en Ă©vitant de devoir prendre en compte le temps de calcul de chaque opĂ©ration. Dans le monde du logiciel critique, la fiabilitĂ© du matĂ©riel et de son fonctionnement sont primordiaux, et on accepte d ĂȘtre plus lent si on devient plus sĂ»r. Afin d augmenter cette fiabilitĂ©, plutĂŽt que de concevoir manuellement tout le systĂšme, on utilise des machines qui synthĂ©tisent automatiquement le systĂšme souhaitĂ© Ă  partir d une description la plus concise possible. Dans le cas du logiciel, ce mĂ©canisme s appelle la compilation, et Ă©vite des erreurs introduites par l homme par inadvertance. Elle ne garantit cependant pas la bonne correspondance entre le systĂšme produit et la description donnĂ©e. Des travaux rĂ©cents menĂ©s par une Ă©quipe INRIA dirigĂ©e par Xavier Leroy ont abouti en 2008 au compilateur CompCert d un sous-ensemble large de C vers l assembleur PowerPC pour lequel il a Ă©tĂ© prouvĂ© dans l assistant de preuve Coq que le code assembleur produit correspond bien Ă  la description en C du programme source. Un tel compilateur offre des garanties fortes de bonne correspondance entre le systĂšme synthĂ©tisĂ© et la description donnĂ©e. De plus, avec les compilateurs utilisĂ©s pour le temps rĂ©el critique, la plupart des optimisations sont dĂ©sactivĂ©es afin d Ă©viter les erreurs qui y sont liĂ©es. Dans CompCert, des optimisations elles aussi prouvĂ©es sont proposĂ©es, ce qui pourrait permettre ces passes dans la production de systĂšmes temps rĂ©el critiques sans en compromettre la fiabilitĂ©. Le but de cette thĂšse est d avoir une approche similaire mais spĂ©cifique Ă  un langage synchrone, donc plus appropriĂ© Ă  la description de systĂšmes temps rĂ©el critiques que ne l est le C. Un langage synchrone flots de donnĂ©es semblable Ă  Lustre, nommĂ© Ls, et un langage impĂ©ratif semblable au langage C, nommĂ© Obc y sont proposĂ©s ainsi que leur sĂ©mantique formelle et une chaĂźne de compilation avec des preuves de prĂ©servation de sĂ©mantique le long de cette chaĂźne.Synchronous languages first appeared during the 80 s, in order to provide a mathematical model for safety-critical systems. In this model, time is discrete. At each instant, all components of the system simultaneously receive and produce some data. This model allows simpler reasonning on the behaviour of the system, as it does not involve the time required for each of the operations for every component. In safety-critical systems, safety is the rule, so a poor performance behaviour can be allowed if it improves safety. In order to improve safety, rather than conceiving directly the system, machines are used to automatically design the system from a given concise description. In the case of software, this machine is called a compiler, and avoids issues due to some human inadvertence. But it does not ensure that the produced system and the description specification really show the same behaviour. Some recent work from an INRIA team lead by Xavier Leroy achieved in 2008 the realisation of the CompCert compiler from a large subset of C to PowerPC assembly, for which it was proven inside of the Coq proof assistant that the produced system fits its source description. Such a compiler offers strong guarantees that the produced system and its given description by the programmer really fit. Furthermore, most current compiler s optimizations are disabled when dealing with safety-critical systems in order to avoid tedious compilation errors that optimizations may introduce. Proofs for optimizations may allow their use in this domain without affecting the faith we could place in the compiler. The aim of this thesis is to follow a similar path, but this one on a language which would be more suited for safety-critical systems than the C programming language. Some dataflow synchronous programming language very similar to Lustre, called Ls is described with its formal semantics, as well as an imperative programming language similar to a subset of C called Obc. Furthermore some compilation process is described as well as some proofs that the semantics is preserved during the compilation process.PARIS11-SCD-Bib. Ă©lectronique (914719901) / SudocSudocFranceF
    • 

    corecore