| Les candidats doivent être capables de : | Notes et orientations |
|---|---|
| Expliquer pourquoi un système informatique nécessite un Système d'exploitation (OS) | |
| Expliquer les tâches clés de gestion assurées par le Système d'exploitation | Y compris la gestion de la mémoire, la gestion des fichiers, la gestion de la sécurité, la gestion du matériel (entrée/sortie/périphériques), la gestion des processus |
| Comprendre la nécessité des logiciels utilitaires typiques fournis avec un système d'exploitation | Y compris formateur de disque, antivirus, logiciel de défragmentation, analyse du contenu du disque / logiciel de réparation de disque, compression de fichiers, logiciel de sauvegarde |
| Comprendre les bibliothèques de programmes | Y compris : • les logiciels en cours de développement sont souvent construits à l'aide de code existant provenant de bibliothèques de programmes • les avantages pour le développeur d'un logiciel construit à l'aide de fichiers de bibliothèque, y compris les fichiers Dynamic Link Library (DLL) |
Logiciels système
Informatique A-Level · Sujet 5
21:02
Systèmes d'exploitation
Vous ne l'avez jamais vu, et vous ne le verrez jamais — pourtant il est toujours là. Derrière chaque application que vous ouvrez, chaque fichier que vous sauvegardez, chaque tapotement sur l'écran, un invisible…
Narration en anglais · Sous-titres anglais + 中文 incrustés
5.1
Systèmes d'exploitation
Programme
Source : Programme Cambridge International
Pourquoi un ordinateur a besoin d'un OS
Le matériel seul peut seulement prélever et exécuter des instructions — il ne sait rien des fichiers, programmes, réseaux ou utilisateurs. Le système d'exploitation 操作系统 (OS) est la couche logicielle qui :
- gère le matériel (processeur 处理器, mémoire, E/S, stockage) pour les programmes en cours d'exécution.
- fournit des services (système de fichiers, réseau, comptes utilisateurs) via une interface claire, afin que les programmes n'aient pas à communiquer directement avec le matériel.
- fournit une interface utilisateur (ligne de commande, GUI, tactile).
- permet à plusieurs programmes de partager le matériel en toute sécurité — chacun obtient un temps CPU équitable et est maintenu hors de la mémoire des autres.
Sans OS, chaque programme aurait ses propres pilotes, et un seul programme pourrait s'exécuter en toute sécurité à la fois.
"Décrire la fonction d'un OS" — la liste à cinq points. L'OS (1) fournit une interface entre l'utilisateur et le matériel ; (2) masque la complexité du matériel à l'utilisateur et aux programmes applicatifs ; (3) gère les ressources matérielles — temps processeur, mémoire, stockage et périphériques d'E/S — et les partage entre les programmes ; (4) charge les logiciels applicatifs en mémoire et les exécute, offrant à chaque programme la même plateforme d'exécution ; (5) permet à plusieurs programmes de s'exécuter simultanément (multitasking 多任务处理) tout en maintenant leur sécurité ainsi que celle des données des utilisateurs. Donnez cinq points différents ; "il fait fonctionner l'ordinateur" ou "il gère les ressources" seul ne rapporte aucun point.


Tâches de gestion clés
Le syllabus en nomme cinq. Chaque point ci-dessous est une chose que l'OS fait réellement, ce qu'une question "décrire" attend.
- gestion de la mémoire 内存管理 — alloue de la mémoire à chaque programme lors de son chargement, garde la mémoire de chaque programme séparée (protection mémoire 内存保护) pour qu'aucun ne puisse écraser l'autre, libère la mémoire quand un programme se termine, et échange des pages entre RAM 随机存取存储器 et stockage secondaire 辅助存储器 (le disque) (mémoire virtuelle 虚拟内存 / fragmentation 分页) pour permettre d'avoir plus de programmes ouverts que la mémoire physique ne le permet.
- gestion des processus 进程管理 — un programme en cours d'exécution est un processus 进程. L'OS crée et supprime des processus, décide quel processus aura le CPU suivant (ordonnancement 调度) et pendant combien de temps (une tranche de temps 时间片), bascule entre eux, résout les conflits lorsque deux veulent la même ressource, et peut tuer celui qui ne répond plus.
- gestion du matériel (entrées/sorties et périphériques) — communique avec chaque appareil via son pilote de périphérique 设备驱动, met en file d'attente et tamponne les données allant vers les dispositifs lents comme une imprimante, répond aux interruptions 中断 des appareils, et partage un appareil entre plusieurs programmes.
- gestion de fichiers — crée, nomme, copie, déplace et supprime des fichiers et dossiers, maintient la structure des répertoires 目录 et un enregistrement de l'emplacement de chaque fichier sur le disque, alloue de l'espace disque aux fichiers, et impose des droits d'accès 访问权限 (lecture / écriture / exécution) pour chaque utilisateur.
- gestion de la sécurité — comptes utilisateurs et mots de passe (authentification 身份验证), droits d'accès, chiffrement des données stockées, pare-feu, mises à jour de sécurité automatiques, et journalisation des actions.


Comment la gestion de la mémoire et des processus soutiennent le multitasking (un favori à quatre points). La gestion de la mémoire charge plusieurs programmes en mémoire en même temps, chacun dans sa propre zone protégée, et suit quelles adresses appartiennent à quels programmes ; la gestion des processus partage le processeur entre eux — chaque processus s'exécute pendant une tranche de temps, l'OS sauvegarde son état et bascule vers le suivant, et ce changement est si rapide que tous les programmes semblent s'exécuter ensemble. Les interruptions permettent à l'OS de reprendre le processeur à un processus dès qu'un périphérique nécessite une attention.
Interruptions. Une interruption matérielle 硬件中断 vient d'un appareil : une touche pressée, un clic de souris, une imprimante sans papier, une fin de transfert de disque, une panne de courant. Une interruption logicielle 软件中断 vient d'un programme : division par zéro, instruction invalide, tentative d'utilisation d'une mémoire dont on ne dispose pas, ou demande de service OS. Le gesteur d'interruptions 中断处理程序 de l'OS sauvegarde l'état du processus en cours, traite l'interruption, puis restaure le processus (le sujet 4 couvre le détail prélever-exécuter).
Logiciels utilitaires
Programmes utilitaires 实用程序 sont des logiciels système qui entretiennent, réparent ou optimisent l'ordinateur plutôt que d'accomplir une tâche utilisateur ; l'examinateur accepte "effectue une tâche de maintenance spécifique qui améliore les performances ou la sécurité". La plupart des OS les incluent :

- formateur de disque — prépare un nouveau disque (ou efface un ancien) pour utilisation : configure son système de fichiers et ses partitions, supprimant toute donnée existante.
- scanneur de virus (antivirus 杀毒软件) — scanne les fichiers et la mémoire, compare le code contre une base de données de signatures connues de virus signatures 签名 et surveille les comportements suspects, puis met en quarantaine ou supprime ce qu'il trouve ; s'exécute selon un planning et à chaque téléchargement, et doit être mis à jour au fur et à mesure de l'apparition de nouveaux virus.
- logiciel de défragmentation (défragmentateur de disque 碎片整理) — un disque dur stocke un fichier dans les blocs libres disponibles, donc après de nombreux enregistrements et suppressions, un fichier est dispersé (fragmenté 碎片化) sur le plateau et la tête de lecture/écriture doit sauter entre les morceaux. Le défragmentateur regroupe les morceaux de chaque fichier côte à côte et rassemble l'espace libre en une seule région, afin que les fichiers se chargent plus vite et que les nouveaux fichiers ne soient pas fragmentés. Inutile sur un SSD, qui n'a pas de tête mobile.
- analyse de contenu de disque / logiciel de réparation de disque — montre ce qui occupe l'espace disque (fichiers volumineux, dupliqués ou temporaires) pour pouvoir les supprimer ; trouve et répare les secteurs défectueux, clusters perdus et erreurs de système de fichiers.
- compression de fichiers (compression 压缩) — réduit la taille des fichiers pour qu'ils nécessitent moins de stockage et se transmettent plus vite ; l'archivage regroupe de nombreux fichiers en un seul.
- logiciel de sauvegarde (backup 备份) — copie des fichiers vers un autre support (disque externe, réseau, cloud) selon un planning pour restaurer les données après perte, corruption ou attaque de ransomware ; une copie complète est suivie de sauvegardes incrémentielles 增量备份 de seuls les éléments modifiés.
- non pare-feu 防火墙 (filtre le trafic réseau selon des règles) et des outils de chiffrement, pour la sécurité ; un moniteur système et des mises à jour automatiques.
Inclure ces outils avec l'OS économise à l'utilisateur l'installation de chacun séparément.
Quel utilitaire fait quoi. Performances : défragmentation (accès aux fichiers plus rapide), réparation de disque (un disque avec des erreurs est lent ou échoue), analyse de contenu de disque (libération d'espace en supprimant les ordures), compression (plus de place sur le disque). Sécurité : scanneur de virus, pare-feu, chiffrement et sauvegarde (la seule récupération possible face au ransomware). Une question "tirer une ligne" associe chaque utilitaire à exactement une finalité — apprenez les paires ci-dessus et utilisez les noms du syllabus.
Exemple résolu. Expliquez comment la défragmentation peut améliorer les performances d'un ordinateur (3 points).
Au fil du temps, un fichier est stocké dans des blocs dispersés sur le disque dur, donc sa lecture nécessite de nombreux mouvements de la tête de lecture/écriture. Le défragmentateur réorganise les blocs pour que chaque fichier soit stocké de manière contiguë et que l'espace libre soit groupé. Les fichiers sont ensuite lus avec moins de mouvements de tête, ils se chargent donc plus vite, et les nouveaux fichiers peuvent être écrits dans un espace continu.
Où se situe le système d'exploitation
Tapez chaque couche. Le SOS est la couche intermédiaire — il se situe entre vos applications et le matériel, partageant la machine en toute sécurité afin que les programmes ne touchent jamais directement le matériel.
| Anglais | Chinois | Pinyin |
|---|---|---|
| multitasking/ˈmʌltitæskɪŋ/ | 多任务处理 | duō rèn wù chǔ lǐ |
| memory management/ˈmeməri ˈmænɪdʒmənt/ | 内存管理 | nèi cún guǎn lǐ |
| memory protection/ˈmeməri prəˈtekʃn/ | 内存保护 | nèi cún bǎo hù |
| RAM/ræm/ | 随机存取存储器 | suí jī cún qǔ cún chǔ qì |
| secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ | 辅助存储器 | fǔ zhù cún chǔ qì |
| virtual memory/ˈvɜːtʃuːəl ˈmeməri/ | 虚拟内存 | xū nǐ nèi cún |
| paging/ˈpeɪdʒɪŋ/ | 分页 | fēn yè |
| process management/ˈprəʊses ˈmænɪdʒmənt/ | 进程管理 | jìn chéng guǎn lǐ |
| process/ˈprəʊses/ | 进程 | jìn chéng |
| scheduling/ˈʃedjuːlɪŋ/ | 调度 | diào dù |
| time slice/taɪm slaɪs/ | 时间片 | shí jiān piàn |
| device driver/dɪˈvaɪs ˈdraɪvə/ | 设备驱动 | shè bèi qū dòng |
| interrupts/ˈɪntərʌpts/ | 中断 | zhōng duàn |
| directory/daɪˈrektəri/ | 目录 | mù lù |
| access rights/ˈækses raɪts/ | 访问权限 | fǎng wèn quán xiàn |
| authentication/ɔːˌθentɪˈkeɪʃn/ | 身份验证 | shēn fèn yàn zhèng |
| firewall/ˈfaɪəwɔːl/ | 防火墙 | fáng huǒ qiáng |
| hardware interrupt/ˈhɑːdweə ˈɪntərʌpt/ | 硬件中断 | yìng jiàn zhōng duàn |
| software interrupt/ˈsɒftweə ˈɪntərʌpt/ | 软件中断 | ruǎn jiàn zhōng duàn |
| interrupt handler/ˈɪntərʌpt ˈhændlə/ | 中断处理程序 | zhōng duàn chǔ lǐ chéng xù |
| utility program/juːˈtɪlɪti ˈprəʊɡræm/ | 实用程序 | shí yòng chéng xù |
| antivirus/ˌæntɪˈvaɪrəs/ | 杀毒软件 | shā dú ruǎn jiàn |
| backup/ˈbækʌp/ | 备份 | bèi fèn |
| compression/kəmˈpreʃn/ | 压缩 | yā suō |
| disk defragmenter/dɪsk ˌdiːˈfræɡmentə/ | 碎片整理 | suì piàn zhěng lǐ |
| signatures/ˈsɪɡnɪtʃəz/ | 签名 | qiān míng |
| fragmented/fræɡˈmentɪd/ | 碎片化 | suì piàn huà |
| incremental backups/ˌɪŋkrɪˈmentl ˈbækʌps/ | 增量备份 | zēng liàng bèi fèn |
5.1
Bibliothèques de programmes
Une bibliothèque de programmes 程序库 est du code pré-écrit (sous-routines 子程序, classes, modules) que les programmes réutilisent au lieu de l'écrire eux-mêmes — par exemple, une bibliothèque mathématique, une bibliothèque réseau, une bibliothèque graphique.

Avantages : gain de temps (code tout fait), fiabilité (bien testé, largement utilisé) et standardisation (comportement cohérent).
La liste des avantages pour l'examinateur, du point de vue du développeur. Les routines de bibliothèque 库例程 sont déjà écrites et testées, ce qui rend le développement plus rapide et moins coûteux ; elles sont fiables et, étant utilisées par de nombreux programmes, largement exemptes d'erreurs ; le développeur n'a pas besoin d'expertise dans ce domaine (graphismes, compression, cryptage, recherche de chemin) ; le programme est plus facile à maintenir car le code commun se trouve au même endroit ; et une équipe entière peut utiliser les mêmes routines, garantissant des résultats cohérents. Inconvénients : une routine peut ne pas faire exactement ce dont vous avez besoin et vous ne pouvez pas la modifier ; votre programme dépend de la disponibilité, de la correction et de la sécurité de la bibliothèque — un bogue ou une faille de sécurité dans la bibliothèque constitue un bogue dans votre programme ; et vous devez apprendre comment l'appeler.
- une bibliothèque statique 静态库 est copiée dans l'exécutable au moment de la compilation (elle fonctionne seule, mais est plus volumineuse et nécessite une recompile pour être mise à jour).
- une bibliothèque dynamique 动态库 (DLL, Dynamic Link Library ;
.so) est chargée en temps d'exécution (exécutables plus petits, partagés entre plusieurs programmes, mis à jour une fois pour toutes).

Fichiers Dynamic Link Library (DLL). Une DLL est une bibliothèque chargée en mémoire uniquement lorsqu'un programme l'appelle, en temps d'exécution, et reste sous forme de fichier séparé plutôt que d'être copiée dans l'exécutable. Avantages : l'exécutable est plus petit ; plusieurs programmes en cours d'exécution partagent une seule copie de la DLL en mémoire ; une DLL peut être mise à jour (correction de bogue, nouvel appareil) sans recompiler les programmes qui l'utilisent ; et la mémoire n'est utilisée que tant que la routine est nécessaire. Inconvénients : le programme ne s'exécutera pas si la DLL est absente, déplacée ou si sa version est incorrecte ; une DLL mise à jour peut casser un programme qui comptait sur l'ancien comportement ; et une fausse DLL placée à sa place s'exécute avec les droits du programme.
Exemple résolu. Une équipe écrivant un logiciel pour un robot restaurant utilise une bibliothèque de programmes incluant une routine pour trouver le chemin le plus court entre les tables. Expliquez deux avantages et un inconvénient pour l'équipe.
Avantages : la routine est déjà écrite et testée, donc l'équipe gagne du temps et peut se fier au résultat ; l'équipe n'a pas besoin de comprendre elle-même les algorithmes de recherche de chemin et peut consacrer ce temps aux fonctionnalités propres du robot. Inconvénient : la routine peut ne pas gérer les besoins exacts du restaurant (chaises mobiles, couloirs sens unique) et l'équipe ne peut pas la modifier, ils doivent donc contourner ses limites.
Laboratoire de concepts informatiques
Classez les exemples concrets selon le concept informatique qu'ils illustrent.
| Anglais | Chinois | Pinyin |
|---|---|---|
| compiler/kəmˈpaɪlə/ | 编译器 | biān yì qì |
| object code/ˈɒbdʒekt kəʊd/ | 目标代码 | mù biāo dài mǎ |
5.2
Traducteurs de langages
Programme
| Les candidats doivent être capables de : | Notes et orientations |
|---|---|
| Comprendre la nécessité de : • un assembleur pour la traduction d'un programme en langage assembleur • un compilateur pour la traduction d'un programme en langage de haut niveau • un interpréteur pour la traduction et l'exécution d'un programme en langage de haut niveau | |
| Expliquer les avantages et inconvénients de l'utilisation d'un compilateur ou d'un interpréteur et justifier l'utilisation de chacun | |
| Savoir que les programmes en langage de haut niveau peuvent être partiellement compilés et partiellement interprétés, comme Java (mode console) | |
| Décrire les fonctionnalités d'un Environnement de Développement Intégré (IDE) typique | Y compris : • pour la programmation, incluant des invitations contextuelles • pour la détection initiale d'erreurs, incluant des vérifications syntaxiques dynamiques • pour la présentation, incluant le formatage automatique, l'expansion et le repliement des blocs de code • pour le débogage, incluant l'exécution pas à pas, les points d'arrêt, c'est-à-dire les variables, expressions, fenêtre de rapport |
Source : Programme Cambridge International
Vous écrivez du code source ; l'ordinateur exécute le code machine 机器码. Un traducteur 翻译器 assure la conversion entre les deux.
Assembleur
Un assembleur 汇编er traduit le langage assembleur 汇编语言 en code machine : chaque instruction mnémotechnique (LDD, ADD, JMP) devient exactement une instruction de code machine, et les adresses symboliques et les étiquettes sont remplacées par des adresses réelles. Il est nécessaire car le processeur n'exécute que du code machine, et l'assembleur est utilisé lorsque le programmeur a besoin d'un contrôle direct du matériel (systèmes embarqués, pilotes de périphériques).
Compilateur
Un compilateur 编译器 traduit un programme de haut niveau en code machine une seule fois, avant son exécution. - il signale tous les erreurs au moment de la compilation ; une fois propre, il produit un exécutable 可执行文件 autonome qui s'exécute sans que le compilateur soit installé et peut être lancé de nombreuses fois. - généralement plus rapide en temps d'exécution (aucune traduction pendant l'exécution), mais lié à un CPU/OS spécifique — recompiler pour chaque plateforme.
- il signale toutes les erreurs au moment de la compilation ; une fois propre, il produit un exécutable 可执行文件 autonome qui s'exécute sans que le compilateur soit installé et peut être exécuté plusieurs fois.
- généralement plus rapide à l'exécution (pas de traduction pendant l'exécution), mais lié à un seul CPU/OS — recompiler pour chaque plateforme.
La description en deux points : un compilateur traduit le programme entier en langage machine (code objet 目标代码) avant qu'il ne soit exécuté, produit un fichier exécutable et signale toutes les erreurs de syntaxe ensemble sous forme de liste à la fin de la traduction. Il n'exécute pas le programme.
Interprète
Un interprète 解释器 traduit et exécute un programme de haut niveau ligne par ligne, ne produisant aucun exécutable. - il signale une erreur lorsqu'il atteint cette ligne, puis s'arrête ; vous pouvez la corriger et continuer — excellent pour le développement. - l'interprète doit être installé pour exécuter le programme ; généralement plus lent (chaque exécution entraîne une re-traduction), mais facile à porter sur différentes plateformes.
- il signale une erreur lorsqu'il atteint cette ligne, puis s'arrête ; vous pouvez la corriger et continuer — bon pour le développement.
- l'interpréteur doit être installé pour exécuter le programme ; généralement plus lent (chaque exécution re-traduit), mais facile à porter sur différentes plateformes.
La description en deux points : un interpréteur traduit une instruction du programme de haut niveau à la fois et l'exécute immédiatement avant de passer à la suivante ; aucun fichier exécutable n'est produit ; il s'arrête à la première erreur rencontrée et la signale. Le code source et l'interpréteur doivent être présents à chaque exécution du programme.

Choisir entre eux
| la vitesse d'exécution est importante | vous voulez des cycles édit-exécution rapides |
|---|---|
| distribuer à des utilisateurs sans outils de dev | écrire des scripts multiplateformes |
| le programme s'exécute de nombreuses fois | le programme est petit ou s'exécute une seule fois |
| enseigner aux débutants | |
| enseigner les débutants |
Avantages et inconvénients, tels que listés par le barème.
| compilateur | interpréteur | |
|---|---|---|
| ce dont l'utilisateur a besoin | seulement l'exécutable ; pas de traducteur, et le code source reste privé | le code source et l'interprète |
| détection des erreurs | toutes les erreurs listées d'un coup, après la traduction du programme entier | chaque erreur signalée à la ligne où elle se produit, au fur et à mesure du développement |
| modification du code | recompiler le programme entier après chaque changement | éditer et relancer immédiatement |
| portabilité | le code machine ne s'exécute que sur une plateforme ; recompiler pour chacune | la même source s'exécute partout où un interprète existe |
| portabilité | le code machine s'exécute sur une seule plateforme ; recompiler pour chacune | la même source s'exécute partout où un interpréteur existe |
Exemple corrigé. Un développeur utilise un interpréteur pendant l'écriture d'un programme et un compilateur lorsqu'il est terminé. Expliquez comment chacun est utilisé (4 points).
Pendant le développement, l'interpréteur exécute le programme partiellement écrit immédiatement, sans attendre une traduction complète ; lorsqu'il rencontre une erreur, il signale la ligne, afin que le développeur la corrige et relance immédiatement — un cycle éditer-exécuter rapide plus facile pour le débogage. Lorsque le programme est terminé, le compilateur traduit l'ensemble du programme en un exécutable qui s'exécute plus rapidement, ne nécessite pas de traducteur sur l'ordinateur de l'utilisateur et ne révèle pas le code source, il peut donc être vendu au public.
Hybride : Java
La formule du syllabus est « partiellement compilé et partiellement interprété » : l'étape de compilation détecte les erreurs de syntaxe et produit un bytecode compact et portable 可移植 ; l'étape d'interprétation permet à ce seul fichier bytecode de s'exécuter sur n'importe quelle machine disposant d'une machine virtuelle, au détriment de la vitesse. Java en mode console (un programme texte lancé depuis la ligne de commande) est l'exemple du syllabus.
La phrase du syllabus est « partiellement compilé et partiellement interprété » : l'étape du compilateur détecte les erreurs de syntaxe et produit du bytecode compact et portable 可移植的 ; l'étape d'interprétation permet à ce fichier bytecode unique de s'exécuter sur n'importe quelle machine disposant d'une machine virtuelle, au prix d'une certaine vitesse. Java en mode console (un programme texte lancé depuis la ligne de commande) est l'exemple du syllabus.
Exemple résolu. Le code source Java est compilé en bytecode, qu'une JVM interprète ensuite. Pourquoi utiliser les deux au lieu de compiler directement vers du code machine ? Un compilateur produit du code machine pour non processeur et système d'exploitation spécifiques, donc un programme compilé sur une machine ne s'exécutera pas sur une autre. Le compilateur Java cible au contraire une machine virtuelle, de sorte que le bytecode produit est identique partout ; chaque plateforme fournit alors sa propre JVM pour interpréter ce bytecode en ses propres instructions natives. Un seul fichier compilé s'exécute donc partout où une JVM existe — « écrire une fois, exécuter partout ». Le prix est la vitesse : interpréter du bytecode est plus lent que d'exécuter du code natif, c'est pourquoi une vraie JVM utilise également la compilation JIT pour convertir le bytecode fréquemment exécuté en code natif pendant l'exécution du programme. Nommez les deux aspects — les marks sont attribués à la portabilité achetée au prix de la vitesse.
Exemple corrigé. Le code source Java est compilé en bytecode, qu'une JVM interprète ensuite. Pourquoi utiliser les deux, plutôt que de compiler directement en code machine ? Un compilateur produit du code machine pour non processeur et système d'exploitation donnés, donc un programme compilé sur une machine ne fonctionnera pas sur une autre. Le compilateur Java cible à la place une machine virtuelle, donc le bytecode qu'il produit est identique partout ; chaque plateforme fournit ensuite sa propre JVM pour interpréter ce bytecode en ses propres instructions natives. Un fichier compilé unique fonctionne donc partout où une JVM existe - « écrire une fois, exécuter partout ». Le prix est la vitesse : l'interprétation du bytecode est plus lente que l'exécution de code natif, c'est pourquoi une vraie JVM utilise également la compilation JIT pour transformer le bytecode fréquemment exécuté en code natif pendant l'exécution du programme. Nommez les deux côtés - les points sont accordés pour la portabilité achetée au prix de la vitesse.
Le routeur du compilateur : source vers programme exécuté
Étape par étape du fonctionnement d'un compilateur — traduire le programme entier une fois, avant son exécution. Contrastez-le avec un interpréteur, qui traduit et exécute ligne par ligne.
| Anglais | Chinois | Pinyin |
|---|---|---|
| interpreter/ɪnˈtɜːprɪtə/ | 解释器 | jiě shì qì |
| bytecode/ˈbaɪtkəʊd/ | 字节码 | zì jié mǎ |
| virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ | 虚拟机 | xū nǐ jī |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | 即时编译 | jí shí biān yì |
| portable/ˈpɔːtəbl/ | 可移植的 | kě yí zhí de |
5.2
Environnement de Développement Intégré (IDE)
Un environnement de développement intégré 集成开发环境 (IDE) regroupe les outils pour écrire, tester et déboguer le code dans une seule application :
Le syllabus classe les fonctionnalités en quatre catégories. Apprenez quelle fonctionnalité appartient à quel groupe, car les questions vous demanderont de les classer et de décrire une fonctionnalité de chaque groupe.
Le syllabus regroupe les fonctionnalités en quatre catégories. Apprenez quelle fonctionnalité appartient à quel groupe, car les questions vous demandent de les trier et d'en décrire une de chaque groupe.
- Pour la programmation : les invites contextuelles 上下文相关提示 — au fur et à mesure que vous tapez, l’IDE affiche les identifiants, mots-clés ou paramètres qui conviennent à cet endroit du code ; la complétion automatique 自动补linine le nom pour vous ; l’indentation automatique et la correspondance des parenthèses maintiennent la mise en forme correcte pendant la saisie.
- Pour la détection initiale des erreurs : vérifications de syntaxe dynamiques 动态语法检查 — l'éditeur vérifie la syntaxe au fur et à mesure de la saisie et souligne ou met en surbrillance une erreur immédiatement, avant la traduction du programme ; après la traduction, messages d'erreur avec numéros de ligne.
- Pour la présentation : prettyprint 代码美化 — les mots-clés, identifiants, chaînes et commentaires affichés dans différentes couleurs ou polices (surbrillance de syntaxe 语法高亮) avec une indentation cohérente, afin que la structure soit visible en un coup d'œil ; développer et réduire les blocs de code — masquer le corps d'une boucle, d'un IF ou d'une sous-routine pour voir le plan.
- Pour le débogage : les breakpoints 断点 — le programme s'arrête lorsqu'il atteint une ligne marquée ; le single stepping 单步执行 — à partir de l'arrêt, exécuter une ligne à la fois ; une fenêtre qui affiche les valeurs actuelles des variables et expressions 随着它们变化;et une report window 报告窗口 qui liste les erreurs, les avertissements et la sortie.
Autres fonctionnalités : intégration du traducteur (compiler ou exécuter avec une touche unique, erreurs affichées en ligne), un debugger 调试器 qui pilote les fonctionnalités de débogage ci-dessus, intégration au version control 版本控制 (git), gestion de projet, système d'aide, outils de refactoring 重构 (renommage sécurisé) et intégration aux unit test 单元测试。

Un IDE accélère le développement en regroupant écrire → exécuter → déboguer → corriger derrière une seule interface. IDEs courantes : Visual Studio, PyCharm, Eclipse, VS Code.

Exemple résolu. Une fonction Calculate() retourne une valeur inattendue lorsque le programme s'exécute. Décrivez comment les fonctionnalités de débogage d'une IDE typique aident à trouver la cause (4 points).
Définissez un breakpoint sur la première ligne de Calculate(), afin que le programme s'y arrête plutôt que de passer tout simplement. Ensuite, effectuez un single-step à travers la fonction, une ligne à la fois. Après chaque étape, lisez les valeurs des variables et de toute expression que vous avez demandé à l'IDE de watch (surveiller), et comparez-les avec les valeurs attendues ; la première ligne après laquelle une valeur est incorrecte est là où se trouve l'erreur logique. La report window affiche tout message d'erreur d'exécution et la sortie produite jusqu'alors.
Exemple résolu. Placez chaque fonctionnalité dans son groupe de syllabus : prettyprint, invitation contextuelle, vérification syntaxique dynamique, breakpoint, réduire/étendre les blocs de code, fenêtre de rapport.
Codage : invitation contextuelle. Détection initiale d'erreurs : vérification syntaxique dynamique. Présentation : prettyprint, réduction/étirement des blocs de code. Débogage : breakpoint, fenêtre de rapport.
| Anglais | Chinois | Pinyin |
|---|---|---|
| debugger/ˈdiːbʌɡə/ | 调试器 | tiáo shì qì |
| context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ | 上下文相关提示 | shàng xià wén xiāng guān tí shì |
| auto-complete/ˈɔːtəʊ kəmˈpliːt/ | 自动补全 | zì dòng bǔ quán |
| dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ | 动态语法检查 | dòng tài yǔ fǎ jiǎn chá |
| prettyprint/ˈpretɪprɪnt/ | 代码美化 | dài mǎ měi huà |
| syntax highlighting/ˈsɪntæks ˈhaɪlaɪtɪŋ/ | 语法高亮 | yǔ fǎ gāo liàng |
| breakpoints/ˈbreɪkpɔɪnts/ | 断点 | duàn diǎn |
| single stepping/ˈsɪŋɡl ˈstepɪŋ/ | 单步执行 | dān bù zhí xíng |
| report window/rɪˈpɔːt ˈwɪndəʊ/ | 报告窗口 | bào gào chuāng kǒu |
| version control/ˈvɜːʃn kənˈtrəʊl/ | 版本控制 | bǎn běn kòng zhì |
| refactoring/rɪˈfæktərɪŋ/ | 重构 | chóng gòu |
| unit test/ˈjuːnɪt test/ | 单元测试 | dān yuán cè shì |
5.2
Définitions acceptées par l'examinateur
Une question de définition est notée selon un libellé fixe. Apprenez-les exactement et ne donnez qu'une seule réponse.
| Terme | Définition |
|---|---|
| operating system | logiciel qui gère le matériel et les ressources de l'ordinateur et fournit une interface entre l'utilisateur, les programmes applicatifs et le matériel |
| utility software | logiciel système qui effectue une tâche spécifique pour maintenir, optimiser ou protéger l'ordinateur, tel qu'un antivirus ou un défragmentateur |
| program library | un ensemble de routines pré-écrites et testées (sous-routines, classes, modules) qu'un programme peut utiliser au lieu d'en écrire ses propres |
| Dynamic Link Library (DLL) | une bibliothèque de programmes dont les routines sont chargées en mémoire uniquement lorsque le programme les appelle, en temps d'exécution, et qui sont partagées entre les programmes |
| assembler | un traducteur qui convertit un programme en langage assembleur en code machine, une instruction par instruction |
| compiler | un traducteur qui convertit l'intégralité d'un programme en langage de haut niveau en code machine avant son exécution, produisant un fichier exécutable |
| interpreter | un traducteur qui traduit et exécute un programme en langage de haut niveau une instruction à la fois |
| integrated development environment | une application unique qui fournit les outils pour écrire, traduire, exécuter et déboguer un programme |
| context-sensitive prompt | une invitation contextuelle qui suggère des identifiants, des mots-clés ou des paramètres qui conviennent au point actuel du code |
| dynamic syntax check | la vérification de la syntaxe du code alors qu'il est tapé et signalant une erreur avant que le programme ne soit traduit |
| prettyprint | l'affichage du code avec des mots-clés, des identifiants et des commentaires dans différentes couleurs ou polices et avec une indentation cohérente |
| breakpoint | une ligne marquée à laquelle le programme en cours d'exécution s'arrête afin que les variables puissent être inspectées |
| single stepping | l'exécution d'un programme suspendu une instruction à la fois sous le contrôle du programmeur |
| Anglais | Chinois | Pinyin |
|---|---|---|
| operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ | 操作系统 | cāo zuò xì tǒng |
| processor/ˈprəʊsesə/ | 处理器 | chǔ lǐ qì |
| program library/ˈprəʊɡræm ˈlaɪbrəri/ | 程序库 | chéng xù kù |
| subroutines/ˈsʌbruːtiːnz/ | 子程序 | zi chéng xù |
| library routines/ˈlaɪbrəri ruːˈtiːnz/ | 库例程 | kù lì chéng |
| static library/ˈstætɪk ˈlaɪbrəri/ | 静态库 | jìng tài kù |
| executable/ɪɡˈzekjʊtəbl/ | 可执行文件 | kě zhí xíng wén jiàn |
| dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ | 动态库 | dòng tài kù |
| translator/trænˈsleɪtə/ | 翻译器 | fān yì qì |
| machine code/məˈʃiːn kəʊd/ | 机器码 | jī qì mǎ |
| assembler/əˈsemblə/ | 汇编器 | huì biān qì |
| assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ | 汇编语言 | huì biān yǔ yán |
| integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ | 集成开发环境 | jí chéng kāi fā huán jìng |
5.2
Conseils d'examen
- Énumérez les tâches du OS par leurs noms de syllabus (gestion de la mémoire, des processus, du matériel, des fichiers et de la sécurité) et dites ce que chacune fait — "gérer les ressources" seul est trop vague.
- Comparez compiler vs interpreter vs assembler : ce que chacun traduit, quand il le traduit, et comment les erreurs sont signalées.
- Expliquez ce qu'une IDE fournit en utilisant les groupes de syllabus : codage, détection initiale d'erreurs, présentation, débogage.
- Une réponse "avantage pour le développeur" nomme l'économie du développeur : temps, coût, expertise, fiabilité ou maintenance. Un "inconvénient" nomme une dépendance : disponibilité, version, adaptation, sécurité.
- Pour "décrire le fonctionnement" d'un traducteur, donnez trois choses : ce qui est traduit (programme entier ou une instruction), quand (avant l'exécution ou pendant l'exécution), et comment les erreurs sont signalées (toutes en même temps ou à la première erreur).
Erreurs courantes
- Écrire "le OS contrôle l'ordinateur" ou "gère les ressources" sans exemple de tâche. Chaque marque correspond à une tâche nommée avec ce qu'elle fait.
- Dire qu'un interpreter "compile ligne par ligne". Un interpreter traduit et exécute chaque instruction ; il ne produit jamais un exécutable.
- Dire qu'un compilateur exécute le programme. Il traduit seulement ; l'exécutable s'exécute plus tard, sans le compilateur.
- Placer une DLL "à l'intérieur" de l'exécutable. C'est une bibliothèque statique ; une DLL reste un fichier séparé chargé en temps d'exécution.
- Dire que la défragmentation "supprime" ou "compresse" les fichiers, ou qu'elle est nécessaire sur un SSD. Elle ne déplace que les blocs pour que chaque fichier soit stocké de manière contiguë.
- Classer le prettyprint ou la réduction des blocs sous "débogage". Ce sont des fonctionnalités de présentation ; le débogage concerne les breakpoints, le single stepping, la surveillance des variables et la fenêtre de rapport.
Leçons interactives sur ce sujet
Traversez-le étape par étape, avec des exercices à vérification instantanée.