navigation

MrCodeur

“C’est en forgeant qu’on devient forgeron.”


Objectif

Ce petit coin du web est dédié à l’apprentissage de l’informatique avec pour principe de coder pour apprendre. Nous parcourrons ensemble, pas à pas, différents thèmes de l’informatique, construisant tout au long des logiciels pour comprendre en profondeur les différents sujets. J’espère que ce site sera utile pour certains d’entre vous et que vous vous amuserez tout en apprenant.

Structure du site

Je vais utiliser du texte, des vidéos et du code pour expliquer les différents sujets:

  • Les vidéos seront en français avec des sous-titres anglais (En espérant que la communauté m’aidera pour les traductions ).
  • Le code sera sur github.

Choisissez votre sujet sur le panneau de gauche ou parmis les thèmes ci-dessous, et nous allons pouvoir commencer à explorer ensemble le monde vaste et passionnant de l’informatique !

Thèmes abordés

  • MiniJava transpileur
    • Nous transformons un fichier source contenant un programme écrit dans un sous-ensemble du langage Java, le langage MiniJava, en un fichier en langage C. Nous utilisons ensuite gcc pour traduire le fichier en langage C en un fichier exécutable.
      Pour effectuer cette transpilation, nous faisons d’abord une analyse lexicale du fichier source, puis une analyse syntaxique, puis une vérification du typage (analyse statique) et enfin une génération du code C à partir de l’arbre syntaxique abstrait de MiniJava. Les difficultés principales pour la génération du code C sont la représentation des classes, l’implémentation de la liaison dynamique et l’ajout du ramasse miettes.
      Le transpileur est écrit en OCaml en utilisant Menhir pour l’analyse syntaxique.