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.
Logiciel librethumb|200px|Logo du projet GNU, initiateur du mouvement du logiciel libre.|alt=Gnou du projet GNU Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification et la duplication par autrui en vue de sa diffusion sont permises, techniquement et juridiquement, ceci afin de garantir certaines libertés induites, dont le contrôle du programme par l'utilisateur et la possibilité de partage entre individus. Ces droits peuvent être simplement disponibles ou bien établis par une licence, dite « libre », basée sur le droit d'auteur.
Processeur vectorielvignette|Processeur vectoriel d'un supercalculateur Cray-1. Un processeur vectoriel est un processeur possédant diverses fonctionnalités architecturales lui permettant d'améliorer l’exécution de programmes utilisant massivement des tableaux, des matrices, et qui permet de profiter du parallélisme inhérent à l'usage de ces derniers. Développé pour des applications scientifiques et exploité par les machines Cray et les supercalculateurs qui lui feront suite, ce type d'architecture a rapidement montré ses avantages pour des applications grand public (on peut citer la manipulation d'images).
Logiciel propriétaireUn logiciel propriétaire, logiciel non libre ou parfois logiciel privatif voire logiciel privateur, est un logiciel qui ne permet pas légalement ou techniquement, ou par quelque autre moyen que ce soit, d'exercer simultanément les quatre libertés logicielles que sont l'exécution du logiciel pour tout type d'utilisation, l'étude de son code source (et donc l'accès à ce code source), la distribution de copies, ainsi que la modification du code source.
Mémoire viveLa mémoire vive, parfois abrégée avec l'acronyme anglais RAM (Random Access Memory), est la mémoire informatique dans laquelle peuvent être enregistrées les informations traitées par un appareil informatique. On écrit mémoire vive par opposition à la mémoire morte. L'acronyme RAM date de 1965. Les caractéristiques actuelles de cette mémoire sont : Sa fabrication à base de circuits intégrés ; L'accès direct à l'information par opposition à un accès séquentiel ; Sa rapidité d'accès, essentielle pour fournir rapidement les données au processeur ; Sa volatilité, qui entraîne une perte de toutes les données en mémoire dès qu'elle cesse d'être alimentée en électricité.
Logicielthumb|Démarche de construction d'un logiciel. En informatique, un logiciel est un ensemble de séquences d’instructions interprétables par une machine et d’un jeu de données nécessaires à ces opérations. Le logiciel détermine donc les tâches qui peuvent être effectuées par la machine, ordonne son fonctionnement et lui procure ainsi son utilité fonctionnelle. Les séquences d’instructions appelées programmes ainsi que les données du logiciel sont ordinairement structurées en fichiers.
Return-oriented programmingLa ROP, return-oriented programming, est une technique d'exploitation avancée de type dépassement de pile (stack overflow) permettant l'exécution de code par un attaquant et ce en s'affranchissant plus ou moins efficacement des mécanismes de protection tels que l'utilisation de zones mémoires non-exécutables ( bit NX pour Data Execution Prevention, DEP), l'utilisation d'un espace d'adressage aléatoire (Address Space Layout Randomization, ASLR) ou encore la signature de code.
Tableau (structure de données)En informatique, un tableau est une structure de données représentant une séquence finie d'éléments auxquels on peut accéder efficacement par leur position, ou indice, dans la séquence. C'est un type de conteneur que l'on retrouve dans un grand nombre de langages de programmation. Dans les langages à typage statique (comme C, Java et OCaml), tous les éléments d’un tableau doivent être du même type. Certains langages à typage dynamique (tels APL et Python) permettent des tableaux hétérogènes.
Computer memoryComputer memory stores information, such as data and programs for immediate use in the computer. The term memory is often synonymous with the term primary storage or main memory. An archaic synonym for memory is store. Computer memory operates at a high speed compared to storage which is slower but less expensive and higher in capacity. Besides storing opened programs, computer memory serves as disk cache and write buffer to improve both reading and writing performance.
Memory errorMemory gaps and errors refer to the incorrect recall, or complete loss, of information in the memory system for a specific detail and/or event. Memory errors may include remembering events that never occurred, or remembering them differently from the way they actually happened. These errors or gaps can occur due to a number of different reasons, including the emotional involvement in the situation, expectations and environmental changes.