Méthode formelle (informatique)En informatique, les méthodes formelles sont des techniques permettant de raisonner rigoureusement, à l'aide de logique mathématique, sur un programme informatique ou du matériel électronique numérique, afin de démontrer leur validité par rapport à une certaine spécification. Elles reposent sur les sémantiques des programmes, c'est-à-dire sur des descriptions mathématiques formelles du sens d'un programme donné par son code source (ou, parfois, son code objet).
Vérification de modèlesthumb|308x308px|Principe du model checking. En informatique, la vérification de modèles, ou model checking en anglais, est le problème suivant : vérifier si le modèle d'un système (souvent informatique ou électronique) satisfait une propriété. Par exemple, on souhaite vérifier qu'un programme ne se bloque pas, qu'une variable n'est jamais nulle, etc. Généralement, la propriété est écrite dans un langage, souvent en logique temporelle. La vérification est généralement faite de manière automatique.
Vérification formelleIn the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code.
Runtime verificationRuntime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very particular properties, such as datarace and deadlock freedom, are typically desired to be satisfied by all systems and may be best implemented algorithmically. Other properties can be more conveniently captured as formal specifications.
Structure de KripkeUne structure de Kripke est un modèle de calcul, proche d'un automate fini non déterministe, inventé par Saul Kripke. Elle est utilisée par exemple dans le model checking pour représenter le comportement d'un système. C'est un graphe orienté dont les nœuds représentent les états accessibles du système et dont les arcs représentent les transitions entre les états. Une fonction d'étiquetage fait correspondre à chaque état un ensemble de propositions logiques vraies dans cet état.
Langage formelUn langage formel, en mathématiques, en informatique et en linguistique, est un ensemble de mots. L'alphabet d'un langage formel est l'ensemble des symboles, lettres ou lexèmes qui servent à construire les mots du langage ; souvent, on suppose que cet alphabet est fini. La théorie des langages formels a pour objectif de décrire les langages formels. Les mots sont des suites d'éléments de cet alphabet ; les mots qui appartiennent à un langage formel particulier sont parfois appelés mots bien formés ou formules bien formées.
Partie bornéeEn mathématiques, la notion de partie bornée (ou, par raccourci, de borné) étend celle d'intervalle borné de réels à d'autres structures, notamment en topologie et en théorie des ordres. Selon les cas, la définition privilégie l'existence de bornes ponctuelles ou la négation de l'éloignement à l'infini. Une fonction bornée est une fonction dont l' est bornée dans l'ensemble d'arrivée. Un opérateur borné est un opérateur linéaire dont les images de bornés sont bornées également.
Fonction bornéedroite|vignette| Schéma d'une fonction bornée (rouge) et d'une fonction non bornée (bleu). Intuitivement, le graphe d'une fonction bornée reste dans une bande horizontale, contrairement au graphe d'une fonction non bornée. En mathématiques, une fonction est dite bornée si est borné. Pour une fonction f définie sur un ensemble X et à valeurs réelles ou complexes, cela revient à dire qu'il existe un nombre réel M tel que pour tout x dans X, Une fonction à valeurs réelles est dite majorée ( minorée) si l'ensemble de ses valeurs possède un majorant ( minorant) réel.
Système d'exploitation temps réelUn système d'exploitation temps réel, en anglais RTOS pour real-time operating system (généralement prononcé à l’anglaise, en séparant le R de l’acronyme : Are-toss), est un système d'exploitation pour lequel le temps maximum entre un stimulus d'entrée et une réponse de sortie est précisément déterminé. Ces systèmes d'exploitation multitâches sont destinés à des applications temps réel : systèmes embarqués (thermostats programmables, contrôleurs électroménagers, téléphones mobiles, robots industriels, vaisseaux spatiaux, systèmes de contrôle commande industriel, matériel de recherche scientifique).
Critical race theoryvignette|Un présentoir de livres contenant des ouvrages sur la Critical race theory. La critical race theory (littéralement « théorie critique de la race ») est un courant de recherche et un cadre de lecture axé sur l'application de la théorie critique aux relations entre la race, la loi, et le pouvoir. Elle est née d’une rencontre entre le champ de la réflexion universitaire et l’action pour les droits humains.
Opérateur bornéEn mathématiques, la notion d'opérateur borné est un concept d'analyse fonctionnelle. Il s'agit d'une application linéaire L entre deux espaces vectoriels normés X et Y telle que l'image de la boule unité de X est une partie bornée de Y. On montre qu'ils s'identifient aux applications linéaires continues de X dans Y. L'ensemble des opérateurs bornés est muni d'une norme issue des normes de X et de Y, la norme d'opérateur. Une application linéaire L entre les espaces vectoriels normés X et Y est appelée opérateur borné quand l'ensemble est borné.
Espace précompactEn topologie, une branche des mathématiques, un espace métrique E est précompact si, pour tout ε > 0, on peut recouvrir E par un nombre fini de boules de rayon ε. La propriété principale est qu'un espace métrique est compact si et seulement s'il est précompact et complet. La notion de précompacité et ses propriétés se généralisent aux espaces uniformes. Soit E un espace métrique. Si l'une des trois propriétés suivantes est vérifiée, alors toutes trois le sont et E est dit précompact.
Partie bornée d'un espace vectoriel topologiqueEn analyse fonctionnelle et dans des domaines mathématiques reliés, une partie d'un espace vectoriel topologique est dite bornée (au sens de von Neumann) si tout voisinage du vecteur nul peut être dilaté de manière à contenir cette partie. Ce concept a été introduit par John von Neumann et Andreï Kolmogorov en 1935. Les parties bornées sont un moyen naturel de définir les (localement convexes) sur les deux espaces vectoriels d'une paire duale.
Situation de compétitionUne situation de compétition (ou situation de concurrence, accès concurrent, concurrence critique, course critique, séquencement critique ; race condition en anglais, littéralement « situation de course »), est une situation caractérisée par un résultat différent selon l'ordre dans lequel agissent les acteurs du système. Le terme est plutôt employé à propos de programmes informatiques et de systèmes électroniques. C'est généralement considéré comme un défaut car source de panne ou de blocage.
Thread (informatique)thumb|Un processus avec deux threads. Un thread ou fil (traduction normalisés par ISO/CEI 2382-7:2000 (autres appellations connues : processus léger, fil d'exécution, fil d'instruction, processus allégé, exétron, tâche, voire unité d'exécution ou unité de traitement) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle.
Nombre réelEn mathématiques, un nombre réel est un nombre qui peut être représenté par une partie entière et une liste finie ou infinie de décimales. Cette définition s'applique donc aux nombres rationnels, dont les décimales se répètent de façon périodique à partir d'un certain rang, mais aussi à d'autres nombres dits irrationnels, tels que la racine carrée de 2, π et e.
Race humaineLa notion de race humaine, par analogie avec les races d'animaux d'élevage, est employée pour établir des classifications internes à l'espèce humaine selon des critères morphologiques ou culturels. Des études scientifiques, fondées depuis le milieu du sur la génétique, ont montré que le concept de « race » n'est pas pertinent pour caractériser les différents sous-groupes géographiques de l'espèce humaine car la diversité génétique est beaucoup plus importante entre les individus d'une même population qu'entre groupes différents.
BlanchitéLa blanchité (aussi blanchitude ou blancheur, issu de l'anglais : whiteness) est un néologisme décrivant un ensemble de concepts des sciences politiques utilisés par la critical race theory, les études postcoloniales, les études de genre, les cultural studies, et dans certaines analyses sur la construction socioculturelle. Elle peut décrire : un mode de problématisation des rapports sociaux de race ; l’hégémonie sociale, culturelle et politique blanche à laquelle sont confrontées les minorités ethnoraciales ; ou encore, aux États-Unis, un ensemble d'éléments considéré caractéristique des Américains blancs.
OpenMPOpenMP (Open Multi-Processing) est une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée. Cette API est prise en charge par de nombreuses plateformes, incluant GNU/Linux, OS X et Windows, pour les langages de programmation C, C++ et Fortran. Il se présente sous la forme d'un ensemble de directives, d'une bibliothèque logicielle et de variables d'environnement. OpenMP est portable et dimensionnable. Il permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel.
Ada (langage)Ada est un langage de programmation orienté objet dont les premières versions remontent au début des années 1980. Ada est un langage de programmation conçu par l’équipe de CII-Honeywell Bull dirigée par Jean Ichbiah en réponse à un cahier des charges établi par le département de la Défense des États-Unis (DoD). Les premiers travaux autour du projet ont commencé à la fin des années 1970 et dès 1979 un preliminary ADA reference manual est publié dans la revue du Special Interest Group on Programming Languages de l'ACM.