Covariance and contravariance (computer science)Many programming language type systems support subtyping. For instance, if the type is a subtype of , then an expression of type should be substitutable wherever an expression of type is used. Variance is how subtyping between more complex types relates to subtyping between their components. For example, how should a list of s relate to a list of s? Or how should a function that returns relate to a function that returns ? Depending on the variance of the type constructor, the subtyping relation of the simple types may be either preserved, reversed, or ignored for the respective complex types.
CompilateurEn informatique, un compilateur est un programme qui transforme un code source en un code objet. Généralement, le code source est écrit dans un langage de programmation (le langage source), il est de haut niveau d'abstraction, et facilement compréhensible par l'humain. Le code objet est généralement écrit en langage de plus bas niveau (appelé langage cible), par exemple un langage d'assemblage ou langage machine, afin de créer un programme exécutable par une machine.
D (langage)Le D est un langage de programmation impératif orienté objet et multi-paradigmes conçu pour la programmation système. Il s’inspire de nombreux langages, dont C++, Java (avec lequel il a en commun l'utilisation d'un ramasse-miettes et l'existence d'un héritage simple), Eiffel (pour le paradigme de programmation par contrat). D est en version 2.x, abrégé « D2 » (depuis le 17 juin 2007), et subit ponctuellement de légères modifications de spécification.
Optimizing compilerIn computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster.
String literalA string literal or anonymous string is a literal for a string value in the source code of a computer program. Modern programming languages commonly use a quoted sequence of characters, formally "bracketed delimiters", as in x = "foo", where "foo" is a string literal with value foo. Methods such as escape sequences can be used to avoid the problem of delimiter collision (issues with brackets) and allow the delimiters to be embedded in a string. There are many alternate notations for specifying string literals especially in complicated cases.
Exécution dans le désordreL'exécution dans le désordre ( en anglais) consiste à réorganiser l'ordre dans lequel les instructions vont s'exécuter dans le processeur. Ces instructions ne sont alors pas forcément exécutées dans l'ordre dans lequel elles apparaissent dans le programme. Cela permet de mieux exploiter les ressources d'un processeur et ainsi de gagner du temps de calcul par rapport à l'exécution dans l'ordre () qui consiste à exécuter les instructions dans l'ordre prévu par le compilateur.
Pascal (langage)Pascal est un langage de programmation impératif qui, conçu pour l'enseignement, se caractérise par une syntaxe claire, rigoureuse et facilitant la structuration des programmes. Le langage Pascal a été le premier langage de ce type (Impératif) largement répandu dans le monde, et ce, 2 ans avant le langage C. Le pascal (à partir de Borland Pascal 4 ou au delà) a les caractéristiques suivantes : Langage verbeux (anglais) Blocs d'instructions avec Begin et End Les mots clés, variables, fonctions et procédures sont insensibles à la casse.
Indentation comme syntaxeUn langage de programmation utilise l'indentation comme syntaxe si une zone de code indentée délimite un bloc. Un bloc est une entité programmatique qui délimite une portée. Peter J. Landin a inventé le concept de l'indentation comme syntaxe et créé le terme anglais off-side rule qui le désigne en 1966. Il constitue une alternative au . L'exemple qui suit est un exemple de bloc en Python (noter les deux points obligatoires - Ils sont des marqueurs syntaxiques qui facilitent la lecture) : def fib(n): if n
Langage de description de matérielUn langage de description de matériel, ou du matériel (ou HDL pour hardware description language en anglais) est un langage informatique permettant la description d'un circuit électronique au niveau des transferts de registres (RTL). Celui-ci peut décrire les fonctions réalisées par le circuit (description comportementale) ou les portes logiques utilisées par le circuit (description structurelle). Il est possible d'observer le fonctionnement d'un circuit électronique modélisé dans un langage de description grâce à la simulation.
Compteur ordinalDans un processeur, le compteur ordinal ou pointeur d'instruction (en anglais : instruction pointer ou program counter) est le registre (souvent nommé PC) qui contient l'adresse mémoire de l'instruction en cours d'exécution ou prochainement exécutée (cela dépend de l'architecture). Une fois l'instruction chargée, il est automatiquement incrémenté pour pointer l'instruction suivante. Les instructions de branchement ou d'appel et retour de sous-programmes permettent de choisir une autre adresse pour influer sur le déroulement du programme informatique.
Java version historyThe Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community Process (JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform. The language is specified by the Java Language Specification (JLS); changes to the JLS are managed under JSR 901.
P-code machineIn computer programming, a p-code machine (portable code machine) is a virtual machine designed to execute p-code (the assembly language or machine code of a hypothetical central processing unit (CPU)). This term is applied both generically to all such machines (such as the Java virtual machine (JVM) and MATLAB precompiled code), and to specific implementations, the most famous being the p-Machine of the Pascal-P system, particularly the UCSD Pascal implementation, among whose developers, the p in p-code was construed to mean pseudo more often than portable, thus pseudo-code meaning instructions for a pseudo-machine.