Réécriture (informatique)En informatique théorique, la réécriture (ou récriture) est un modèle de calcul dans lequel il s’agit de transformer des objets syntaxiques (mots, termes, lambda-termes, programmes, preuves, graphes, etc.) en appliquant des règles bien précises. La réécriture est utilisée en informatique, en algèbre, en logique mathématique et en linguistique. La réécriture est utilisée en pratique pour la gestion des courriers électroniques (dans le logiciel sendmail, les entêtes de courrier sont manipulées par des systèmes de réécriture) ou la génération et l'optimisation de code dans les compilateurs.
RubyRuby est un langage de programmation libre. Il est interprété, orienté objet et multi-paradigme. Le langage a été standardisé au Japon en 2011 (JIS X 3017:2011), et en 2012 par l'Organisation internationale de normalisation (ISO 30170:2012). Yukihiro « Matz » Matsumoto est le créateur de Ruby. Frustré par son expérience en développement Smalltalk et Lisp, il commence la conception d'un nouveau langage en 1993 sous Emacs, puis publie une première version en 1995 sous licence libre. Il enchaîne depuis les nouvelles versions.
Strong and weak typingIn computer programming, one of the many ways that programming languages are colloquially classified is whether the language's type system makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition of what the terms mean and different authors disagree about the implied meaning of the terms and the relative rankings of the "strength" of the type systems of mainstream programming languages.
Bounds checkingIn computer programming, bounds checking is any method of detecting whether a variable is within some bounds before it is used. It is usually used to ensure that a number fits into a given type (range checking), or that a variable being used as an array index is within the bounds of the array (index checking). A failed bounds check usually results in the generation of some sort of exception signal. As performing bounds checking during each use can be time-consuming, it is not always done.
Normal form (abstract rewriting)In abstract rewriting, an object is in normal form if it cannot be rewritten any further, i.e. it is irreducible. Depending on the rewriting system, an object may rewrite to several normal forms or none at all. Many properties of rewriting systems relate to normal forms. Stated formally, if (A,→) is an abstract rewriting system, x∈A is in normal form if no y∈A exists such that x→y, i.e. x is an irreducible term. An object a is weakly normalizing if there exists at least one particular sequence of rewrites starting from a that eventually yields a normal form.
Système de ThueEn informatique théorique et en logique mathématique, un système de semi-Thue ou sa version symétrique, un système de Thue, est un système de réécriture de chaînes de caractères ou mots, appelé ainsi d'après son inventeur, le mathématicien norvégien Axel Thue. Contrairement aux grammaires formelles, un tel système ne distingue pas entre symboles terminaux et non terminaux, et ne possède pas d'axiome. Un système de semi-Thue est donné par une relation binaire finie fixe entre mots sur un alphabet donné, dont les éléments sont appelés les règles de réécriture, et notées .
Abstract rewriting systemIn mathematical logic and theoretical computer science, an abstract rewriting system (also (abstract) reduction system or abstract rewrite system; abbreviated ARS) is a formalism that captures the quintessential notion and properties of rewriting systems. In its simplest form, an ARS is simply a set (of "objects") together with a binary relation, traditionally denoted with ; this definition can be further refined if we index (label) subsets of the binary relation.
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.
Confluence (informatique)vignette|Le nom « confluence » est le même que celui utilisé en géographie : deux cours d'eau se rejoignent. En mathématiques, ou en informatique, la confluence d'une relation binaire est définie comme la propriété suivante : Pour tous éléments tels que et , il existe un élément tel que et . La confluence est équivalente à la propriété de Church-Rosser. La confluence locale est une propriété plus faible que la confluence, utile pour les systèmes de réécriture. Elle est définie par : Pour tous éléments tels que et , il existe un élément tel que et .
Entier naturelEn mathématiques, un entier naturel est un nombre permettant fondamentalement de compter des objets considérés comme des unités équivalentes : un jeton, deux jetons... une carte, deux cartes, trois cartes... Un tel nombre entier peut s'écrire avec une suite finie de chiffres en notation décimale positionnelle (sans signe et sans virgule). L’étude des entiers naturels est l’objet de l’arithmétique, branche des mathématiques, constituée dès l'Antiquité grecque.
Mécanismevignette|Mécanisme d'une crémaillère. Un mécanisme est un assemblage de pièces mécaniques dont certaines peuvent se déplacer par rapport aux autres. Cet assemblage ne constitue donc pas un solide. Chacun de ces mouvements indépendants, ou modes cinématiques, sont appelés degrés de mobilité. Par exemple, le mécanisme d'une montre désigne l'ensemble des ressorts, balancier et engrenages utilisés pour faire tourner les aiguilles. Les mécanismes sont généralement utilisés pour transformer un mouvement en un autre.
Bio-inspired roboticsBio-inspired robotic locomotion is a fairly new subcategory of bio-inspired design. It is about learning concepts from nature and applying them to the design of real-world engineered systems. More specifically, this field is about making robots that are inspired by biological systems, including Biomimicry. Biomimicry is copying from nature while bio-inspired design is learning from nature and making a mechanism that is simpler and more effective than the system observed in nature.