SubtypingIn programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype. If S is a subtype of T, the subtyping relation (written as S
Principe de substitution de Liskovvignette|Barbara Liskov en 2010 Le principe de substitution de Liskov (LSP) est, en programmation orientée objet, une définition particulière de la notion de sous-type. Il a été formulé par Barbara Liskov et Jeannette Wing dans un article intitulé Family Values: A Behavioral Notion of Subtyping : Liskov et Wing en ont proposé la formulation condensée suivante : Si est une propriété démontrable pour tout objet de type , alors est vraie pour tout objet de type tel que est un sous-type de .
DéfinitionUne définition est une proposition qui met en équivalence un élément définissant et un élément étant défini. Une définition a pour but de clarifier, d'expliquer. Elle détermine les limites ou « un ensemble de traits qui circonscrivent un objet ». Selon les Définitions du pseudo-Platon, la définition est la . Aristote, dans le Topiques, définit le mot comme En mathématiques, on définit une notion à partir de notions antérieurement définies. Les notions de bases étant les symboles non logiques du langage considéré, dont l'usage est défini par les axiomes de la théorie.
Class-based programmingClass-based programming, or more commonly class-orientation, is a style of object-oriented programming (OOP) in which inheritance occurs via defining classes of objects, instead of inheritance occurring via the objects alone (compare prototype-based programming). The most popular and developed model of OOP is a class-based model, instead of an object-based model. In this model, objects are entities that combine state (i.e., data), behavior (i.e., procedures, or methods) and identity (unique existence among all other objects).
Système nominatif de typesUn système nominatif de types est une classe majeure de système de types en programmation informatique. C'est avec lui qu'on détermine la compatibilité et l'équivalence de types par la déclaration explicite et/ou le nommage des types. On utilise les systèmes nominatifs pour déterminer si des types sont équivalents ou pour savoir si un type est un sous-type d'un autre. Ce système est en contraste avec le système structurel, où les comparaisons sont fondées sur la structure des types en question et donc ces types ne nécessitent pas de déclarations explicites.
Is-aAn is-a relationship is when one type of object 'is a' instance of another type of object. For example, a cat 'is a' animal, but not vice versa. All cats are animals, but not all animals are cats. The concept becomes important in object oriented programing, where 'is a' relationships are often used as a way to structure code - behaviour that are is relevant to all animals is defined on an animal class, whereas behaviour that is relevant only for cats is defined in a cat class.
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.
Lexical definitionThe lexical definition of a term, also known as the dictionary definition, is the definition closely matching the meaning of the term in common usage. As its other name implies, this is the sort of definition one is likely to find in the dictionary. A lexical definition is usually the type expected from a request for definition, and it is generally expected that such a definition will be stated as simply as possible in order to convey information to the widest audience.
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.
Héritage (informatique)En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de la déclaration d’une nouvelle classe, d'y inclure les caractéristiques d’une autre classe. L'héritage établit une relation de généralisation-spécialisation qui permet d'hériter dans la déclaration d’une nouvelle classe (appelée classe dérivée, classe fille, classe enfant ou sous-classe) des caractéristiques (propriétés et méthodes) de la déclaration d'une autre classe (appelée classe de base, classe mère, classe parent ou super-classe).
Object-based languageThe term object-based language may be used in a technical sense to describe any programming language that uses the idea of encapsulating state and operations inside objects. Object-based languages need not support inheritance or subtyping, but those that do are also termed object-oriented. Object-based languages that do not support inheritance or subtyping are usually not considered to be true object-oriented languages.
Genus–differentia definitionA genus–differentia definition is a type of intensional definition, and it is composed of two parts: a genus (or family): An existing definition that serves as a portion of the new definition; all definitions with the same genus are considered members of that genus. the differentia: The portion of the definition that is not provided by the genus. For example, consider these two definitions: a triangle: A plane figure that has 3 straight bounding sides. a quadrilateral: A plane figure that has 4 straight bounding sides.
Programmation par contratLa programmation par contrat (en anglais, design by contract ou DBC) est un paradigme de programmation dans lequel le déroulement des traitements est régi par des règles. Ces règles, appelées des assertions, forment un contrat qui précise les responsabilités entre le client et le fournisseur d'un morceau de code logiciel. C'est une méthode de programmation semi-formelle dont le but principal est de réduire le nombre de bugs dans les programmes.
Theoretical definitionA theoretical definition defines a term in an academic discipline, functioning as a proposal to see a phenomenon in a certain way. A theoretical definition is a proposed way of thinking about potentially related events. Theoretical definitions contain built-in theories; they cannot be simply reduced to describing a set of observations. The definition may contain implicit inductions and deductive consequences that are part of the theory. A theoretical definition of a term can change, over time, based on the methods in the field that created it.
Polymorphisme (informatique)En informatique et en théorie des types, le polymorphisme, du grec ancien polús (plusieurs) et morphê (forme), est le concept consistant à fournir une interface unique à des entités pouvant avoir différents types. Par exemple, des opérations telles que la multiplication peuvent ainsi être étendues à des scalaires aux vecteurs ou aux matrices, l'addition, des scalaires aux fonctions ou aux chaînes de caractères, etc.
Composition (programmation)En programmation informatique, la composition est une technique qui permet de combiner plusieurs éléments de programmation entre eux pour obtenir un élément ayant une fonctionnalité plus complexe. On distingue la composition de fonctions, la composition d'objets, et la composition dans les modèles. La composition de fonctions consiste à définir une nouvelle fonction en combinant plusieurs fonctions entre elles. Ce procédé s'inspire directement de la composition de fonctions en mathématiques, où le résultat d'une fonction est utilisé comme paramètre d'une autre.
Circular definitionA circular definition is a type of definition that uses the term(s) being defined as part of the description or assumes that the term(s) being described are already known. There are several kinds of circular definition, and several ways of characterising the term: pragmatic, lexicographic and linguistic. Circular definitions are related to Circular reasoning in that they both involve a self-referential approach. Circular definitions may be unhelpful if the audience must either already know the meaning of the key term, or if the term to be defined is used in the definition itself.
Large numbersLarge numbers are numbers significantly larger than those typically used in everyday life (for instance in simple counting or in monetary transactions), appearing frequently in fields such as mathematics, cosmology, cryptography, and statistical mechanics. They are typically large positive integers, or more generally, large positive real numbers, but may also be other numbers in other contexts. Googology is the study of nomenclature and properties of large numbers.
Algèbre de compositionEn mathématiques, les algèbres de composition sur un corps commutatif sont des structures algébriques qui généralisent simultanément le corps des nombres complexes, le corps non commutatif des quaternions de Hamilton et l'algèbre des octonions de Cayley. Dans cet article, on note K un corps commutatif (de caractéristique quelconque), et les algèbres ne sont pas supposées être associatives ni – a priori du moins – de dimension finie.
Définition des planètesvignette|Photographie de la planète Neptune (en grand) et de sa lune Triton (en petit), prise par Voyager 2 lors de sa sortie de la partie planétaire du Système solaire. Depuis sa création afin de décrire les « étoiles errantes » de l'époque classique, la définition des planètes est empreinte d'ambigüité. Durant sa longue utilisation, le mot a eu différentes significations, souvent équivalentes.