Analyse statique de programmesEn informatique, la notion d’analyse statique de programmes couvre une variété de méthodes utilisées pour obtenir des informations sur le comportement d'un programme lors de son exécution sans réellement l'exécuter. C'est cette dernière restriction qui distingue l'analyse statique des analyses dynamiques (comme le débugage ou le profiling) qui s'attachent, elles, au suivi de l’exécution du programme. L’analyse statique est utilisée pour repérer des erreurs formelles de programmation ou de conception et pour déterminer la facilité ou la difficulté à maintenir le code.
Program analysisIn computer science, program analysis is the process of automatically analyzing the behavior of computer programs regarding a property such as correctness, robustness, safety and liveness. Program analysis focuses on two major areas: program optimization and program correctness. The first focuses on improving the program’s performance while reducing the resource usage while the latter focuses on ensuring that the program does what it is supposed to do.
Interprétation abstraiteL'interprétation abstraite est une théorie d'approximation de la sémantique de programmes informatiques fondée sur les fonctions monotones pour ensembles ordonnés, en particulier les treillis (en anglais : lattice). Elle peut être définie comme une exécution partielle d'un programme pour obtenir des informations sur sa sémantique (par exemple, sa structure de contrôle, son flot de données) sans avoir à en faire le traitement complet.
Béton de cimentthumb|upright=1.0|Un mètre cube de béton (représentant la production mondiale annuelle de béton par habitant). Le béton de ciment, couramment appelé béton, est un mélange de ciment, de granulats, d'eau et d'adjuvants. Histoire du béton de ciment Ciment Le ciment se compose essentiellement de chaux, de silice, d'alumine et d'oxyde de fer combinés au silicate et aluminate de calcium. Les différents ciments résultent du mélange de clinker, de calcaire, de laitier et de cendres volantes (qui sont des composés à effet pouzzolanique, mais non considérés comme des pouzzolanes).
Béton armévignette|Armatures métalliques de renforcement du béton. vignette|« Cancer du béton » : lorsque le front de carbonatation atteint l'armature métallique, celle-ci est atteinte de rouille qui fait augmenter le volume de l'acier, conduisant à l'éclatement du béton d'enrobage, ce qui provoque des délaminations, ou comme ici des épaufrures qui mettent à nu les armatures oxydées. Le béton armé est un matériau composite constitué de béton et de barres d'acier alliant les propriétés mécaniques complémentaires de ces matériaux (bonne résistance à la compression du béton et bonne résistance à la traction de l'acier).
Analyse dynamique de programmesthumb|Logo de Valgrind. Outil permettant de profiler du code. L'analyse dynamique de programme (dynamic program analysis ou DPA), est une forme d'analyse de programme qui nécessite leur exécution. Elle permet d'étudier le comportement d'un programme informatique et les effets de son exécution sur son environnement. Appliquée dans un environnement physique ou virtuel, elle est souvent utilisée pour profiler des programmes. Que ce soit pour retirer des informations sur le temps d'utilisation du processeur, l'utilisation de la mémoire ou encore l'énergie dépensée par le programme.
Prestressed concretePrestressed concrete is a form of concrete used in construction. It is substantially "prestressed" (compressed) during production, in a manner that strengthens it against tensile forces which will exist when in service. This compression is produced by the tensioning of high-strength "tendons" located within or adjacent to the concrete and is done to improve the performance of the concrete in service. Tendons may consist of single wires, multi-wire strands or threaded bars that are most commonly made from high-tensile steels, carbon fiber or aramid fiber.
Bétonthumb|Aspect hétérogène de la surface d'un béton de ciment, appelé communément béton, et constitué de ciment, d'eau et de granulats fins (sable) et grossiers (graviers). Le béton est un assemblage de matériaux de nature généralement minérale. Il met en présence des matières inertes, appelées granulats ou agrégats (graviers, gravillons, sables), et un liant (ciment, bitume, argile), c'est-à-dire une matière susceptible d'en agglomérer d'autres ainsi que des adjuvants qui modifient les propriétés physiques et chimiques du mélange.
Abstraction (informatique)En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation. thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications.
Affectation (informatique)En algorithmique et en programmation informatique, une affectation, aussi appelée assignation par anglicisme, est une structure qui permet d'attribuer une valeur à une variable. Il s'agit d'une structure particulièrement courante en programmation impérative, et dispose souvent pour cette raison d'une notation courte et infixée, comme ou . Dans certains langages, le symbole est considéré comme un opérateur d'affectation, et la structure entière peut alors être utilisée comme une expression.
Boucle forEn informatique, la boucle for est une structure de contrôle de programmation qui permet de répéter l'exécution d'une séquence d'instructions. Selon les langages de programmation, différents mots-clés sont utilisés pour signaler cette structure de contrôle : for pour les descendants d'Algol, do pour FORTRAN, PL/I, etc. Une "boucle for" a deux parties : une entête qui spécifie la manière de faire l'itération, et un corps qui est exécuté à chaque itération. Dans cette forme de boucle, une variable prend des valeurs successives sur un intervalle.
Sémantique des langages de programmationEn informatique théorique, la sémantique formelle (des langages de programmation) est l’étude de la signification des programmes informatiques vus en tant qu’objets mathématiques. Comme en linguistique, la sémantique, appliquée aux langages de programmation, désigne le lien entre un signifiant, le programme, et un signifié, objet mathématique. L'objet mathématique dépend des propriétés à connaître du programme. La sémantique est également le lien entre : le langage signifiant : le langage de programmation le langage signifié : logique de Hoare, automates.
Abstraction (philosophie)L’abstraction est l'opération mentale, de l'esprit par laquelle les propriétés générales, universelles et nécessaires d'un objet sont distinguées de ses propriétés particulières et contingentes. Par cette opération, notre pensée prend une distance par rapport à l'expérience sensible et forme l'ensemble de nos idées qui seront consignées dans le langage. L'opération d'abstraction permet de distinguer entre l'abstrait et le concret. Ceux-ci forment une opposition conceptuelle fondamentale en philosophie.
Interprétation de la mécanique quantiqueUne interprétation de la mécanique quantique est une tentative d'explication de la façon dont la théorie mathématique de la mécanique quantique « correspond » à la réalité. Bien que la mécanique quantique ait fait l'objet de démonstrations rigoureuses dans une gamme extraordinairement large d'expériences (aucune prédiction de la mécanique quantique n'a été contredite par l'expérience), il existe un certain nombre d'écoles de pensée concurrentes sur son interprétation.
Correspondance de GaloisEn mathématiques, une correspondance de Galois antitone est une généralisation, pour deux ordres partiels quelconques, de la correspondance entre sous-corps d'une extension galoisienne et sous-groupes de son groupe de Galois. Une correspondance de Galois isotone se définit de façon analogue, en inversant l'ordre sur le deuxième ensemble. Cette notion est reliée à celle d'opérateur de clôture. Soient et des fonctions définies sur deux ensembles ordonnés et . On vérifie facilement l'équivalence des deux définitions suivantes.
Structure et interprétation des programmes informatiquesStructure et interprétation des programmes informatiques (Structure and Interpretation of Computer Programs, SICP) est un livre écrit par Harold Abelson, Gerald Jay Sussman et Julie Sussman. Le livre traite des principes et concepts de la programmation informatique, comme l’abstraction en programmation, l’, la récursivité, les interpréteurs et la programmation modulaire. Il est édité pour la première fois en 1985 par le MIT Press et est considéré comme un classique en informatique.
Ensemble interpretationThe ensemble interpretation of quantum mechanics considers the quantum state description to apply only to an ensemble of similarly prepared systems, rather than supposing that it exhaustively represents an individual physical system. The advocates of the ensemble interpretation of quantum mechanics claim that it is minimalist, making the fewest physical assumptions about the meaning of the standard mathematical formalism. It proposes to take to the fullest extent the statistical interpretation of Max Born, for which he won the Nobel Prize in Physics in 1954.
Théorie de GaloisEn mathématiques et plus précisément en algèbre, la théorie de Galois est l'étude des extensions de corps commutatifs, par le biais d'une correspondance avec des groupes de transformations sur ces extensions, les groupes de Galois. Cette méthode féconde, qui constitue l'exemple historique, a essaimé dans bien d'autres branches des mathématiques, avec par exemple la théorie de Galois différentielle, ou la théorie de Galois des revêtements. Cette théorie est née de l'étude par Évariste Galois des équations algébriques.
Boucle infinieUne boucle infinie est, en programmation informatique, une boucle dont la condition de sortie n'a pas été définie ou ne peut pas être satisfaite. En conséquence, la boucle ne peut se terminer qu'à l'interruption du programme qui l'utilise. Il y a rarement un intérêt à programmer une boucle infinie. Une telle boucle ne permet pas de faire sortir un résultat, et accapare les ressources de l'ordinateur. Sur un système monotâche, une boucle infinie peut interdire à l'utilisateur toute autre action.
Exactitude et précisionvignette|Schéma de l'exactitude et la précision appliquée à des lancers de fléchettes. Dans la mesure d'un ensemble, l'exactitude est la proximité des mesures à une valeur spécifique, tandis que la précision est la proximité des mesures les unes par rapport aux autres. L'exactitude a deux définitions : Plus communément, il s'agit d'une description des erreurs systématiques, une mesure du biais statistique ; une faible précision entraîne une différence entre un résultat et une valeur « vraie ».