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 plates-formes :
- Javascript (navigateurs ou NodeJS) grâce à EmuLisp,
- là où PicoLisp (ASM, C) peut tourner nativement,
- la JVM grâce à Ersatz PicoLisp (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.
dev
: différents outils pour les développeursediteurs
: fichiers pour l’intégration avec différents éditeursscite
: pour SciTESciTEGlobal.properties
: configuration recommandée et/ou obligatoire pour l’intégrationmalg.api
: contient les signatures des commandes pour les infos-bullesmalg_abbrev.properties
: permettra de mettre en place une structure en trois ou quatre touches (juste pour voir, relativement vide pour l’instant)malg-*-scite.bat
: exécutables permettant d’interpréter un.malg
sous Windows et depuis SciTEmicroalg.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 dépôt semi-officiel, mais attention, la version utilisée ici est une version expérimentale, qui guide le développement de la version semie-officielle)pil-njs*
script pour lancer EmuLisp sur Nodepil-rjs*
script pour lancer EmuLisp sur Rhino
ersatz
: implémentation de Picolisp en Java, par le créateur de PicoLisppil-j*
script pour lancer Ersatz
exemples
: 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.py
fait 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’utiliserlettuce
avec 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épertoirepicolisp
qui traîne)
jar
contient quelques archives Javajs.jar
Rhino, l’implémentation de Javascript en Java par Mozilla
lib
: quelques fichiers mi-.l
mi-.malg
xml.l
: bibliothèque en PicoLisp pour la génération de XML
pde/microalg/microalg.pde
: pour la sortie graphique, avec Processing ou Processing.jspde/microalg.out/
: fichiers générés par Processingvisuels
: divers fichiers graphiques comme par exemple le logoweb
: des fichiers de complément pour les.html
de 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 MicroAlgcss-ninja-tree
: pour afficher le code sous forme d’arbre en HTML/CSSide_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 couleurjquery.textcomplete.*
: pour les suggestionsprocessing.*.min.js
: Processing pour le webshowdown.*
: (github)showup.*
: (github)style.css
: la feuille de stylesvg-tree-drawer
: pour la visualisation du code sous forme d’arbre en SVGtabIndent.js
: pour indenter et désindenter avec la toucheTAB
.gitattributes
: fichier de configuration du dépôtgit
, surtout utilisé pour GitHub.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 MicroAlgfaq.html
: la foire aux questions de MicroAlgide.html
: un IDE web de fortune, accessible icimalg
: exécutable permettant d’interpréter un.malg
avec PicoLisp (ASM/C)malg-clj.bat
: exécutable permettant d’interpréter un.malg
avec MicroAlg-clj (Clojure), mais le.jar
n’est pas fourni car réservé aux utilisateurs avancésmalg-j
: exécutable permettant d’interpréter un.malg
avec Ersatz (Java)malg-j.bat
: exécutable permettant d’interpréter un.malg
avec Ersatz (Java) sous Windowsmalg-j-repl.bat
: exécutable permettant de travailler avec une console interactive avec Ersatz (Java) sous Windowsmalg-njs
: exécutable permettant d’interpréter un.malg
avec Node et Emulispmalg-njs.bat
: exécutable permettant d’interpréter un.malg
avec Node et Emulisp sous Windowsmalg-njs-repl.bat
: exécutable permettant de travailler avec une console interactive avec Node et Emulisp sous Windowsmalg-rjs
: exécutable permettant d’interpréter un.malg
avec Rhino et Emulispmalg-rjs.bat
: exécutable permettant d’interpréter un.malg
avec Rhino et Emulisp sous Windowsmalg-rjs-repl.bat
: exécutable permettant de travailler avec une console interactive avec Rhino 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_arbreninja.l
: reprogrammation de MicroAlg pour la visualisation sous forme d’arbre en HTML/CSSmicroalg_export_arbresvg.l
: reprogrammation de MicroAlg pour la visualisation sous forme d’arbre graphiquemicroalg_export_arbretxt.l
: reprogrammation de MicroAlg pour la visualisation sous forme d’arbre textuelmicroalg_export_blockly.l
: reprogrammation de MicroAlg pour la mise en place de blocs correspondant à un programmemicroalg_export_casio.l
: reprogrammation de MicroAlg pour l’export d’un programme vers le langage des Casiomicroalg_export_javascript.l
: reprogrammation de MicroAlg pour l’export d’un programme vers JavaScriptmicroalg_export_microalg.l
: reprogrammation de MicroAlg pour l’export d’un programme vers MicroAlgmicroalg_export_processing.l
: reprogrammation de MicroAlg pour l’export d’un programme vers Processingmicroalg_export_python.l
: reprogrammation de MicroAlg pour l’export d’un programme vers Pythonmicroalg_export_ti.l
: reprogrammation de MicroAlg pour l’export d’un programme vers le langage des TI
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 plates-formes possibles, features non comprisesmicroalg_tests_*.bat
: de quoi lancer les tests avec Windowsmicroalg_tests_*.sh
: de quoi lancer les tests autrement qu’avec Windowsmicroalg_tests_features.sh
: de quoi lancer les tests de fonctionnalité
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_graphique.html
: le tuto sur les commandes ayant une sortie graphique, dont la tortuetuto_rapide.html
: le tuto pour les programmeurs avertis