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.
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 formelUn langage formel, en mathématiques, en informatique et en linguistique, est un ensemble de mots. L'alphabet d'un langage formel est l'ensemble des symboles, lettres ou lexèmes qui servent à construire les mots du langage ; souvent, on suppose que cet alphabet est fini. La théorie des langages formels a pour objectif de décrire les langages formels. Les mots sont des suites d'éléments de cet alphabet ; les mots qui appartiennent à un langage formel particulier sont parfois appelés mots bien formés ou formules bien formées.
Système formelUn système formel est une modélisation mathématique d'un langage en général spécialisé. Les éléments linguistiques, mots, phrases, discours, etc., sont représentés par des objets finis (entiers, suites, arbres ou graphes finis...). Le propre d'un système formel est que la correction au sens grammatical de ses éléments est vérifiable algorithmiquement, c'est-à-dire que ceux-ci forment un ensemble récursif.
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.
Méthode formelle (informatique)En informatique, les méthodes formelles sont des techniques permettant de raisonner rigoureusement, à l'aide de logique mathématique, sur un programme informatique ou du matériel électronique numérique, afin de démontrer leur validité par rapport à une certaine spécification. Elles reposent sur les sémantiques des programmes, c'est-à-dire sur des descriptions mathématiques formelles du sens d'un programme donné par son code source (ou, parfois, son code objet).
LispLisp est la plus ancienne famille de langages de programmation à la fois impératifs et fonctionnels. Développé initialement en tant que modèle pratique pour représenter des programmes (par contraste avec la notion théorique de machine de Turing), il est devenu, dans les années 1970 et 80, un des langages de choix (comme le langage Prolog) pour la recherche en intelligence artificielle. Les langages Lisp sont aujourd'hui utilisés dans de nombreux domaines, de la programmation Web à la finance, et dans certains cursus de formation en informatique.
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.
SchemeScheme (prononciation : ) est un langage de programmation dérivé du langage fonctionnel Lisp, créé dans les années 1970 au Massachusetts Institute of Technology (MIT) par Gerald Jay Sussman et Guy L. Steele. Le but des créateurs du langage était d'épurer le Lisp en conservant les aspects essentiels, la flexibilité et la puissance expressive. Scheme a donc une syntaxe extrêmement simple, avec un nombre très limité de mots-clés. Comme en Lisp, la notation préfixée permet de s'affranchir d'une précédence des opérateurs.
Tool Command Language(abréviation : Tcl) est un langage de script initialement conçu en 1988 par John Ousterhout et son équipe à l'université de Californie à Berkeley. Il s'inspire principalement des langages C, Lisp, sh et awk. Ce langage à typage dynamique est multiplateforme, extensible, facile à apprendre et repose sur 12 règles syntaxiques. Tcl s'interface très aisément avec le langage C, ce qui lui permet de servir par exemple d'interprète embarqué dans des applications.
Démonstration formelleUne démonstration formelle est une séquence finie de propositions (appelées formules bien formées dans le cas d'un langage formel) dont chacun est un axiome, une hypothèse, ou résulte des propositions précédentes dans la séquence par une règle d'inférence. La dernière proposition de la séquence est un théorème d'un système formel. La notion de théorème n'est en général pas effective, donc n'existe pas de méthode par laquelle nous pouvons à chaque fois trouver une démonstration d'une proposition donnée ou de déterminer s'il y en a une.
Théorie des modèlesLa théorie des modèles est une branche de la logique mathématique qui traite de la construction et de la classification des structures. Elle définit en particulier les modèles des théories axiomatiques, l'objectif étant d'interpréter les structures syntaxiques (termes, formules, démonstrations...) dans des structures mathématiques (ensemble des entiers naturels, groupes, univers...) de façon à leur associer des concepts de nature sémantique (comme le sens ou la vérité).
SacrificeLe sacrifice (étymologiquement ; du latin sacrificium, de sacer facere) désigne une offrande, en particulier de la nourriture, des objets voire des vies humaines ou animales, à une ou plusieurs divinités. À l'origine, le terme de sacrifice s'emploie pour une grande variété d'actes. Habituellement, il est surtout utilisé pour les sacrifices sanglants. Dans le cas d'offrandes de nourriture ou de liquide, on parle de sacrifice non sanglant ou libation, et, dans le cas d'une portion du sol, d'inauguration.
Sacrifice humainvignette|260px|Enfants de Llullaillaco, Sacrifice humain chez les Incas, Province de Salta (Argentine). Un sacrifice humain est un rite religieux qui a été pratiqué dans la plupart des civilisations, notamment au Néolithique et durant l'Antiquité, le plus souvent pour s'attirer les faveurs des dieux, par exemple pour conjurer la sécheresse, ou pour que les personnages importants tels que les souverains soient accompagnés dans l'au-delà par les sacrifiés.
Symbole (logique)alt=Ce diagramme montre les entités syntaxiques qui peuvent être construits à partir des langages formels. Les symboles et les chaînes de symboles peuvent être divisés en formules bien formées. Un langage formel peut être considéré comme identique à l'ensemble de ses formules bien formées. L'ensemble des formules bien formées peut être divisé en théorèmes et non-théorèmes.|vignette|Ce diagramme montre les entités syntaxiques qui peuvent être construits à partir des langages formels.
Animal sacrificeAnimal sacrifice is the ritual killing and offering of one or more animals, usually as part of a religious ritual or to appease or maintain favour with a deity. Animal sacrifices were common throughout Europe and the Ancient Near East until the spread of Christianity in Late Antiquity, and continue in some cultures or religions today. Human sacrifice, where it existed, was always much rarer. All or only part of a sacrificial animal may be offered; some cultures, like the ancient and modern Greeks, eat most of the edible parts of the sacrifice in a feast, and burnt the rest as an offering.
Image resolutionImage resolution is the level of detail an holds. The term applies to digital images, film images, and other types of images. "Higher resolution" means more image detail. Image resolution can be measured in various ways. Resolution quantifies how close lines can be to each other and still be visibly resolved. Resolution units can be tied to physical sizes (e.g. lines per mm, lines per inch), to the overall size of a picture (lines per picture height, also known simply as lines, TV lines, or TVL), or to angular subtense.
Visual Basic for ApplicationsVisual Basic for Applications (VBA) est une implémentation de Microsoft Visual Basic qui est intégrée dans toutes les applications de Microsoft Office, dans quelques autres applications Microsoft comme Visio et au moins partiellement dans quelques autres applications comme AutoCAD, WordPerfect, MicroStation, Solidworks ou encore ArcGIS.
Super-résolutionEn traitement du signal et en , la super-résolution désigne le processus qui consiste à améliorer la résolution spatiale, c'est-à-dire le niveau de détail, d'une image ou d'un système d'acquisition. Cela regroupe des méthodes matérielles qui visent à contourner les problèmes optiques et autres difficultés physiques rencontrées lors de l'acquisition d'image, ainsi que des techniques algorithmiques qui, à partir d'une ou de plusieurs images déjà capturées, créent une image de meilleure résolution.