Very high-level programming languageA very high-level programming language (VHLL) is a programming language with a very high level of abstraction, used primarily as a professional programmer productivity tool. VHLLs are usually domain-specific languages, limited to a very specific application, purpose, or type of task, and they are often scripting languages (especially extension languages), controlling a specific environment. For this reason, very high-level programming languages are often referred to as goal-oriented programming languages.
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.
Programmation orientée aspectLa programmation orientée aspect ou POA (en anglais, aspect oriented programming ou AOP) est un paradigme de programmation qui permet de traiter séparément les préoccupations transversales (en anglais, cross-cutting concerns), qui relèvent souvent de la technique, des préoccupations métier, qui constituent le cœur d'une application. Un exemple classique d'utilisation est la journalisation, mais certains principes architecturaux ou modèles de conception peuvent être implémentés à l'aide de ce paradigme de programmation, comme l'inversion de contrôle.
Natural-language programmingNatural-language programming (NLP) is an ontology-assisted way of programming in terms of natural-language sentences, e.g. English. A structured document with Content, sections and subsections for explanations of sentences forms a NLP document, which is actually a computer program. Natural language programming is not to be mixed up with natural language interfacing or voice control where a program is first written and then communicated with through natural language using an interface added on.
LangageLe langage est la capacité d'exprimer une pensée et de communiquer au moyen d'un système de signes (vocaux, gestuel, graphiques, tactiles, olfactifs, etc.) doté d'une sémantique, et le plus souvent d'une syntaxe — mais ce n'est pas systématique (la cartographie est un exemple de langage non syntaxique). Fruit d'une acquisition, la langue est une des nombreuses manifestations du langage. Les langages sont constitués de signaux correspondant au support physique de l'information.
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.
Third-generation programming languageA third-generation programming language (3GL) is a high-level computer programming language that tends to be more machine-independent and programmer-friendly than the machine code of the first-generation and assembly languages of the second-generation, while having a less specific focus to the fourth and fifth generations. Examples of common and historical third-generation programming languages are ALGOL, BASIC, C, COBOL, Fortran, Java, and Pascal. 3GLs are much more machine-independent and more programmer-friendly.
Méthode d'analyse et de conception d'applications orientées objetLa méthode d'analyse et de conception d'applications orientées objet (dite MACAO) est fondée sur une démarche participative par prototypage incrémental (processus itératif) permettant aux utilisateurs d'intervenir très tôt dans le processus de développement du logiciel. MACAO utilise la notation UML afin de définir la structure du logiciel en termes de classes et de composants ainsi que pour modéliser sa dynamique à l'aide de diagrammes d'interactions ou d'états/transitions.
Calcul des constructionsLe calcul des constructions (CoC de l'anglais calculus of constructions) est un lambda-calcul typé d'ordre supérieur dans lequel les types sont des valeurs de première classe. Il est par conséquent possible, dans le CoC, de définir des fonctions qui vont des entiers vers les entiers, mais aussi des entiers vers les types ou des types vers les types. Le CoC est fortement normalisant, bien que, d'après le théorème d'incomplétude de Gödel, il soit impossible de démontrer cette propriété dans le CoC lui-même, puisqu'elle implique sa cohérence.
Calcul infinitésimalLe calcul infinitésimal (ou calcul différentiel et intégral) est une branche des mathématiques, développée à partir de l'algèbre et de la géométrie, qui implique deux idées majeures complémentaires : Le calcul différentiel, qui établit une relation entre les variations de plusieurs fonctions, ainsi que la notion de dérivée. La vitesse, l'accélération, et les pentes des courbes des fonctions mathématiques en un point donné peuvent toutes être décrites sur une base symbolique commune, les taux de variation, l'optimisation et les taux liés.
Entity component systemEntity component system (ECS) is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components. ECS follows the principle of composition over inheritance, meaning that every entity is defined not by a type hierarchy, but by the components that are associated with it. Systems act globally over all entities which have the required components.
Second-generation programming languageThe label of second-generation programming language (2GL) is a generational way to categorize assembly languages. The term was coined to provide a distinction from higher level machine independent third-generation programming languages (3GLs) (such as COBOL, C, or JavaScript) and earlier first-generation programming languages (machine code) Second-generation programming languages have the following properties: Lines within a program correspond directly to processor commands, essentially acting as a mnemonic device overlaying a first generation programming language.