Mon propre langage de programmation
@Yxnn Xriel
/
jeu. 28 novembre 2024 à 17h27
Salut ! Comment ça va ? 😊
Dans mon projet "Motivé par la Curiosité (1)", je vous avais dit que la partie 2 serait un peu plus technique. Mais finalement, j’ai décidé de faire deux approches : une pour ceux qui aiment les histoires, et une autre pour ceux qui veulent découvrir mes réalisations. 💻 Du coup, on commence par parler du langage ! Ce post va être un peu plus poussé. 🚀
Avant de commencer, je tiens à dire un grand merci à la personne même dont le langage porte le nom. 🙏 Tu m’as motivé et encouragé à un moment où j’étais prêt à tout lâcher. Sache que je serai là pour toi aussi, dans les moments difficiles. 💪 Et un grand merci aussi à Lens_r, un passionné d’informatique bas niveau qui vit aux USA. 🇺🇸 Je l'ai trouvé sur des forums, et il m'a vraiment appris des trucs techniques de fou ! 🔍 et aussi à sebbekarlsson qui à partir de sa logique, j'ai pu crée et pousser la création au maximum.
Pourquoi v2 ?
Dans la création de langages, il est plus simple d'écrire un langage interprété qu’un langage compilé. 💡 Pendant tout mon processus d’apprentissage, j’ai commencé avec un interpréteur pour aller plus vite. Donc, cette version v2 est interprétée, mais le langage Ceflo lui, sera compilé. 🔧 La version compilée existe, mais elle n’est pas encore totalement stable. Patience... 😅
J’ai écrit ce langage en C, mon langage favori. 🖤 Je peux tout faire avec (ok, j’exagère... un peu). 😂 Pour la syntaxe, je ne me suis pas trop compliqué la vie : j'ai repris un peu du C et un peu de Dart, que je trouve esthétiques et très lisibles. 🎨 Comme je suis un peu flemmard pour tout ce qui est déclaration et définition, j’ai choisi plusieurs styles pour déclarer des variables. Et en parlant de ça, Ceflo v2 est faiblement typé, donc on peut passer d’un type à un autre sans problème. 🌀 Je gère tout le casting en coulisses. J’ai même fait des trucs un peu bizarres, genre transformer une liste en nombre. 😅 Vous verrez ça ! Pour les fonctions, il y a plusieurs façons de les déclarer, mais s’il vous plaît, privilégiez les définitions lisibles. 📚
Les structures conditionnelles et les boucles fonctionnent nickel. ✅ Je n’ai pas implémenté le switch ou le do while, parce que franchement, je les utilise jamais. 🤷♂️ Par contre, la boucle for est bien là, et j'étais en train d'implémenter la boucle foreach. Mais bon, avec tout ce qui est arrivé (startup, voyages, etc.), ça a pris du retard... ✈️
Et enfin, j’ai fait une sorte de structure qui se comporte un peu comme une classe en POO. 🎩 J’ai fait ça parce que, en C, on ne peut pas vraiment faire de POO, donc je me suis dit, "Pourquoi pas une version light ?" Pour l'instant, ça propose des méthodes basiques. Je me suis arrêté à l’héritage (pas encore dispo sur la version GitHub). 🎁
Vous trouverez des exemples sur le repo github dans le répertoire exemple, je vous laisse avec quelque