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.
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.
GénéricitéEn programmation, la généricité (ou programmation générique), consiste à définir des algorithmes identiques opérant sur des données de types différents. On définit de cette façon des procédures ou des types entiers génériques. On pourrait ainsi programmer une pile, ou une procédure qui prend l'élément supérieur de la pile, indépendamment du type de données contenues. C'est donc une forme de polymorphisme, le « polymorphisme de type » dit aussi « paramétrage de type » : en effet, le type de donnée général (abstrait) apparaît comme un paramètre des algorithmes définis, avec la particularité que ce paramètre-là est un type.
Scala (langage)Scala est un langage de programmation multi-paradigme conçu à l'École polytechnique fédérale de Lausanne (EPFL) pour exprimer les modèles de programmation courants dans une forme concise et élégante. Son nom vient de l'anglais Scalable language qui signifie à peu près « langage adaptable » ou « langage qui peut être mis à l'échelle ». Il peut en effet être vu comme un métalangage. Scala intègre les paradigmes de programmation orientée objet et de programmation fonctionnelle, avec un typage statique.
Array (data type)In computer science, array is a data type that represents a collection of elements (values or variables), each selected by one or more indices (identifying keys) that can be computed at run time during program execution. Such a collection is usually called an array variable or array value. By analogy with the mathematical concepts vector and matrix, array types with one and two indices are often called vector type and matrix type, respectively. More generally, a multidimensional array type can be called a tensor type, by analogy with the physical concept, tensor.
Sciences numériquesLes sciences numériques (traduction de l'anglais computational sciences), autrement dénommées calcul scientifique ou informatique scientifique, ont pour objet la construction de modèles mathématiques et de méthodes d'analyse quantitative, en se basant sur l'utilisation des sciences du numérique, pour analyser et résoudre des problèmes scientifiques. Cette approche scientifique basée sur un recours massif aux modélisations informatiques et mathématiques et à la simulation se décline en : médecine numérique, biologie numérique, archéologie numérique, mécanique numérique, par exemple.
ClojureClojure est un langage de programmation fonctionnelle compilée, multi-plateforme et destiné à la création de programmes sûrs et facilement distribuables. C’est un dialecte de Lisp. Il transpile vers du bytecode Java, du code JavaScript et du bytecode .NET. Clojure est donc disponible sur la JVM, le CLR, les navigateurs et Node.js. vignette|Rich Hickey, créateur de Clojure Rich Hickey est le créateur du langage Clojure. Avant Clojure, il a développé dotLisp, un projet similaire basé sur la plate-forme .
Système FLe est un formalisme logique qui permet d'exprimer de façon très riche et très rigoureuse des fonctions et d'y démontrer formellement des propriétés difficiles. Plus précisément, le (également connu sous le nom de lambda-calcul polymorphe ou de lambda-calcul du second ordre) est une extension du lambda-calcul simplement typé introduite indépendamment par le logicien Jean-Yves Girard et par l'informaticien John C. Reynolds. Ce système se distingue du lambda-calcul simplement typé par l'existence d'une quantification universelle sur les types qui permet d'exprimer du polymorphisme.
Go (langage)Go est un langage de programmation compilé et concurrent inspiré de C et Pascal. Il a été développé par Google à partir d’un concept initial de , Rob Pike et Ken Thompson. vignette|alt=Logo de Google Go|droite|Mascotte de Google Go Go veut faciliter et accélérer la programmation à grande échelle : en raison de sa simplicité, il est donc concevable de l’utiliser aussi bien pour écrire des applications, des scripts ou de grands systèmes. Cette simplicité est nécessaire aussi pour assurer la maintenance et l’évolution des programmes sur plusieurs générations de développeurs.
Technical communicationTechnical communication (or Tech Comm) is communication of technical subject matter such as engineering, science, or technology content. The largest part of it tends to be technical writing, though importantly it often requires aspects of visual communication (which in turn sometimes entails technical drawing, requiring more specialized training). Technical communication also encompasses oral delivery modes such as presentations involving technical material.
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.
Rédacteur techniqueLe rédacteur technique a pour fonction la rédaction et la production de documents techniques ou spécialisés, notamment la documentation de logiciels (dont les aides en lignes, manuels d'installation, configuration, maintenance), des spécifications et standards, des formations, et plus généralement tout document nécessitant une approche professionnelle pour sa création. Le rédacteur technique est un spécialiste de la rédaction et de la conception des documents.
Elixir (langage)Elixir est un langage de programmation multi-paradigme fonctionnant sur la machine virtuelle Erlang (BEAM). Il est créé en 2011 par le développeur José Valim, personnalité du monde Ruby et l'un des premiers contributeurs au framework de programmation Ruby on Rails. Il intègre les paradigmes de programmation fonctionnelle, programmation concurrente et , et supporte la métaprogrammation via un système de macros et le polymorphisme via un système dit de protocoles.
Biologie computationnelleLa biologie computationnelle (parfois appelée biologie numérique) est une branche de la biologie qui implique le développement et l'application de méthodes d'analyse de données, d'approches théoriques, de modélisation mathématique et de techniques de simulation computationnelle pour étudier des systèmes biologiques, écologiques, comportementaux et sociaux. Le domaine est largement défini et comprend des fondements en biologie, mathématiques appliquées, statistiques, biochimie, chimie, biophysique, biologie moléculaire, génétique, génomique, informatique et évolution.
Computational engineeringComputational Engineering is an emerging discipline that deals with the development and application of computational models for engineering, known as Computational Engineering Models or CEM. At this time, various different approaches are summarized under the term Computational Engineering, including using computational geometry and virtual design for engineering tasks, often coupled with a simulation-driven approach In Computational Engineering, algorithms solve mathematical and logical models that describe engineering challenges, sometimes coupled with some aspect of AI, specifically Reinforcement Learning.
Sociologie informatiqueLa sociologie informatique ou sociologie computationnelle (en anglais computational sociology) est une branche de la sociologie qui consiste à utiliser le calcul pour analyser des phénomènes sociaux. Il s'agit d'utiliser la technique de la simulation sur ordinateur pour la construction de modèles sociaux. Cela implique un certain arrangement des agents sociaux, et des interactions entre eux. Enfin, on examine l'effet de ces interactions sur un agrégat social.
Déclaration de guerrethumb|200px|États-Unis : le président Roosevelt signe une déclaration de guerre contre l'Allemagne le . Une déclaration de guerre est une déclaration formelle d'un gouvernement national pour signifier l'état de guerre entre cette nation et une ou plusieurs autres. En droit international public, une déclaration de guerre entraîne la reconnaissance entre les pays d'un état d'hostilités entre eux, de plus une telle déclaration permet de régir la conduite des engagements militaires entre les forces de ces pays.
SmalltalkSmalltalk est un langage de programmation orienté objet, réflexif et dynamiquement typé. Il fut l'un des premiers langages de programmation à disposer d'un environnement de développement intégré complètement graphique. Il a été créé en 1972. Il est inspiré par les langages Lisp et Simula. Il a été conçu par Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg au Palo Alto Research Center de Xerox. Le langage a été formalisé en tant que Smalltalk-80 et est depuis utilisé par un grand nombre de personnes.
Chimie numériqueLa chimie numérique ou chimie informatique, parfois aussi chimie computationnelle, est une branche de la chimie et de la physico-chimie qui utilise les lois de la chimie théorique exploitées dans des programmes informatiques spécifiques afin de calculer structures et propriétés d'objets chimiques tels que les molécules, les solides, les agrégats atomiques (ou clusters), les surfaces, etc., en appliquant autant que possible ces programmes à des problèmes chimiques réels.
Droit de la guerreLe droit de la guerre est une expression pour désigner les lois, en général coutumières, sur lesquelles s'entendent les peuples ennemis lorsqu'ils sont en guerre. Elles sont très anciennes, attestées aussi bien dans l'Antiquité que chez les peuples premiers, et comprennent la manière de commencer une guerre et ses enjeux, les moyens de combattre qui sont considérés comme déloyaux, le statut et les droits des otages, des ambassadeurs, des arbitres, des combattants, des civils et des prisonniers, les trêves et les traités, la manière de terminer la guerre et de faire la paix.