#+title: Les langages exotiques ludiques : Le cas du Baguette# #+date: <2023-06-23 ven.> #+html_link_up:../roadmap.html * Introduction [[https://video.passageenseine.fr/w/1n6FvveENXyrvTCj7NWALm][Rediffusion]] - [[https://baguettesharp.nwa2coco.fr][Site]] Conférence faite par Charlotte Thomas, étudiante en Licence 2 à l'ISTIC et en stage au sein de l'IRISA/INRIA. * Les langages exotiques Un langage exotique, ou [[https://esolangs.org/][esolang]] en anglais, fait partie de *l'informatique récréative*. On fait ça pour s'amuser et n'a pas vocation à être utile. Le langage exotique le plus connu : le brainfuck. D'autres langages rigolos : [[https://esolangs.org/wiki/Befunge][Befunge]] (programmation 2D), [[https://esolangs.org/wiki/2014][2014]] et [[https://esolangs.org/wiki/2017][2017]] qui, comme leurs noms l'indiquent, ne fonctionnent qu'en 2014 et 2017. Le principal intérêt de ces langages est *pédagogique*. On apprend à faire un langage simple. Baguette# était au début un simili-Basic, dont l'interpréteur est écrit en Ocaml. Il a été codé sans connaissance d'algorithme d'analyse syntaxique, ce qui a été entre autres appris lors de la réalisation de ce projet. * Baguette# Ce langage n'a aucun intérêt si ce n'est apprendre (et être invitée à PSES). Les mots clés sont pertinents avec le nom, tournant autour de la pâtisserie (=PARIS BREST= pour ouvrir un guillemet...). Il n'a pas d'opération infixe, ne sachant pas les réaliser à l'implémentation de l'interpréteur. Il faut écrire les opérations de la manière suivante : =+ 2 2=[fn:1]. Particularité : il n'a pas de boucles, il faut utiliser des =goto=. Le langage peut être écrit avec des émojis : c'est grâce à *une propriété d'Ocaml*. Les chaînes de caractères sont *encodées en UTF-8*, il est donc possible de faire du /pattern matching/ dessus. Le langage a un manageur de paquets, comme =pip= ou =npm= et s'appelle *Boulangerie*. Il s'adapte selon la langue locale : en français les commandes sont en anglais et vice-versa. L'interpréteur et le manageur de paquets ne sont disponibles que sur MacOS et Linux, à cause d'une bibliothèque utilisée qui n'existe pas sur Windows. Il n'y a pas de mode Emacs... pour l'instant. * Footnotes [fn:1] Cela me fait penser au Lisp où l'addition est =(+ 2 2)=.