MétaprogrammationLa métaprogrammation, , désigne l'écriture de programmes qui manipulent des données décrivant elles-mêmes des programmes. Dans le cas particulier où le programme manipule ses propres instructions pendant son exécution, on parle de programme auto-modifiant. Elle peut être employée pour générer du code interprété par un compilateur et donner un résultat constant, afin d'éviter un calcul manuel. Il permet également de réduire le temps d'exécution du programme si le résultat constant avait été classiquement calculé par le programme comme pour les résultats variables.
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.
Macro-définitionEn programmation informatique, une macro-définition ou simplement macro est l'association d'un texte de remplacement à un identificateur, tel que l'identificateur est remplacé par le texte dans tout usage ultérieur. Le plus souvent, on permet également le passage de paramètres syntaxiques. L'usage d'une macro comme instruction est souvent appelée macro-instruction et l'opération de remplacement d'une macro-instruction par sa définition la macro-expansion. Les macros sont donc un moyen de faire de la métaprogrammation.
Langage de programmation de haut niveauEn programmation informatique, un langage de programmation à haut niveau d'abstraction généralement appelé langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur.
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.
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.
Expression-oriented programming languageAn expression-oriented programming language is a programming language in which every (or nearly every) construction is an expression and thus yields a value. The typical exceptions are macro definitions, preprocessor commands, and declarations, which expression-oriented languages often treat as statements. Lisp and ALGOL 68 are expression-oriented languages. Pascal is not an expression-oriented language. All functional programming languages are expression-oriented.
Langage de programmationthumb|Fragment de code écrit dans le langage de programmation JavaScript. Un langage de programmation est un langage informatique destiné à formuler des algorithmes et produire des programmes informatiques qui les appliquent. D'une manière similaire à une langue naturelle, un langage de programmation est composé d'un alphabet, d'un vocabulaire, de règles de grammaire, de significations, mais aussi d'un environnement de traduction censé rendre sa syntaxe compréhensible par la machine.
C (langage)C est un langage de programmation impératif, généraliste et de bas niveau. Inventé au début des années 1970 pour réécrire Unix, C est devenu un des langages les plus utilisés, encore de nos jours. De nombreux langages plus modernes comme C++, C#, Java et PHP ou JavaScript ont repris une syntaxe similaire au C et reprennent en partie sa logique. C offre au développeur une marge de contrôle importante sur la machine (notamment sur la gestion de la mémoire) et est de ce fait utilisé pour réaliser les « fondations » (compilateurs, interpréteurs.
Hygienic macroIn computer science, hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. They are a feature of programming languages such as Scheme, Dylan, Rust, Nim, and Julia. The general problem of accidental capture was well known in the Lisp community before the introduction of hygienic macros. Macro writers would use language features that would generate unique identifiers (e.g., gensym) or use obfuscated identifiers to avoid the problem.
Langage de programmation exotiqueUn langage de programmation exotique est un langage de programmation imaginé comme un test des limites de la création de langages de programmation, un exercice intellectuel ou encore une blague, sans aucune intention de créer un langage réellement utile. De tels langages sont souvent un passe-temps pour les hackers ou les programmeurs. L'adjectif « exotique » permet de distinguer ces langages de ceux communément utilisés dans l'industrie.
Compile-time function executionIn computing, compile-time function execution (or compile time function evaluation, or general constant expressions) is the ability of a compiler, that would normally compile a function to machine code and execute it at run time, to execute the function at compile time. This is possible if the arguments to the function are known at compile time, and the function does not make any reference to or attempt to modify any global state (i.e. it is a pure function).
Langage de programmation de bas niveauvignette|Language de programmation Un langage de programmation de bas niveau ne fournit que peu d'abstraction par rapport au jeu d'instructions du processeur de la machine. Les langages de bas niveau sont à opposer aux langages de haut niveau, qui permettent de créer un programme sans tenir compte des caractéristiques particulières (registres, etc) de l'ordinateur censé exécuter le programme. Le langage machine et le langage d'assemblage sont les archétypes de langages de bas niveau, puisqu'ils permettent de manipuler explicitement des registres, des adresses mémoires, des instructions machines.
F SharpF# est un langage de programmation fonctionnel, impératif et orienté objet pour la plate-forme .NET. F# est développé par Microsoft Research et son noyau est dérivé du langage OCaml, avec lequel il est fortement compatible. Ces deux langages de programmation font partie de la même famille que les langages ML. Ce langage a été conçu spécifiquement pour la plate-forme .NET, donc fortement orienté-objet. Depuis novembre 2010, Microsoft a mis à la disposition de tous les bibliothèques core et son compilateur F#, sous la licence Apache 2.
Io (langage)Io est un langage de programmation pur objet basé sur les prototypes et distribué sous licence BSD. Il a été créé en 2002 par Steve Dekorte. Lorsque Steve Dekorte imagina son langage, il le voulait léger, simple, multi-plateforme et facile à embarquer dans un autre programme. C'est ainsi qu'est né Io (dont le nom doit refléter sa simplicité).
Nim (langage)Nim (anciennement nommé Nimrod) est un langage de programmation impératif, multi-paradigme et compilé imaginé et développé par Andreas Rumpf. Il est prévu pour être efficace, expressif et élégant. Il supporte la métaprogrammation, la programmation fonctionnelle, procédurale et orientée objet. Initialement, le compilateur Nim était écrit en Pascal. En 2008, une version du compilateur écrite en Nim a été réalisée. Le compilateur est open source et développé par un groupe de volontaires en plus d'Andreas Rumpf.
Variadic macro in the C preprocessorA variadic macro is a feature of some computer programming languages, especially the C preprocessor, whereby a macro may be declared to accept a varying number of arguments. Variable-argument macros were introduced in 1999 in the ISO/IEC 9899:1999 (C99) revision of the C language standard, and in 2011 in ISO/IEC 14882:2011 (C++11) revision of the C++ language standard. Support for variadic macros with no arguments was added in C++20 and will be added in C23.
Théorie des langages de programmationvignette|La lettre grecque minuscule λ (lambda) est un symbole non officiel de la théorie des langages de programmation. Cet usage dérive du lambda-calcul, un modèle de calcul introduit par Alonzo Church dans les années 1930 et largement utilisé par les chercheurs en langage de programmation. Il orne la couverture du texte classique Structure et interprétation des programmes informatiques, et apparaît dans le titre des fameux Lambda Papers de 1975 à 1980, écrits par Gerald Jay Sussman et Guy Steele, les développeurs du langage de programmation Scheme.
Comparison of programming languagesProgramming languages are used for controlling the behavior of a machine (often a computer). Like natural languages, programming languages follow rules for syntax and semantics. There are thousands of programming languages and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional programmers may use dozens of languages in a career. Most programming languages are not standardized by an international (or national) standard, even widely used ones, such as Perl or Standard ML (despite the name).
C SharpC# (C sharp en anglais britannique) est un langage de programmation orientée objet, commercialisé par Microsoft depuis 2002 et destiné à développer sur la plateforme Microsoft .NET. Il est dérivé du C++ et très proche du Java dont il reprend la syntaxe générale ainsi que les concepts, y ajoutant des notions telles que la surcharge des opérateurs, les et les délégués. Il est utilisé notamment pour développer des applications web sur la plateforme ASP.NET, ainsi que des jeux vidéo avec le moteur de jeux Unity.