EmacsEmacs est une famille d'éditeurs de texte disposant d'un ensemble extensible de fonctionnalités. Il est populaire parmi les programmeurs et plus généralement les personnes ayant des compétences techniques sur les ordinateurs. L'EMACS originel, signifiant Editing MACroS running on TECO, c'est-à-dire « macros d'édition pour TECO », a été écrit en 1976 par Richard Stallman, initialement avec Guy Steele. Il a été inspiré par les idées développées dans TECMAC et TMACS, deux jeux de macros d'édition pour TECO, notamment écrits par Guy Steele, David Moon, Richard Greenblatt et Charles Frankston.
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.
GNU EmacsGNU Emacs est l’une des deux versions les plus populaires de l’éditeur de texte Emacs (l’autre version est XEmacs). Ces deux versions sont majoritairement compatibles et ont de très nombreux points communs, décrits dans l’article Emacs. Dans le manuel, on peut lire qu'il est l’. GNU Emacs, développé par Richard Stallman depuis 1984 dans le cadre du projet GNU, s’appuie sur le langage Emacs Lisp. GNU Emacs fait partie du projet GNU. En 1984, Stallman commence le projet sur les systèmes Unix.
Emacs Lispvignette|Logo de GNU Emacs Emacs Lisp est un dialecte du langage de programmation Lisp, utilisé entre autres par les éditeurs de texte GNU Emacs et XEmacs (qui auront la dénomination commune d'Emacs dans cet article). Il est utilisé pour l'implémentation de la plupart des fonctionnalités d'édition standard d'Emacs, le reste étant écrit en C. Les utilisateurs d'Emacs écrivent habituellement du code en Emacs Lisp afin de personnaliser et rajouter des fonctionnalités à Emacs.
Coq (logiciel)Coq est un assistant de preuve utilisant le langage Gallina, développé par l'équipe PI.R2 de l’Inria au sein du laboratoire PPS du CNRS et en partenariat avec l'École polytechnique, le CNAM, l'Université Paris Diderot et l'Université Paris-Sud (et antérieurement l'École normale supérieure de Lyon). Le nom du logiciel (initialement CoC) est particulièrement adéquat car : il est français ; il est fondé sur le calcul des constructions (CoC abrégé en anglais) introduit par Thierry Coquand.
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).
MicroEMACSMicroEMACS est un éditeur de texte de la famille Emacs. MicroEMACS a été conçu fin 1985, début 1986 par Dave Conroy pour son usage privé. De nombreuses personnes lui ont alors demandé une copie du programme, et le code source fut distribué sans se soucier du droit d'auteur comme il était encore d'usage à cette époque dans le milieu hacker. Daniel M. Lawrence obtint alors une copie du programme, et le transforma en logiciel très populaire. C'est son travail qui le rendit très populaire.
XEmacsXEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version. Between 1987 and 1993 significant delays occurred in bringing out a new version of GNU Emacs (presumed to be version 19). In the late 1980s, Richard P. Gabriel's Lucid Inc.
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.
Circuit LCUn circuit LC est un circuit électrique contenant une bobine (L) et un condensateur (Capacité). C'est ainsi qu'on obtient le phénomène de résonance électrique. Ce type de circuit est utilisé dans les filtres, les tuners et les mélangeurs de fréquences. Par conséquent, son utilisation est répandue dans les transmissions sans fil en radiodiffusion, autant pour l'émission que la réception. thumb|200px|Circuit LC série et parallèle thumb|upright=1.
Guerre d'éditeursIl existe une tradition datant du début des années 1970 (et donc dès les débuts du travail courant sur écran d'ordinateur) chez les programmeurs, qui consiste à défendre son logiciel éditeur de texte favori avec une passion qui n'est pas sans rappeler à certains celle du fanatisme religieux. De nombreuses flamewars se sont déroulées entre des groupes qui s'insultaient les uns les autres en soutenant que l'éditeur de texte de leur choix était l'outil parfait pour l'édition.
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.
MatitaMatita is an experimental proof assistant under development at the Computer Science Department of the University of Bologna. It is a tool aiding the development of formal proofs by man-machine collaboration, providing a programming environment where formal specifications, executable algorithms and automatically verifiable correctness certificates naturally coexist. Matita is based on a dependent type system known as the Calculus of (Co)Inductive Constructions (a derivative of Calculus of Constructions), and is compatible, to some extent, with Coq.
Circuit RLUn circuit RL est un circuit électrique contenant une résistance et une bobine ; il est utilisé dans diverses applications, comme filtre passe-bas ou passe-haut, ou dans les convertisseurs de courant continu. Contenant deux composants, il se décline en deux versions différant dans la disposition des composantes (série ou parallèle).
Type (informatique)vignette|Présentation des principaux types de données. En programmation informatique, un type de donnée, ou simplement un type, définit la nature des valeurs que peut prendre une donnée, ainsi que les opérateurs qui peuvent lui être appliqués. La plupart des langages de programmation de haut niveau offrent des types de base correspondant aux données qui peuvent être traitées directement — à savoir : sans conversion ou formatage préalable — par le processeur.
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.
Inférence de typesL'inférence de types est un mécanisme qui permet à un compilateur ou un interpréteur de rechercher automatiquement les types associés à des expressions, sans qu'ils soient indiqués explicitement dans le code source. Il s'agit pour le compilateur ou l'interpréteur de trouver le type le plus général que puisse prendre l'expression. Les avantages à disposer de ce mécanisme sont multiples : le code source est plus aéré, le développeur n'a pas à se soucier de retenir les noms de types, l'interpréteur fournit un moyen au développeur de vérifier (en partie) le code qu'il a écrit et le programme est peu modifié en cas de changement de structure de données.
Conversion de typeEn informatique la conversion de type, le transtypage ou la coercition (cast en anglais) est le fait de convertir une valeur d'un type (source) dans un autre (cible). On distingue trois formes de conversion (dont un seul mérite vraiment le nom de conversion) suivant la relation de sous-typage existant entre les types source et cible : la conversion entre types incomparables ; la coercition ascendante (transtypage vers le haut) ; la coercition descendante (transtypage vers le bas). C'est la coercition la plus ancienne historiquement.
Circuit RLCEn électrocinétique, un circuit RLC est un circuit linéaire contenant une résistance électrique, une bobine (inductance) et un condensateur (capacité). Il existe deux types de circuits RLC, série ou parallèle selon l'interconnexion des trois types de composants. Le comportement d'un circuit RLC est généralement décrit par une équation différentielle du second ordre (là où des circuits RL ou circuits RC se comportent comme des circuits du premier ordre).
Agda (programming language)Agda is a dependently typed functional programming language originally developed by Ulf Norell at Chalmers University of Technology with implementation described in his PhD thesis. The original Agda system was developed at Chalmers by Catarina Coquand in 1999. The current version, originally known as Agda 2, is a full rewrite, which should be considered a new language that shares a name and tradition. Agda is also a proof assistant based on the propositions-as-types paradigm, but unlike Coq, has no separate tactics language, and proofs are written in a functional programming style.