Termes clés

Termes clés

modèle abstrait
technique qui dérive des modèles conceptuels de haut niveau plus simples pour un ordinateur tout en explorant la science de ce que de nouveaux algorithmes peuvent ou ne peuvent pas faire
mémoire allouée
région de mémoire réservée pour contenir une valeur
fichier d'archive
.a
fichier qui contient une bibliothèque statique
Arduino
plateforme matérielle destinée à la création de matériel simple et peu coûteux à des fins éducatives ou pour les amateurs
assembleur
programme qui traduit le code source en langage d'assemblage en code machine
langage d'assemblage
langage de bas niveau dans lequel chaque instruction correspond directement à une instruction machine
BASIC
ancien langage de programmation de haut niveau
code binaire
programme au format natif compris par un CPU, qui est une longue série de 0 et de 1
C
langage de niveau intermédiaire largement utilisé depuis les années 1970
C++
langage orienté objet de niveau intermédiaire basé sur C
unité centrale de traitement
puce informatique capable d'exécuter des programmes en code machine
fil d'exécution enfant
fil d'exécution démarré par le fil parent, et qui ne s'exécute que pour une période limitée dans une section parallèle
thèse de Church-Turing
théorie scientifique affirmant qu'un algorithme peut être converti d'un modèle de calcul raisonnable à un autre
Clang
compilateur C à code source ouvert développé par le projet LLVM
relocalisation de code
fusionne des sections de code et de données distinctes en sections uniques (une pour le code et une pour les données)
compilateur
(aussi : interpréteur) programme qui traduit le code source d'un langage de niveau intermédiaire ou de haut niveau en quelque chose qu'un ordinateur peut lire
modèle de calcul
système pour définir ce qu'un algorithme fait et comment l'exécuter
programmation concurrente
situation où plusieurs programmes ou tâches s'exécutent simultanément, qu'ils utilisent plusieurs processeurs ou partagent un seul processeur
cœur
processeur individuel intégré dans une puce CPU
programmation déclarative
paradigme dans lequel le code dicte un résultat souhaité sans spécifier comment ce résultat est atteint
pilote de périphérique
morceau de code responsable de la connexion à un composant matériel tel qu'une carte vidéo ou un clavier
calcul distribué
forme spécifique de programmation parallèle où les processeurs travaillent ensemble en parallèle, mais les processeurs se trouvent dans plusieurs ordinateurs connectés, et non dans un seul ordinateur
format exécutable et lié
format binaire standard pour le code objet
référence externe
symbole utilisé dans un module, mais non défini dans ce module, et dont la définition est donc attendue dans un autre module
micrologiciel
code de très bas niveau qui communique directement avec le matériel, offrant une interface pratique pour d'autres logiciels
mémoire libérée
mémoire qui est restituée pour être réutilisée lorsqu'une valeur n'est plus nécessaire
programmation fonctionnelle
paradigme dans lequel les algorithmes sont écrits comme des fonctions mathématiques
GCC
compilateur C à code source ouvert développé par le projet GNU
Git
système de gestion de versions largement utilisé
GitHub
site web qui permet le stockage gratuit de dépôts Git publics
GOTO
opération non structurée qui ordonne à un ordinateur de sauter à une partie entièrement différente du programme
unité de traitement graphique
processeur massivement parallèle qui complète un CPU ; les GPU ont été initialement conçus pour le rendu graphique en temps réel dans les jeux vidéo
modèle matériel
conception de la manière dont un ordinateur physique spécifique exécute des algorithmes
langage de programmation de haut niveau
langage de programmation qui opère à un niveau d'abstraction élevé, ce qui signifie que les détails de bas niveau tels que la gestion de la mémoire sont automatisés
programmation impérative
paradigme dans lequel le programmeur écrit une série d'étapes qui doivent être suivies dans l'ordre
architecture de jeu d'instructions
type de modèle matériel qui définit une liste d'opérations qu'un CPU peut exécuter
environnement de développement intégré
programme avec une interface utilisateur graphique qui inclut un éditeur de texte, un compilateur et d'autres outils, le tout dans une seule application
interpréteur
(aussi : compilateur) programme qui traduit le code source d'un langage de niveau intermédiaire ou de haut niveau en quelque chose qu'un ordinateur peut lire
pointeur invalide
pointeur qui ne contient pas une adresse valide
noyau
partie centrale d'un système d'exploitation responsable de la gestion et de l'interface avec les composants matériels
calcul lambda
modèle de calcul abstrait défini par Alonzo Church qui a inspiré le paradigmee de la programmation fonctionnelle
niveau d'abstraction
degré auquel un modèle de calcul, un langage de programmation ou un logiciel est lié au matériel informatique
bibliothèque
fichier qui contient le code objet pour des fonctions et des variables globales destinées à être réutilisées
éditeur de liens
programme qui effectue l'édition de liens
édition de liens
processus de collecte et de combinaison de diverses pièces de code objet en un seul fichier programme qui peut être chargé en mémoire et exécuté
Linux
noyau de système d'exploitation à code source ouvert compatible Unix
édition de liens au chargement
lorsque la liaison dynamique se produit au moment où un programme exécutable est exécuté pour la première fois
langage de programmation de bas niveau
langage de programmation qui opère à un faible niveau d'abstraction, ce qui signifie que le code est similaire au code machine
code machine
séquence de chiffres binaires qui peut être comprise et exécutée directement par un ordinateur
fuite de mémoire
se produit lorsqu'une partie de la mémoire est allouée mais jamais libérée
gestion de la mémoire
processus d'allocation et de libération de mémoire
passage de messages
approche de programmation parallèle où des processus séparés communiquent uniquement en envoyant des messages, sans partager de mémoire
Message Passing Interface
interface de passage de messages qui a été développée pour la première fois dans les années 1990
langage de programmation de niveau intermédiaire
langage de programmation qui est quelque peu abstrait au-dessus du bas niveau, mais pas autant qu'un langage de programmation de haut niveau ; permet un accès direct au matériel
modularité
propriété du code qui lui permet d'être divisé en une petite pièce réutilisable
multicœur
puce CPU qui contient plus d'un cœur
objet
une valeur de programme qui possède à la fois des données, ou variables, et des procédures qui travaillent ensemble pour représenter un concept humain spécifique
programmation orientée objet
paradigme dans lequel le code est organisé en objets, où chaque objet possède à la fois des données et des procédures
OpenMP
bibliothèque pour la programmation parallèle dans le modèle SMP
système d'exploitation
logiciel qui fournit une plateforme pour les applications et gère les composants matériels
opérateur
opération de programmation fondamentale qui combine des valeurs
ordinateur parallèle
système multiprocesseur qui prend en charge la programmation parallèle
calcul parallèle
pratique consistant à utiliser de manière productive les ordinateurs parallèles
programmation parallèle
technique de programmation informatique qui permet l'exécution de code en parallèle sur plusieurs processeurs
fil parent
fil d'exécution qui s'exécute du début à la fin du programme, et qui démarre et gère les fils d'exécution enfants
pointeur
variable qui contient l'adresse mémoire d'une autre variable et pointe vers cette variable
programmation procédurale
paradigme dans lequel le code est organisé en procédures
procédure
fonction dans le contexte de la programmation
paradigmee de langage de programmation
philosophie et approche pour organiser le code
modèle de programmation
conception pour que les humains puissent lire et écrire
machine à accès aléatoire
modèle de calcul abstrait utilisé pour analyser l'efficacité des algorithmes
dépôt
conteneur pour les fichiers et les informations connexes stockés dans un outil de gestion de versions
liaison à l'exécution
lorsque l'édition de liens se produit après qu'un programme a déjà commencé à s'exécuter
Rust
un langage de programmation de niveau intermédiaire relativement nouveau créé par la Mozilla Foundation dans les années 2010
erreur de segmentation
se produit si l'indice est très éloigné de la plage
erreur sémantique
lorsque le code compile et s'exécute, mais ne se comporte pas comme il le devrait
bibliothèque partagée
fichier de bibliothèque qui peut être partagé par plusieurs programmes simultanément
mémoire partagée
modèle de programmation dans lequel les processus/tâches partagent un espace d'adressage commun, qu'ils lisent et écrivent de manière asynchrone
socket
connexion Internet entre deux ordinateurs
code source
texte d'un programme écrit dans un langage de programmation
bibliothèque statique
type simple de bibliothèque qui copie le contenu des fichiers objet dans un seul fichier appelé « archive »
programmation structurée
paradigme dans lequel le flux de contrôle est toujours contrôlé par des conditionnelles (« if ») ou des boucles (« while ») et jamais par GOTO
symbole
identifiant pour une fonction ou une variable globale
résolution de symboles
pendant l'étape de résolution de symboles, l'éditeur de liens associe chaque référence de symbole à exactement une définition de symbole
table des symboles
tableau de structures dans lequel chaque entrée comprend le nom, la taille et l'emplacement du symbole
multiprocesseur symétrique
modèle dans lequel il existe plusieurs processeurs parallèles pratiquement identiques
logiciel système
programmes qui fournissent l'infrastructure et les plateformes sur lesquelles d'autres programmes s'appuient
fil d'exécution
chemin d'exécution parallèle léger qui partage la mémoire avec d'autres fils d'exécution
Unix
système d'exploitation largement utilisé, principalement dans les serveurs et le développement logiciel depuis les années 1970
gestion de versions
outils utilisés pour stocker et améliorer plusieurs versions de fichiers de projet, prendre en charge la collaboration d'équipe et la capacité de revenir à des versions antérieures
Visual C++
compilateur C et C++ sous licence propriétaire développé par Microsoft