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