Structure de donnéesEn informatique, une structure de données est une manière d'organiser les données pour les traiter plus facilement. Une structure de données est une mise en œuvre concrète d'un type abstrait. Pour prendre un exemple de la vie quotidienne, on peut présenter des numéros de téléphone par département, par nom, par profession (comme les Pages jaunes), par numéro téléphonique (comme les annuaires destinés au télémarketing), par rue et/ou une combinaison quelconque de ces classements.
Structure de données persistanteEn informatique, une structure de données persistante est une structure de données qui préserve ses versions antérieures lorsqu'elle est modifiée ; une telle structure est immuable, car ses opérations ne la modifient pas en place (de manière visible) mais renvoient au contraire de nouvelles structures. Une structure est partiellement persistante si seule sa version la plus récente peut être modifiée, les autres n'étant accessibles qu'en lecture. La structure est dite totalement persistante si chacune de ses versions peut être lue ou modifiée.
Purely functional data structureIn computer science, a purely functional data structure is a data structure that can be directly implemented in a purely functional language. The main difference between an arbitrary data structure and a purely functional one is that the latter is (strongly) immutable. This restriction ensures the data structure possesses the advantages of immutable objects: (full) persistency, quick copy of objects, and thread safety. Efficient purely functional data structures may require the use of lazy evaluation and memoization.
Duplication de codeLa duplication de code en programmation informatique est une erreur courante de conception de logiciels où une suite d'instructions similaires (voire identiques) existe en plusieurs endroits du code source d'un logiciel. La duplication de code arrive à la suite de la programmation par copier-coller. C'est une erreur classique de débutants en programmation informatique ; cependant, cette erreur touche également les développeurs confirmés. Le code dupliqué pose des problèmes de maintenance dont l'importance augmente avec la quantité de code dupliqué.
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.
LogiqueLa logique — du grec , qui est un terme dérivé de signifiant à la fois « raison », « langage » et « raisonnement » — est, dans une première approche, l'étude de l'inférence, c'est-à-dire des règles formelles que doit respecter toute argumentation correcte. Le terme aurait été utilisé pour la première fois par Xénocrate. La logique antique se décompose d'abord en dialectique et rhétorique. Elle est depuis l'Antiquité l'une des grandes disciplines de la philosophie, avec l'éthique (philosophie morale) et la physique (science de la nature).
Théorie de la décisionLa théorie de la décision est une théorie de mathématiques appliquées ayant pour objet la prise de décision par une entité unique. (Les questions liées à la décision collective relèvent de la théorie du choix social.) La notion de décision intertemporelle découle de la prise en compte du facteur temps dans les problématiques reliant l'offre et la demande, les disponibilités et les contraintes. Ces problématiques sont celles qui découlent des combinaisons possibles entre les disponibilités et les décisions pouvant les impliquer.
Arithmétique modulaireEn mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un ensemble de méthodes permettant la résolution de problèmes sur les nombres entiers. Ces méthodes dérivent de l’étude du reste obtenu par une division euclidienne. L'idée de base de l'arithmétique modulaire est de travailler non sur les nombres eux-mêmes, mais sur les restes de leur division par quelque chose. Quand on fait par exemple une preuve par neuf à l'école primaire, on effectue un peu d'arithmétique modulaire sans le savoir : le diviseur est alors le nombre 9.
Snippetvignette|Exemple de snippet Un snippet est un terme de programmation informatique désignant une petite portion réutilisable de code source ou de texte. Ordinairement, ce sont des unités formellement définies à incorporer dans des modules plus larges. La gestion de snippets est une fonctionnalité de certains éditeurs de texte, des éditeurs de code source, des IDE et autres logiciels apparentés. L'Office québécois de la langue française recommande l'usage des termes « bout de code », « extrait de code », « fragment de code » et « morceau de code » à la place de « snippet ».
Raisonnement automatisévignette|Visualisation commune du réseau de neurones artificiels avec puce NOTOC Le raisonnement automatisé est un domaine de l'informatique consacré à la compréhension des différents aspects du raisonnement de manière à permettre la création de logiciels qui permettraient aux ordinateurs de « raisonner » de manière automatique, ou presque. Il est considéré habituellement comme un sous-domaine de l'intelligence artificielle, mais possède aussi de fortes connexions avec l'Informatique théorique et même avec la philosophie.
Tableau (structure de données)En informatique, un tableau est une structure de données représentant une séquence finie d'éléments auxquels on peut accéder efficacement par leur position, ou indice, dans la séquence. C'est un type de conteneur que l'on retrouve dans un grand nombre de langages de programmation. Dans les langages à typage statique (comme C, Java et OCaml), tous les éléments d’un tableau doivent être du même type. Certains langages à typage dynamique (tels APL et Python) permettent des tableaux hétérogènes.
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.
ConteneurDans le domaine du transport, un conteneur (terme recommandé en France par la DGLFLF et au Canada par l'OQLF) ou container, est un caisson métallique parallélépipédique conçu pour le transport de marchandises par différents modes de transport. Ses dimensions ont été normalisées au niveau international. Il est muni à tous les angles de pièces de préhension permettant de l'arrimer et de le transborder d'un véhicule à l'autre (pièces de coin, corner casting ou corner fitting).
Porte-conteneursUn porte-conteneurs ou porte-conteneur est un navire de charge destiné au transport de conteneurs à l'exclusion de tout autre type de conditionnement de marchandises. Apparu dans les années 1970, le porte-conteneurs est maintenant le principal mode de fret maritime dans les ports de commerce. Il fait partie intégrante du commerce mondial. La taille sans cesse croissante de ces navires crée de nombreux problèmes architecturaux et portuaires. Le mot « porte-conteneurs » est une traduction directe de l'anglais container carrier, qui est devenu plus tard container ship.
Arithmétique de PresburgerEn logique mathématique, l'arithmétique de Presburger est la théorie du premier ordre des nombres entiers naturels munis de l'addition. Elle a été introduite en 1929 par Mojżesz Presburger. Il s'agit de l'arithmétique de Peano sans la multiplication, c’est-à-dire avec seulement l'addition, en plus du zéro et de l'opération successeur. Contrairement à l'arithmétique de Peano, l'arithmétique de Presburger est décidable. Cela signifie qu'il existe un algorithme qui détermine si un énoncé du langage de l'arithmétique de Presburger est démontrable à partir des axiomes de l'arithmétique de Presburger.
Philosophie de la logiqueLa philosophie de la logique est une partie de la philosophie des sciences qui s'intéresse à l’ensemble des problèmes théoriques qui relèvent traditionnellement de la logique, comportant essentiellement la question de son essence, son histoire depuis son origine aristotélicienne et à l'intérieur de la question philosophique, de l'extension de son domaine et de ses limites, aux côtés de la philosophie du langage, de la philosophie des sciences, du psychologisme et des mathématiques.
Réutilisation de codeLa réutilisation de code désigne l'utilisation de logiciel existant, de connaissances sur ce logiciel, de composants logiciels ou du code source, pour créer de nouveaux logiciels. La réutilisation s'appuie fréquemment sur le concept de modularité. Par extension, ce terme désigne également l'ensemble des techniques informatiques proposées ou mises en œuvre pour faciliter cette réutilisation. Bibliothèque logicielle Patron de conception logiciel Framework "An architecture for designing reusable embedded syste
Problème de décisionEn informatique théorique, un problème de décision est une question mathématique dont la réponse est soit « oui », soit « non ». Les logiciens s'y sont intéressés à cause de l'existence ou de la non-existence d'un algorithme répondant à la question posée. Les problèmes de décision interviennent dans deux domaines de la logique : la théorie de la calculabilité et la théorie de la complexité. Parmi les problèmes de décision citons par exemple le problème de l'arrêt, le problème de correspondance de Post ou le dernier théorème de Fermat.
Démonstration automatique de théorèmesLa démonstration automatique de théorèmes (DAT) est l'activité d'un logiciel qui démontre une proposition qu'on lui soumet, sans l'aide de l'utilisateur. Les démonstrateurs automatiques de théorème ont résolu des conjectures intéressantes difficiles à établir, certaines ayant échappé aux mathématiciens pendant longtemps ; c'est le cas, par exemple, de la , démontrée en 1996 par le logiciel EQP.
RaisonLa raison est généralement considérée comme une faculté propre de l'esprit humain dont la mise en œuvre lui permet de créer des critères de vérité et d'erreur et d'atteindre ses objectifs. Elle repose sur la capacité qu'aurait l'être humain de faire des choix en se basant sur son intelligence, ses perceptions et sa mémoire tout en faisant abstraction de ses préjugés, ses émotions ou ses pulsions. Cette faculté a donc plusieurs emplois : connaissance, éthique et technique.