Appuyez sur Entrée pour voir vos résultats ou Echap pour annuler.

Compiler du C en JavaScript?!

Salut les devz! Aujourd’hui, je veux partager avec vous une belle petite trouvaille 🙂 JavaScript est devenu un langage assez populaire, ce qui a eu pour effet de voir toutes sortes de technos incroyables qui sont devenues adaptĂ©es au web qui ne l’Ă©taient pas du tout il y a 10 ans. On a qu’Ă  penser Ă  Unity qui compile maintenant en WebAssembly pour ĂȘtre exĂ©cutĂ© dans le navigateur. Dans cette veine, je vous prĂ©sente aujourd’hui comment compiler du C en JavaScript et WebAssembly avec EMCC.

Pourquoi?

Ce qu’il faut comprendre, c’est que vous ne prendrez pas une application en C pour la compiler en JS pour l’exĂ©cuter dans le navigateur. Le principe derriĂšre ce compilateur est d’optimiser des bouts de code stratĂ©giques qui nĂ©cessiteraient un niveau d’optimisation avancĂ©.

Ceci ne devrait pas vous arriver. N’utilisez pas ceci en production sans savoir exactement que c’est la solution que vous avez besoin.

Prérequis

Installation du compilateur C

EMCC est un compilateur C vers WASM. Notez que tous les navigateurs rĂ©cents supportent le wasm. Afin d’installer le compilateur, ouvrir une invite de commande et exĂ©cuter :

Noter que ces Ă©tapes peuvent prendre environ 5 minutes.

Une fois installĂ©, testez l’installation avec :

Si vous éprouvez des difficultés, veuillez consulter la documentation officielle.

Compiler le premier programme

Tout bon apprentissage de code commence par un « hello world »! Écrivons simplement ce code en C comme ceci :

Sauvegardez ce fichier sous le nom « hello_world.c », puis ouvrez une invite de commande à cet endroit et tapez :

Cette opĂ©ration peut prendre plusieurs minutes, mais les fichiers d’assemblage seront cachĂ©s pour ĂȘtre rĂ©utilisĂ©s dans le futur.

Une fois terminé, vous devriez vous retrouver avec deux nouveaux fichiers :

  1. a.out.asm : Contient le code C compilé en WebAssembly.
  2. a.out.js : Contient le code JS pour charger le module en WebAssembly

Vous pouvez tester en exécutant :

Vous devriez voir « Hello, World! » dans la console :O

Conslusion

VoilĂ  qui nous faire sortir un peu de l’ordinaire! Avec les frameworks JS qui sont de plus en plus populaires, de plus en de charge sera mise sur les pĂ©riphĂ©riques clients. Gardez en tĂȘte qu’une solution existe pour optimiser le JavaScript, la mĂ©thode forte.

Connaissiez-vous ce compilateur? Avez-vous déjà eu des problÚmes de performance avec JavaScript? Si oui, racontez-moi dans les commentaires ci-dessous!

Cheers!

Suivez-nous par courriel!

Saisissez votre adresse courriel pour vous abonner au blog d'Ezo et recevoir une notification de chaque nouvel article par email.