Hoja de repaso: Introduction aux commandes Git, tests unitaires en C, pointeurs de fonction, multiprocessus et

📋 Plan du Cours

  1. Commandes Git pour la gestion des branches et des commits
  2. Utilisation de Criterion pour les tests unitaires en C
  3. Déclaration et utilisation des pointeurs de fonction en C
  4. Concepts de multiprocessus en programmation
  5. Lexing et parsing en analyse syntaxique

📖 1. Commandes Git pour la gestion des branches et des commits

🔑 Notions clés & Définitions

  • branche : ligne de développement séparée dans Git, créée et manipulée par des commandes comme git switch -c ou git branch -D.
  • commit : enregistrement d’un état du travail dans l’historique, que l’on peut modifier avec git commit --amend ou appliquer depuis une autre branche avec git cherry-pick <commit-hash>.
  • Combine deux branches avec : opération de fusion qui réunit deux branches ; la source associe cette idée à git rebase dans la proposition « Combine deux branches avec un merge commit », mais la bonne réponse indiquée est le rejet de cette formulation au profit du rebase.
  • deux branches avec un merge : fusion de deux branches par une opération de merge ; la source la distingue du rebase, qui ne crée pas de merge commit.
  • branches avec un merge commit : résultat d’une fusion qui produit un commit de merge ; la source précise que git rebase ne correspond pas à cela.

📝 Points essentiels

  • git switch -c feature/payment crée une branche et bascule dessus en une seule fois.
  • git branch -D nom_branche supprime une branche de force.
  • En cas de conflit, Git insère les marqueurs <<<<<<<, =======, >>>>>>>.
  • git rebase rejoue les commits par-dessus une autre branche.
  • git stash met de côté les modifications non commitées.
  • git commit --amend modifie le dernier commit.
  • git cherry-pick <commit-hash> applique un commit spécifique d’une autre branche sur la branche courante.

💡 À retenir

  • Retenir les commandes de base comme des opérations ciblées sur l’historique, la branche courante et l’état de travail.
  • rebase, stash, amend et cherry-pick agissent chacun sur un aspect précis : l’ordre des commits, les modifications non commitées, le dernier commit ou un commit isolé.

📖 2. Utilisation de Criterion pour les tests unitaires en C

🔑 Notions clés & Définitions

  • Criterion : Fois linké à un programme ?

📝 Points essentiels

  • Quel flag faut-il passer à gcc pour compiler avec Criterion ?
  • Une fois linké à un programme, Criterion remplace la main par une CLI.

💡 À retenir

Quel flag faut-il passer à gcc pour compiler avec Criterion ?

📖 3. Déclaration et utilisation des pointeurs de fonction en C

🔑 Notions clés & Définitions

  • Pointeur de fonction : Type de pointeur destiné à une fonction recevant deux paramètres, ici deux int dans le contexte fourni.

📝 Points essentiels

  • La déclaration d’un pointeur de fonction prenant deux int et retournant un int s’écrit int (*op)(int, int).
  • Pour assigner la fonction add à un pointeur op, quelles syntaxes sont valides ?

💡 À retenir

La forme à mémoriser est int (*op)(int, int) pour un pointeur vers une fonction prenant deux int et renvoyant un int. L’affectation peut se faire avec add ou &add, et typedef sert à rendre ce type plus lisible.

📖 4. Concepts de multiprocessus en programmation

🔑 Notions clés & Définitions

  • processus : flot d’exécution d’un programme, utilisé ici pour comprendre la duplication du flot d’exécution en multiprocessus.
  • processus zombie : processus terminé mais non libéré.
  • Deux fois c) Zéro fois : item de QCM portant sur le nombre de retours de fork() après un appel réussi.
  • Zéro fois d) Trois fois : item de QCM portant sur le nombre de retours de fork() après un appel réussi.
  • fois fork() retourne-t-il après : question de révision sur le nombre de retours de fork() après un appel réussi.

📝 Points essentiels

  • Après un appel réussi, fork() retourne deux fois.
  • Un processus zombie est un processus terminé mais non libéré.

💡 À retenir

Le multiprocessus se comprend par la duplication du flot d’exécution : après un appel réussi, fork() retourne deux fois. La fin de vie des processus compte aussi, car un processus zombie est un processus terminé mais non libéré.

📖 5. Lexing et parsing en analyse syntaxique

🔑 Notions clés & Définitions

  • Recursive Descent Parsing : technique de parsing utilisée pour les expressions mathématiques.
  • LALR parsing : technique de parsing proposée dans les choix, sans indication de définition dans la source.
  • LL(1) parsing : technique de parsing proposée dans les choix, sans indication de définition dans la source.

📝 Points essentiels

  • Un lexer transforme une string en liste de tokens.
  • Le parsing utilisé pour les expressions mathématiques est le Recursive Descent Parsing.

💡 À retenir

  • Le lexer découpe l’entrée en tokens, tandis que le parsing organise la structure syntaxique.
  • Pour les expressions mathématiques, la technique indiquée est le Recursive Descent Parsing.

🧩 Compléments de couverture

  1. La macro Test(suite_name, test_name) déclare un test unitaire dans une suite.
  2. Quelle est la syntaxe d'une assertion d'égalité sur deux entiers 32 bits ?
  3. SET 1 - 20 questions Git 1. Quelle commande crée une branche et bascule dessus en une seule fois ? a) git.

📊 Tableaux de Synthèse

ThèmeÉlémentÀ retenir
Git branches et commitsBrancheLigne de développement séparée, créée/manipulée par git switch -c ou git branch -D
Git branches et commitsCommitEnregistrement d’un état du travail dans l’historique
Git branches et commitsgit switch -c feature/paymentCrée une branche et bascule dessus en une seule fois
Git branches et commitsgit branch -D nom_brancheSupprime une branche de force
Git branches et commitsgit commit --amendModifie le dernier commit
Git branches et commitsgit cherry-pick <commit-hash>Applique un commit spécifique d’une autre branche sur la branche courante
Git branches et commitsgit rebaseRejoue les commits par-dessus une autre branche
Git branches et commitsgit stashMet de côté les modifications non commitées
Git branches et commitsConflit GitMarqueurs <<<<<<<, =======, >>>>>>>
Pointeurs de fonction en CPointeur de fonctionType de pointeur destiné à une fonction recevant deux paramètres, ici deux int
Pointeurs de fonction en CDéclarationint (*op)(int, int)
Pointeurs de fonction en CAffectation valideAvec add ou &add
Pointeurs de fonction en CRôle de typedefRendre le type plus lisible
MultiprocessusProcessusFlot d’exécution d’un programme
Multiprocessusfork() réussiRetourne deux fois
MultiprocessusProcessus zombieProcessus terminé mais non libéré
Lexing / parsingLexerTransforme une string en liste de tokens
Lexing / parsingParsing des expressions mathématiquesRecursive Descent Parsing

⚠️ Pièges & Confusions Fréquentes

  • Confondre git rebase avec un merge commit : la source distingue les deux.
  • Oublier que git commit --amend modifie seulement le dernier commit.
  • Confondre git stash avec un commit : il met de côté des modifications non commitées.
  • Croire que git cherry-pick fusionne des branches : il applique un commit isolé.
  • Oublier les marqueurs exacts d’un conflit Git : <<<<<<<, =======, >>>>>>>.
  • Confondre pointeur de fonction et appel de fonction : la forme correcte est int (*op)(int, int).
  • Mélanger lexer et parsing : le lexer produit des tokens, le parsing organise la structure syntaxique.

✅ Checklist Examen

  • Savoir définir une branche Git et citer ses commandes associées.
  • Savoir définir un commit et citer git commit --amend.
  • Savoir expliquer l’effet de git switch -c feature/payment.
  • Savoir expliquer l’effet de git branch -D nom_branche.
  • Savoir reconnaître les marqueurs d’un conflit Git.
  • Savoir distinguer rebase, stash, amend et cherry-pick.
  • Savoir écrire la déclaration int (*op)(int, int).
  • Savoir dire comment affecter une fonction à un pointeur avec add ou &add.
  • Savoir expliquer le rôle de typedef pour les pointeurs de fonction.
  • Savoir définir un processus et un processus zombie.
  • Savoir que, après un appel réussi, fork() retourne deux fois.
  • Savoir que le lexer transforme une string en liste de tokens et que le Recursive Descent Parsing est utilisé pour les expressions mathématiques.

Pon a prueba tus conocimientos

Pon a prueba tus conocimientos sobre Introduction aux commandes Git, tests unitaires en C, pointeurs de fonction, multiprocessus et con 5 preguntas de opción múltiple con correcciones detalladas.

1. Quel effet le parsing a-t-il sur l’entrée après le découpage en tokens ?

2. Quel effet a le fait de lier Criterion à un programme ?

Realiza el cuestionario →

Repasa con tarjetas de memoria

Memoriza los conceptos clave de Introduction aux commandes Git, tests unitaires en C, pointeurs de fonction, multiprocessus et con 10 tarjetas de memoria interactivas.

Git — créer une branche ?

`git switch -c` ou `git branch -D` pour supprimer

Commit — enregistrement ?

Sauvegarde de l’état du travail

`git rebase` — rôle ?

Rejoue les commits sur une autre branche

Ver tarjetas de memoria →

Similar courses

Crea tus propias hojas de repaso

Importa tu curso y la IA genera hojas, cuestionarios y tarjetas de memoria en 30 segundos.

Generador de hojas