Théorie des typesEn mathématiques, logique et informatique, une théorie des types est une classe de systèmes formels, dont certains peuvent servir d'alternatives à la théorie des ensembles comme fondation des mathématiques. Ils ont été historiquement introduits pour résoudre le paradoxe d'un axiome de compréhension non restreint. En théorie des types, il existe des types de base et des constructeurs (comme celui des fonctions ou encore celui du produit cartésien) qui permettent de créer de nouveaux types à partir de types préexistant.
Type systemIn computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term.
Type dépendantEn Informatique et en Logique, un type dépendant est un type qui peut dépendre d'une valeur définie dans le langage typé. Les langages Agda et Gallina (de l'assistant de preuve Coq) sont des exemples de langages à type dépendant. Les types dépendants permettent par exemple de définir le type des listes à n éléments. Voici un exemple en Coq. Inductive Vect (A: Type): nat -> Type := | nil: Vect A 0 | cons (n: nat) (x: A) (t: Vect A n): Vect A (S n).
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.
Substructural type systemSubstructural type systems are a family of type systems analogous to substructural logics where one or more of the structural rules are absent or only allowed under controlled circumstances. Such systems are useful for constraining access to system resources such as , locks, and memory by keeping track of changes of state that occur and preventing invalid states. Several type systems have emerged by discarding some of the structural rules of exchange, weakening, and contraction: Ordered type systems (discard exchange, weakening and contraction): Every variable is used exactly once in the order it was introduced.
Pure type systemNOTOC In the branches of mathematical logic known as proof theory and type theory, a pure type system (PTS), previously known as a generalized type system (GTS), is a form of typed lambda calculus that allows an arbitrary number of sorts and dependencies between any of these. The framework can be seen as a generalisation of Barendregt's lambda cube, in the sense that all corners of the cube can be represented as instances of a PTS with just two sorts. In fact, Barendregt (1991) framed his cube in this setting.
Classe abstraiteEn programmation orientée objet (POO), une classe abstraite est une classe si et seulement si elle n'est pas instanciable. Elle sert de base à d'autres classes dérivées (héritées). Le mécanisme des classes abstraites permet de définir des comportements (méthodes) dont l'implémentation (le code dans la méthode) se fait dans les classes filles. Ainsi, on a l'assurance que les classes filles respecteront le contrat défini par la classe mère abstraite. Ce contrat est une interface de programmation.
Sûreté du typageLa sûreté du typage est un principe permettant d'améliorer la qualité de la programmation. Dans les langages à typage statique, l'un des objectifs est d'intercepter les erreurs de type de données lors de la compilation. Un type peut être vu comme un ensemble de valeurs et un ensemble d'opérateurs. La programmation objet a introduit les notions d'objets, messages, classes, héritage. Il est tentant de faire coller les classes à des types.
Type abstraitEn informatique, un type de donnée abstrait (en anglais, abstract data type ou ADT) est une spécification mathématique d'un ensemble de données et de l'ensemble des opérations qu'on peut effectuer sur elles. On qualifie d'abstrait ce type de donnée car il ne spécifie pas comment les données sont représentées ni comment les opérations sont implémentées. Les types abstraits les plus utilisés sont : arbre binaire conteneur dictionnaire ou tableau associatif ensemble Graphe liste multiensemble pile Union-find Un type abstrait est composé de cinq champs : Type abstrait ; Utilise ; Opérations ; Pré-conditions ; Axiomes.
Standard MLStandard ML (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of theorem provers. Standard ML is a modern dialect of ML, the language used in the Logic for Computable Functions (LCF) theorem-proving project. It is distinctive among widely used languages in that it has a formal specification, given as typing rules and operational semantics in The Definition of Standard ML.
Intuitionistic type theoryIntuitionistic type theory (also known as constructive type theory, or Martin-Löf type theory) is a type theory and an alternative foundation of mathematics. Intuitionistic type theory was created by Per Martin-Löf, a Swedish mathematician and philosopher, who first published it in 1972. There are multiple versions of the type theory: Martin-Löf proposed both intensional and extensional variants of the theory and early impredicative versions, shown to be inconsistent by Girard's paradox, gave way to predicative versions.
Type énuméréEn programmation informatique, un type énuméré (appelé souvent énumération ou juste enum, parfois type énumératif ou liste énumérative) est un type de données qui consiste en un ensemble de valeurs constantes. Ces différentes valeurs représentent différents cas ; on les nomme énumérateurs. Lorsqu'une variable est de type énuméré, elle peut avoir comme valeur n'importe quel cas de ce type énuméré. Un exemple typique est la représentation de cartes à jouer ordinaires : la suite ("couleur") ainsi que la hauteur (nombre ou figure) de la carte peuvent être représentés par des énumérations.
Abstrait et concretAbstrait et concret sont des classifications qui dénotent si un terme décrit un objet sans ou avec référent physique. Elles sont le plus couramment utilisées en philosophie et en sémantique. Les objets abstraits sont parfois appelés abstracta (sing. abstractum) et les objets concrets concreta (sing. concretum). Un objet abstrait est un objet qui n'existe pas en aucun moment ou endroit particulier mais existe plutôt comme type de chose, c'est-à-dire une idée ou abstraction.
Machine abstraiteEn informatique théorique, et notamment en théorie des automates, un automate abstrait ou une machine abstraite est un modèle théorique d'un ordinateur digital et discret. Il importe peu, dans ce cadre, de savoir si cet appareil peut effectivement être construit, mais plutôt d'appréhender, par ce modèle simplifié, le fonctionnement des machines, et de les comparer entre eux. La notion d'automate ou de machine abstraite, aussi appelé « modèle de machine » joue un rôle central en informatique théorique.
NemerleNemerle is a general-purpose, high-level, statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono). It offers functional, object-oriented, aspect-oriented, reflective and imperative features. It has a simple C#-like syntax and a powerful metaprogramming system. In June 2012, the core developers of Nemerle were hired by the Czech software development company JetBrains. The team was focusing on developing Nitra, a framework to implement extant and new programming languages.
Nominal rigidityIn economics, nominal rigidity, also known as price-stickiness or wage-stickiness, is a situation in which a nominal price is resistant to change. Complete nominal rigidity occurs when a price is fixed in nominal terms for a relevant period of time. For example, the price of a particular good might be fixed at $10 per unit for a year. Partial nominal rigidity occurs when a price may vary in nominal terms, but not as much as it would if perfectly flexible. For example, in a regulated market there might be limits to how much a price can change in a given year.
Art abstraitvignette| Eugène Carrière, Le Sommeil, lithographie (éditions A. Vollard, 1897). vignette|Vassily Kandinsky, sans titre (Étude pour composition VII, Première abstraction), 1913 (datée de « 1910 »), mine graphite, encre de Chine et aquarelle sur papier (), Musée national d'Art moderne (MNAM), Paris. thumb| Otto Freundlich, Composition, 1911, huile sur toile (), Musée d'art moderne de Paris. vignette|Arthur Dove, Nature Symbolized No.2, vers 1911, pastel sur papier sur isorel (), Art Institute of Chicago, lequel fut à Paris entre 1907 et 1909, exposant avec les fauves.
Nominalismevignette Le nominalisme est une doctrine philosophique qui considère que les concepts et les noms qui s'y rapportent ne sont que constructions de l'esprit et conventions de langage. Les choses et les idées ne sont pas intrinsèquement porteuses des concepts par lesquels nous les appréhendons. Par exemple, le terme « homme » ne signifie pas une quelconque essence de l'homme en général.
Expressionnisme abstraitvignette|Cubi VI de David Smith, sculpture expressionniste abstraite exposée au musée d'Israël, à Jérusalem. Lexpressionnisme abstrait est un mouvement artistique qui s'est développé peu après la Seconde Guerre mondiale aux États-Unis. C'est aussi un élément central de l'école de New York, « école » qui a rassemblé les artistes (poètes, peintres, musiciens...) d'avant-garde actifs à New York et aux États-Unis avant et après la Seconde Guerre mondiale. On parle d'expressionnisme abstrait pour un certain type de peinture, de sculpture et de photographie.
IsomorphismeEn mathématiques, un isomorphisme entre deux ensembles structurés est une application bijective qui préserve la structure, et dont la réciproque préserve aussi la structure. Plus généralement, en théorie des catégories, un isomorphisme entre deux objets est un morphisme admettant un « morphisme inverse ». Par exemple, sur l'intervalle des valeurs ... peuvent être remplacées par leur logarithme ..., et les relations d'ordre entre elles seront conservées. On peut à tout moment retrouver les valeurs et en prenant les exponentielles de et .