Common LispCommon Lisp (en abrégé CL) est une spécification du langage Lisp standardisée par l'ANSI. Common Lisp est un dialecte de Lisp standardisé par l'ANSI X3.226-1994. Développé pour standardiser les variantes divergentes de Lisp qui l'ont précédé, ce n'est pas une implémentation mais une spécification à laquelle les implémentations Lisp essayent de se conformer. Il est fréquemment abrégé en CL. Common Lisp est un langage de programmation à usage général, a contrario de dialectes de Lisp comme Emacs Lisp et AutoLisp, qui sont des langages d'extension embarqués dans des produits particuliers.
S-expressionUne S-expression (ou expression symbolique) est une convention pour la représentation de données ou d'expressions d'un programme sous forme textuelle. Les S-expressions sont utilisées dans la famille de langages Lisp, incluant Scheme et , ainsi que comme métalangage dans des protocoles de communication tels IMAP ou le langage CBCL (Common Business Communication Language) de John McCarthy.
Restructured Extended ExecutorRestructured Extended Executor (Rexx) est un langage de programmation, inventé par Mike Cowlishaw, chercheur d'IBM. Il s'appelait initialement REX (Revised EXecutor), mais le sigle était déjà déposé. Langage interprété procédural, il est un des seuls héritiers du PL/I, ou du moins de sa syntaxe. C'est un langage de script commun à de nombreux systèmes IBM : les mainframes, en particulier VM/CMS où il succédait à EXEC et EXEC 2''', puis plus tard MVS/ TSO et z/OS. Il était disponible aussi sous OS/2.
PréprocesseurEn informatique, un préprocesseur est un programme qui procède à des transformations sur un code source, avant l'étape de traduction proprement dite (compilation ou interprétation). Les préprocesseurs sont des exemples typiques de langages spécialisés. Selon le niveau de leur analyse du texte source, on distingue des préprocesseurs lexicaux et des préprocesseurs syntaxiques. Les préprocesseurs lexicaux sont les préprocesseurs de plus bas niveau, au sens où ils requièrent uniquement un mécanisme d'analyse lexicale.
Dylan (langage)Dylan est un langage de programmation dynamique, réflexif, orienté objet et fonctionnel. Il propose un modèle de programmation axé vers une génération efficace de code machine. Il a été créé au début des années 1990 par un groupe conduit par Apple pour son PDA, l'Apple Newton.
Fonction variadiqueEn programmation informatique, une fonction variadique est une fonction d'arité indéfinie, c'est-à-dire qui accepte un nombre variable de paramètres. De nombreuses opérations mathématiques et logiques peuvent se représenter sous forme de fonctions variadiques. Par exemple, l'addition de nombres ou la concaténation de chaînes de caractères peuvent s'appliquer à un nombre arbitraire d'opérandes. Le langage C permet la définition de fonctions variadiques. Les exemples les plus connus sont les fonctions standard d'entrée-sortie printf et scanf.
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.
Job Control LanguageJob Control Language (« langage de contrôle des tâches »), couramment appelé JCL, désigne certains langages de scripts, en particulier sur les systèmes d'exploitation mainframe d'IBM, dont le rôle est d'exécuter un batch. Il existe deux langages JCL d'IBM, l'un utilisé sur la famille DOS/360, l'autre sur la famille OS/360. Bien qu'ils aient en commun des règles de syntaxe et de conception, il s'agit de langages assez différents. Dans le JCL, l'unité est le job (la tâche), laquelle consiste en un ou plusieurs steps (étapes).
Déroulage de boucleEn informatique, le déroulage de boucle (en loop unrolling) est une technique d'optimisation des boucles visant à en augmenter la rapidité d'exécution. Il s'agit de dupliquer le corps de la boucle de manière à éviter de répéter l'instruction de saut. Il est possible d'appliquer ensuite d'autres optimisations (allocation de registre, ordonnancement des instructions) au code après duplication. Cette technique est fréquemment utilisée par les compilateurs optimisants, et permet aussi de générer du code vectoriel à partir d'une boucle.
Réutilisation de codeLa réutilisation de code désigne l'utilisation de logiciel existant, de connaissances sur ce logiciel, de composants logiciels ou du code source, pour créer de nouveaux logiciels. La réutilisation s'appuie fréquemment sur le concept de modularité. Par extension, ce terme désigne également l'ensemble des techniques informatiques proposées ou mises en œuvre pour faciliter cette réutilisation. Bibliothèque logicielle Patron de conception logiciel Framework "An architecture for designing reusable embedded syste