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.
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).
Correction d'un algorithmeUn algorithme est correct s'il fait ce qu'on attend de lui. Plus précisément, rappelons qu'un algorithme est décrit par une spécification des données sur lesquelles l'algorithme va démarrer son calcul et une spécification du résultat produit par l'algorithme. Démontrer la correction de l'algorithme consiste à démontrer que l'algorithme retourne, quand il calcule en partant des données, un objet qui est un des résultats escomptés et qui satisfait la spécification du résultat comme énoncé dans la description de l'algorithme.
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.
Langage de programmation de haut niveauEn programmation informatique, un langage de programmation à haut niveau d'abstraction généralement appelé langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur.
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.
Undergraduate educationUndergraduate education is education conducted after secondary education and before postgraduate education. It typically includes all postsecondary programs up to the level of a bachelor's degree. For example, in the United States, an entry-level university student is known as an undergraduate, while students of higher degrees are known as graduate students. Upon completion of a number of required and elective courses as part of an undergraduate program, the student would earn the corresponding degree.
Synthèse de programmesEn informatique, la synthèse de programmes consiste à construire automatiquement un programme à partir d'une spécification. La spécification est décrite dans un langage logique, par exemple en logique temporelle linéaire. La synthèse de programmes s'appuie sur des techniques de vérification formelle de programmes. Le problème de synthèse de programmes remonte aux travaux d'Alonzo Church. Manna et Waldinger ont proposé une méthode déductive pour synthétiser un programme à partir d'une spécification en logique du premier ordre.
Undergraduate degreeAn undergraduate degree (also called first degree or simply degree) is a colloquial term for an academic degree earned by a person who has completed undergraduate courses. In the United States, it is usually offered at an institution of higher education, such as a college or university. The most common type of these undergraduate degrees are associate degree and bachelor's degree. Bachelor's degree typically takes at least three or four years to complete.
Langage de programmation de bas niveauvignette|Language de programmation Un langage de programmation de bas niveau ne fournit que peu d'abstraction par rapport au jeu d'instructions du processeur de la machine. Les langages de bas niveau sont à opposer aux langages de haut niveau, qui permettent de créer un programme sans tenir compte des caractéristiques particulières (registres, etc) de l'ordinateur censé exécuter le programme. Le langage machine et le langage d'assemblage sont les archétypes de langages de bas niveau, puisqu'ils permettent de manipuler explicitement des registres, des adresses mémoires, des instructions machines.
Équation de Fermat généraliséeEn arithmétique, l'équation de Fermat généralisée est l'équationoù sont des entiers non nuls, sont des entiers non nuls premiers entre eux et sont entiers. Comme son nom le laisse transparaître, cette équation généralise l'équation dont le fameux dernier théorème de Fermat établit l'impossibilité quand . À l'instar de celui-ci avant sa résolution, son principal intérêt réside aujourd'hui dans la stimulation du développement des nouveaux outils mathématiques nécessaires à son appréhension.
Programmation structuréeLa programmation structurée constitue un sous-ensemble de la programmation impérative. C'est un paradigme important de la programmation, apparu vers 1970. Elle dérive de travaux de Nicklaus Wirth pour son Algol W et reçut son coup d'envoi avec l'article fondateur de Dijkstra dans Communications of the ACM nommé GO TO statement considered harmful (L'instruction GOTO est considérée nocive). Elle est en effet célèbre pour avoir tenté d’éliminer l'instruction goto, ou, du moins, de limiter son usage à des cas inhabituels et graves .
Récursion mutuelleEt mathématiques et en informatique, la récursion mutuelle est une récursion où deux (ou plus) fonctions mathématiques ou programmatiques sont définies l'une en termes de l'autre. En informatique, cependant, on utilise plus souvent le terme "récursivité croisée". Par exemple, deux fonctions A(x) and B(x) définies comme suit : La récursion mutuelle est très commune dans le style de programmation fonctionnelle et est souvent utilisée pour la programmation en LISP, Scheme, ML et celle de langages similaires.
Conjecture abcvignette|Joseph Oesterlé, mathématicien français vignette|David Masser, mathématicien anglais La conjecture abc ou conjecture d'Oesterlé-Masser est une conjecture en théorie des nombres. Elle a été formulée pour la première fois par Joseph Oesterlé (1988) et David Masser (1985). Elle est formulée en termes de trois nombres entiers positifs, a, b et c (d'où son nom), qui n'ont aucun facteur commun et satisfont à . Si d est le produit des facteurs premiers distincts de abc, alors la conjecture affirme à peu près que d ne peut pas être beaucoup plus petit que c.
Programmation fonctionnelleLa programmation fonctionnelle est un paradigme de programmation de type déclaratif qui considère le calcul en tant qu'évaluation de fonctions mathématiques. Comme le changement d'état et la mutation des données ne peuvent pas être représentés par des évaluations de fonctions la programmation fonctionnelle ne les admet pas, au contraire elle met en avant l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état.
Architecture du paysageL’architecture du paysage ou paysage — et non « paysagisme », terme qui constitue un abus de langage — consiste en l’art de la compréhension et du design de paysages dans leur immense diversité. L'architecture du paysage inclut notamment la conception d'espaces paysagers tels que l'aménagement de l'espace public, de parcs et d'espaces de récréation et le design urbain. Elle inclut également des interventions en faveur de la restauration environnementale, la planification de territoires aux différentes échelles et la préservation de paysages historiques et identitaires.
PaysagisteUn paysagiste est un professionnel en capacité d'analyser, diagnostiquer l'environnement et conçoit des projets en vue d'amélioré la qualité de cet environnement. Cette discipline aborde différente échelles : jardin, parc, quartier, communes, département, région et grand territoire. Le paysagisme est une profession très pluridisciplinaire puisant les connaissance fondamentale en écologie, géographie, en art, en politique, reliant les acteurs d'un territoire entre eux.
Dernier théorème de FermatEn mathématiques, et plus précisément en théorie des nombres, le dernier théorème de Fermat, ou grand théorème de Fermat, ou depuis sa démonstration théorème de Fermat-Wiles, s'énonce comme suit : Énoncé par Pierre de Fermat d'une manière similaire dans une note marginale de son exemplaire d'un livre de Diophante, il a cependant attendu plus de trois siècles une preuve publiée et validée, établie par le mathématicien britannique Andrew Wiles en 1994.
DoctoratLe doctorat est un diplôme de troisième cycle universitaire, nommé philosophiæ doctor (PhD) dans les pays de langue anglaise. C'est aussi un grade délivré par ce diplôme, et une expérience de recherche. Ce diplôme est délivré par les universités et les établissements d'enseignement supérieur accrédités. Il donne droit au titre de docteur (Dr). D'autres diplômes, différents, peuvent reprendre ce nom, leur reconnaissance et leur contenu varient selon les pays.
Référentiel (physique)En physique, il est impossible de définir une position ou un mouvement par rapport à l'espace « vide ». Un référentiel est un solide (un ensemble de points fixes entre eux) par rapport auquel on repère une position ou un mouvement. Un dispositif servant d'horloge est également nécessaire pour pouvoir qualifier le mouvement et définir la notion de vitesse. Un exemple classique de référentiel est le référentiel terrestre qui est lié à la Terre.