Logic optimizationLogic optimization is a process of finding an equivalent representation of the specified logic circuit under one or more specified constraints. This process is a part of a logic synthesis applied in digital electronics and integrated circuit design. Generally, the circuit is constrained to a minimum chip area meeting a predefined response delay. The goal of logic optimization of a given circuit is to obtain the smallest logic circuit that evaluates to the same values as the original one.
Programmation par contraintesLa programmation par contraintes (PPC, ou CP pour constraint programming en anglais) est un paradigme de programmation apparu dans les années 1970 et 1980 permettant de résoudre des problèmes combinatoires de grande taille tels que les problèmes de planification et d'ordonnancement. En programmation par contraintes, on sépare la partie modélisation à l'aide de problèmes de satisfaction de contraintes (ou CSP pour Constraint Satisfaction Problem), de la partie résolution dont la particularité réside dans l'utilisation active des contraintes du problème pour réduire la taille de l'espace des solutions à parcourir (on parle de propagation de contraintes).
Constraint satisfactionIn artificial intelligence and operations research, constraint satisfaction is the process of finding a solution through a set of constraints that impose conditions that the variables must satisfy. A solution is therefore a set of values for the variables that satisfies all constraints—that is, a point in the feasible region. The techniques used in constraint satisfaction depend on the kind of constraints being considered.
Problème de satisfaction de contraintesLes problèmes de satisfaction de contraintes ou CSP (Constraint Satisfaction Problem) sont des problèmes mathématiques où l'on cherche des états ou des objets satisfaisant un certain nombre de contraintes ou de critères. Les CSP font l'objet de recherches intenses à la fois en intelligence artificielle et en recherche opérationnelle. De nombreux CSP nécessitent la combinaison d'heuristiques et de méthodes d'optimisation combinatoire pour être résolus en un temps raisonnable.
Synthèse logiqueEn électronique, la synthèse logique (RTL synthesis) est la traduction d'une forme abstraite de description du comportement d'un circuit (voir Register Transfer Level) en sa réalisation concrète sous forme de portes logiques. Le point de départ peut être un langage de description de matériel comme VHDL ou Verilog, un schéma logique du circuit. D'autres sources sont venues s'additionner depuis les années 2010, comme l'utilisation de la programmation en OpenCL. Le point d'arrivée peut être un code objet pour un CPLD ou FPGA ou la création d'un ASIC.
Synthèse totaleEn chimie organique, la synthèse totale est en principe la synthèse chimique complète de molécules organiques à partir de morceaux plus simples et habituellement sans recourir à des processus biologiques. Dans la pratique, ces morceaux plus simples sont commercialement disponibles en grandes quantités et sont souvent des précurseurs pétrochimiques. Parfois, des produits « naturels » (comme le sucre) sont utilisés comme point de départ : il est fait l'hypothèse qu'ils sont fabriqués naturellement ou qu'ils peuvent être recréés à partir de leur éléments constitutifs.
Environnement d'exécutionUn environnement d'exécution ou runtime est un logiciel responsable de l'exécution des programmes informatiques écrits dans un langage de programmation donné. Un runtime offre des services d'exécution de programmes tels que les entrées-sorties, l'arrêt des processus, l'utilisation des services du système d'exploitation, le traitement des erreurs de calcul, la génération d'événements, l'utilisation de services offerts dans un autre langage de programmation, le débogage, le profilage et le ramasse-miette.
Network synthesisNetwork synthesis is a design technique for linear electrical circuits. Synthesis starts from a prescribed impedance function of frequency or frequency response and then determines the possible networks that will produce the required response. The technique is to be compared to network analysis in which the response (or other behaviour) of a given circuit is calculated. Prior to network synthesis, only network analysis was available, but this requires that one already knows what form of circuit is to be analysed.
Logique polyvalenteLes logiques polyvalentes (ou multivalentes, ou multivaluées) sont des alternatives à la logique classique aristotélicienne, bivalente, dans laquelle toute proposition doit être soit vraie soit fausse. Elles sont apparues à partir des années 1920, surtout à la suite des travaux du logicien polonais Jan Łukasiewicz. Elles sont principalement étudiées au niveau du seul calcul propositionnel et peu au niveau du calcul des prédicats.
Infinite-valued logicIn logic, an infinite-valued logic (or real-valued logic or infinitely-many-valued logic) is a many-valued logic in which truth values comprise a continuous range. Traditionally, in Aristotle's logic, logic other than bivalent logic was abnormal, as the law of the excluded middle precluded more than two possible values (i.e., "true" and "false") for any proposition. Modern three-valued logic (ternary logic) allows for an additional possible truth value (i.e.
Interprocedural optimizationInterprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length. IPO differs from other compiler optimizations by analyzing the entire program as opposed to a single function or block of code. IPO seeks to reduce or eliminate duplicate calculations and inefficient use of memory and to simplify iterative sequences such as loops.
Runtime verificationRuntime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very particular properties, such as datarace and deadlock freedom, are typically desired to be satisfied by all systems and may be best implemented algorithmically. Other properties can be more conveniently captured as formal specifications.
Contrainte (mathématiques)En mathématiques, une contrainte est une condition que doit satisfaire la solution d'un problème d'optimisation. On distingue deux types de contraintes : les contraintes d'égalité et les contraintes en inégalité. L'ensemble des solutions satisfaisant toutes les contraintes est appelé l'ensemble admissible. On considère un problème d'optimisation classique : avec et et désigne le vecteur . Dans cet exemple, la première ligne montre la fonction à minimiser (appelée fonction objectif ou fonction-coût) mais aussi l'ensemble où la solution doit être recherché, ici C.
Optimizing compilerIn computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster.
Undefined behaviorIn computer programming, undefined behavior (UB) is the result of executing a program whose behavior is prescribed to be unpredictable, in the language specification to which the computer code adheres. This is different from unspecified behavior, for which the language specification does not prescribe a result, and implementation-defined behavior that defers to the documentation of another component of the platform (such as the ABI or the translator documentation).
Combinational logicIn automata theory, combinational logic (also referred to as time-independent logic or combinatorial logic ) is a type of digital logic which is implemented by Boolean circuits, where the output is a pure function of the present input only. This is in contrast to sequential logic, in which the output depends not only on the present input but also on the history of the input. In other words, sequential logic has memory while combinational logic does not.
Logique floueLa logique floue (fuzzy logic, en anglais) est une logique polyvalente où les valeurs de vérité des variables — au lieu d'être vrai ou faux — sont des réels entre 0 et 1. En ce sens, elle étend la logique booléenne classique avec des . Elle consiste à tenir compte de divers facteurs numériques pour qu'on souhaite acceptable.
Synthèse chimiqueUne synthèse chimique est un enchaînement de réactions chimiques mis en œuvre volontairement ou non permettant l'obtention d'un ou de plusieurs produits finaux, parfois avec isolation de composés chimiques intermédiaires. Les synthèses chimiques peuvent avoir lieu à toutes sortes d'échelles : du laboratoire de recherche (de l'ordre du gramme ou moins) à l'industrie chimique (souvent de l'ordre de la tonne ou plus) ou dans la nature (biosynthèses).
Cartographie en ligneLa cartographie en ligne (en anglais : web mapping ou webmapping) est la forme de la cartographie numérique qui fait usage d'Internet pour pouvoir produire, concevoir, traiter et publier des cartes géographiques. Elle repose sur les services Web dans la logique du cloud computing. Avec le Web 2.0, de nombreux services Web cartographiques sont apparus (cf palette en fin d'article). Certains sont « propriétaires », tels que Google Maps, Google Earth, Bing Maps, etc. D'autres sont fondés sur des démarches coopératives libres, tel que OpenStreetMap.
Porte logiquevignette|Composants TTL Une porte logique (gate) est un circuit électronique réalisant des opérations logiques (booléennes) sur une séquence de bits. Cette séquence est donnée par un signal d'entrée modulé en créneau (signal carré), et cadencé de façon précise par un circuit d'horloge, ou quartz. Les opérations logiques sont réalisées électriquement par une combinaison de bascules ou inverseurs, à base de transistors. Étant donné les capacités d'intégration en électronique, un circuit intégré comporte généralement plusieurs portes à la fois.