Langage et environnements dédiés à l’algorithmique.
MicroAlg est une sorte de pseudo-code en français et exécutable sur machine. C’est un langage embarqué dans PicoLisp. Donc :
- c’est un Lisp, donc il n’y a pas de syntaxe à apprendre, juste des commandes,
- elle peut tourner sur plusieurs plateformes :
- Javascript (navigateurs ou NodeJS) grâce à EmuLisp,
- là où PicoLisp (ASM, C) peut tourner nativement,
- la JVM grâce à Ersatz (une implémentation en Java de Picolisp, par l’auteur de Picolisp),
- il est toujours possible si on se sent limité par ce langage, d’utiliser
directement PicoLisp dans du code MicroAlg voir par exemple le fichier de
tests
microalg_tests.malg.
Voir le site officiel pour plus de détails, dont le code est dans ce dépôt.
Il est possible d’installer MicroAlg sur sa machine ou sur son site.
Voir le fichier INSTALL.md.
Listés dans l’ordre où ils apparaissent sur GitHub.
editeurs: fichiers pour l’intégration avec différents éditeursnpp: pour NotePad++malgj_npp.bat: exécutable permettant d’exécuter un.malgavec Ersatz (Java) sous Windows et depuis NotePad++malgjs_npp.bat: exécutable permettant d’exécuter un.malgavec Node et Emulisp sous Windows et depuis NotePad++
scite: pour SciTESciTEGlobal.properties: configuration recommandée et/ou obligatoire pour l’intégrationmalg_abbrev.properties: permettra de mettre en place une structure en trois ou quatre touches (juste pour voir, relativement vide pour l’instant)malg.api: contient les signatures des commandes pour les infos-bullesmicroalg.lua: le cœur de l’intégration avec l’éditeur (lexer, couleurs, commande pour l’exécution du fichier en cours…)
emulisp: implémentation de Picolisp en JS- voir le site semi-officiel
- la version utilisée ici est une version expérimentale, qui guide le développement de la version semie-officielle
ersatz: implémentation de Picolisp en Java, par le créateur de PicoLispexemples: quelques fichiers.malg(MicroAlg) ou.l(PicoLisp) en exemples, qui servent aussi pour les testsfeatures: tests de fonctionnalité pour les interpréteurs, rédigés en Gherkincli.pyfait le lien entre les mots-clef des tests Gherkin et les actions à prendre pour exécuter concrètement ces tests
install_scripts: scripts d’installation :fix_lettuce.sh: permet d’utiliserlettuceavec du texte comprenant des accentsinstall_picolisp.sh: pour l’interpréteur officiel de PicoLisp écrit en assembleur et C (d’où peut-être le répertoirepicolispqui traîne)
lib: quelques fichiers mi-.lmi-.malgxml.l: bibliothèque en PicoLisp pour la génération de XML
visuels: divers fichiers graphiques comme par exemple le logoweb: des fichiers de complément pour les.htmlde ce projetblockly: un extrait des fichiers du projet permettant de programmer avec des pièces de puzzle (Blockly)blockly_microalg.js: les blocs Blockly et leur générateur, correspondant aux mots-clés prédéfinis de MicroAlgide_injections.js: contient de quoi intégrer MicroAlg dans une pagejquery.terminal*: pour la console ou REPL (site officiel)parenedit.*: pour les parenthèses de couleurshowdown.*: (github)showup.*: (github)style.css: la feuille de style
.gitignore: spécification des fichiers non versionnés intentionnellement.travis.yml: spécification des tests automatisés via TravisINSTALL.md: documentation complète concernant les différentes manières d’installer MicroAlg.LICENSE: la licenceREADME.md: ce fichier (j’ai toujours rêvé d’écrire ça)doc.html: la documentation de MicroAlgide.html: un IDE web de fortune, accessible icimalg: exécutable permettant d’exécuter un.malgavec PicoLisp (ASM/C)malgj: exécutable permettant d’exécuter un.malgavec Ersatz (Java)malgj.bat: exécutable permettant d’exécuter un.malgavec Ersatz (Java) sous Windowsmalgjs: exécutable permettant d’exécuter un.malgavec Node et Emulispmalgjs.bat: exécutable permettant d’exécuter un.malgavec Node et Emulisp sous Windowsmicroalg.l: implémentation de MicroAlg en PicoLisp, le cœur de ce projetmicroalg_export*microalg_export.l: fonctions PicoLisp préparant l’export en généralmicroalg_export_blockly.l: reprogrammation de MicroAlg pour la mise en place de blocs correspondant à un programme
microalg_tests*:microalg_tests.malg: les tests des commandes MicroAlg testables avec PicoLisp/MicroAlg seulementmicroalg_tests.sh: de quoi lancer les tests sur toutes les plateformes possibles, features non comprisesmicroalg_tests_emulisp.sh: de quoi lancer les tests avec Node et EmuLispmicroalg_tests_ersatz.bat: de quoi lancer les tests avec Ersatz sous Windowsmicroalg_tests_ersatz.sh: de quoi lancer les tests avec Ersatzmicroalg_tests_features.sh: de quoi lancer les tests de fonctionnalitémicroalg_tests_picolisp.sh: de quoi lancer les tests avec Ersatz
tuto*.html: pages web interactives pour apprendre MicroAlg, et plus généralement à faire ses premiers pas en algorithmique et en programmationtuto.html: le tuto historiquetuto_blocs.html: le tuto avec les blocs (inachevé par manque de blocs)tuto_rapide.html: le tuto pour les programmeurs avertistuto.html: le tuto plus succint et moins littéraire