﻿﻿{"id":2485,"date":"2026-03-10T15:09:26","date_gmt":"2026-03-10T14:09:26","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/mnm-le-langage-de-programmation-a-base-de-mms\/"},"modified":"2026-03-10T15:09:26","modified_gmt":"2026-03-10T14:09:26","slug":"mnm-le-langage-de-programmation-a-base-de-mms","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/mnm-le-langage-de-programmation-a-base-de-mms\/","title":{"rendered":"MnM, le langage de programmation \u00e0 base de&#8230; M&amp;M&#8217;s"},"content":{"rendered":"<p>Un d\u00e9veloppeur a cr\u00e9\u00e9 un langage de programmation dont le code source est compos\u00e9 de M&amp;M&#8217;s color\u00e9s. Six couleurs, six familles d&#8217;instructions, et les programmes se compilent sous forme d&#8217;images PNG. Le plus rigolo ? On peut m\u00eame prendre en photo de vrais bonbons pos\u00e9s sur une table pour g\u00e9n\u00e9rer du code ex\u00e9cutable. Le projet, baptis\u00e9 MnM Lang, cartonne.<\/p>\n<h2>Des bonbons \u00e0 la place du code<\/h2>\n<p>L&#8217;id\u00e9e est partie d&#8217;un paquet de GEMS (l&#8217;\u00e9quivalent indien des M&amp;M&#8217;s) ouvert un peu trop fort. Mufeed VH, d\u00e9veloppeur et auteur du projet, a vu les confiseries former une sorte de fl\u00e8che sur le sol et s&#8217;est dit que \u00e7a ferait un bon point de d\u00e9part pour un langage de programmation. Le r\u00e9sultat s&#8217;appelle MnM Lang, un langage dit &#8220;\u00e9sot\u00e9rique&#8221; o\u00f9 le code source est \u00e9crit sous forme de rang\u00e9es de bonbons.<\/p>\n<p>Six couleurs sont utilis\u00e9es, chacune correspondant \u00e0 un type d&#8217;instruction : le bleu g\u00e8re le flux de contr\u00f4le (sauts, appels, arr\u00eat), le vert s&#8217;occupe des variables et de la pile, le jaune traite les op\u00e9rations math\u00e9matiques, l&#8217;orange g\u00e8re les entr\u00e9es\/sorties, le marron s&#8217;occupe des labels et des cha\u00eenes de caract\u00e8res, et le rouge de la logique bool\u00e9enne et de la manipulation de pile. Le nombre de bonbons dans une rang\u00e9e d\u00e9termine l&#8217;opcode : six bonbons \u00e0 la suite, par exemple, \u00e7a donne la valeur 5.<\/p>\n<h2>Du vrai code dans une image PNG<\/h2>\n<p>Dans un premier temps, les programmes sont \u00e9crits en ASCII, puis compil\u00e9s en PNG. Dans l&#8217;image, chaque lettre est remplac\u00e9e par un Sprite de bonbon. Et le truc assez fou, c&#8217;est que \u00e7a marche aussi dans l&#8217;autre sens : on peut prendre une photo de vrais bonbons pos\u00e9s sur un fond blanc, et le d\u00e9codeur d&#8217;image reconstitue le code source \u00e0 partir des couleurs d\u00e9tect\u00e9es.<\/p>\n<p>C\u00f4t\u00e9 limitations, les images ne sont pas tr\u00e8s dou\u00e9es pour stocker du texte. Les cha\u00eenes de caract\u00e8res et les variables initiales passent donc par un fichier JSON s\u00e9par\u00e9 qui accompagne le programme.<\/p>\n<p>Malgr\u00e9 cette contrainte, MnM Lang permet d&#8217;\u00e9crire de vrais programmes : Hello World, FizzBuzz, factorielle. Un terrain de jeu interactif est disponible sur le site du projet, avec un \u00e9diteur en ligne, un rendu visuel des bonbons et m\u00eame un affichage de l&#8217;arbre syntaxique.<\/p>\n<p>On a donc l\u00e0 un projet rigolo et color\u00e9, et \u00e7a change un peu ! MnM Lang ne va pas remplacer Python ou Swift. Ce genre de truc nous rappelle que la programmation, ce n&#8217;est pas qu&#8217;un outil de travail et de production, mais \u00e7a peut aussi \u00eatre du fun et de l&#8217;amusement, m\u00eame si le niveau d&#8217;ing\u00e9nierie derri\u00e8re (compilateur, d\u00e9codeur d&#8217;images, terrain de jeu web) montre que le projet est loin d&#8217;\u00eatre une simple blague. Bref, si vous avez un paquet de M&amp;M&#8217;s qui tra\u00eene et un dimanche apr\u00e8s-midi devant vous, vous savez quoi faire.<\/p>\n<p>Source :<br \/>\n<a href=\"https:\/\/hackaday.com\/2026\/03\/09\/the-sweetest-programming-language-mnm\/\">Hackaday<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un d\u00e9veloppeur a cr\u00e9\u00e9 un langage de programmation dont le code source est compos\u00e9 de M&amp;M&#8217;s color\u00e9s. Six couleurs, six familles d&#8217;instructions, et les programmes se compilent sous forme d&#8217;images PNG. Le plus rigolo ? On peut m\u00eame prendre en photo de vrais bonbons pos\u00e9s sur une table pour g\u00e9n\u00e9rer du code ex\u00e9cutable. Le projet, baptis\u00e9 MnM Lang, cartonne. Des bonbons \u00e0 la place du code L&#8217;id\u00e9e est partie d&#8217;un paquet de GEMS (l&#8217;\u00e9quivalent indien des M&amp;M&#8217;s) ouvert un peu trop fort. Mufeed VH, d\u00e9veloppeur et auteur du projet, a vu les confiseries former une sorte de fl\u00e8che sur le sol et s&#8217;est dit que \u00e7a ferait un bon point de d\u00e9part pour un langage de programmation. Le r\u00e9sultat s&#8217;appelle MnM Lang, un langage dit &#8220;\u00e9sot\u00e9rique&#8221; o\u00f9 le code source est \u00e9crit sous forme de rang\u00e9es de bonbons. Six couleurs sont utilis\u00e9es, chacune correspondant \u00e0 un type d&#8217;instruction : le bleu g\u00e8re le flux de contr\u00f4le (sauts, appels, arr\u00eat), le vert s&#8217;occupe des variables et de la pile, le jaune traite les op\u00e9rations math\u00e9matiques, l&#8217;orange g\u00e8re les entr\u00e9es\/sorties, le marron s&#8217;occupe des labels et des cha\u00eenes de caract\u00e8res, et le rouge de la logique bool\u00e9enne et de la manipulation de pile. Le nombre de bonbons dans une rang\u00e9e d\u00e9termine l&#8217;opcode : six bonbons \u00e0 la suite, par exemple, \u00e7a donne la valeur 5. Du vrai code dans une image PNG Dans un premier temps, les programmes sont \u00e9crits en ASCII, puis compil\u00e9s en PNG. Dans l&#8217;image, chaque lettre est remplac\u00e9e par un Sprite de bonbon. Et le truc assez fou, c&#8217;est que \u00e7a marche aussi dans l&#8217;autre sens : on peut prendre une photo de vrais bonbons pos\u00e9s sur un fond blanc, et le d\u00e9codeur d&#8217;image reconstitue le code source \u00e0 partir des couleurs d\u00e9tect\u00e9es. C\u00f4t\u00e9 limitations, les images ne sont pas tr\u00e8s dou\u00e9es pour stocker du texte. Les cha\u00eenes de caract\u00e8res et les variables initiales passent donc par un fichier JSON s\u00e9par\u00e9 qui accompagne le programme. Malgr\u00e9 cette contrainte, MnM Lang permet d&#8217;\u00e9crire de vrais programmes : Hello World, FizzBuzz, factorielle. Un terrain de jeu interactif est disponible sur le site du projet, avec un \u00e9diteur en ligne, un rendu visuel des bonbons et m\u00eame un affichage de l&#8217;arbre syntaxique. On a donc l\u00e0 un projet rigolo et color\u00e9, et \u00e7a change un peu ! MnM Lang ne va pas remplacer Python ou Swift. Ce genre de truc nous rappelle que la programmation, ce n&#8217;est pas qu&#8217;un outil de travail et de production, mais \u00e7a peut aussi \u00eatre du fun et de l&#8217;amusement, m\u00eame si le niveau d&#8217;ing\u00e9nierie derri\u00e8re (compilateur, d\u00e9codeur d&#8217;images, terrain de jeu web) montre que le projet est loin d&#8217;\u00eatre une simple blague. Bref, si vous avez un paquet de M&amp;M&#8217;s qui tra\u00eene et un dimanche apr\u00e8s-midi devant vous, vous savez quoi faire. Source : Hackaday<\/p>\n","protected":false},"author":1,"featured_media":2486,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2485","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2485"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2485\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2486"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}