(rédaction initale en Juin 2007)
Quelle surprise il y a quelques semaines quand j’ai cherché sur le web si, par hasard, il existait un interpréteur C écrit en javascript qui pourrait tourner dans une fenêtre web. Bon, pour l’insant je n’ai pas trouvé ce que je voulais (j’ai tout de même fait connaissance avec CINT (http://root.cern.ch/root/Cint.html) et Ch (http://www.softintegration.com/), et c’est déjà une bonne chose), mais j’ai découvert plein d’autres langages possédant sur le web un interpréteur javascript (ou au moins une version web), en particulier ProLog ! :
par ordre alphabétique (pour les plus connus) :
- Basic : http://www.quitebasic.com/
- CAML : http://pagesperso-orange.fr/jacques.rouable/mic/ac.htm
- Forth : http://forthfreak.net/jsforth.html
- Javascript (il y en a beaucoup, avec juste ‘eval’) : http://mochikit.com/examples/interpreter/ mais pas http://mxr.mozilla.org/mozilla/source/js/narcissus/ (self-interpreter !) ou https://github.com/jterrace/js.js (obtenu avec https://github.com/kripken/emscripten) voir aussi l’avancement de s-mr
- Lisp (il y en a d’autres) : http://www.joeganley.com/code/jslisp.html
- Logo : http://www.logowiki.net/ ou http://www.calormen.com/Logo/ ou …
- Mix : http://www.recreationalmath.com/mixal/
- ML : http://darknoon.com/orc/
- Pdf : http://logand.com/sw/wps/index.html
- Php : http://code.google.com/p/phype/
- PostScript : http://logand.com/sw/wps/index.html
- ProLog (il y en a d’autres) : http://ioctl.org/logic/prolog-latest
- Python : http://syntensity.com/static/python.html
- Ruby : http://coderepos.org/share/wiki/JSRuby
- Scheme : http://www.crockford.com/javascript/scheme.html
- Smalltalk : http://www.cs.ucla.edu/~awarth/ometa/ometa-js/
- TCL : http://wiki.tcl.tk/17972
- X86 : http://www.xpounded.netfirms.com/jasm/jasm.html
- 6502 : http://6502asm.com/
quelques uns moins connus :
- Arc : http://jonathan.tang.name/files/arclite/index.html
- Aheui : http://puzzlet.org/doc/aheui/jsaheui_en.html
- Ambi : http://code.google.com/p/ambi/
- Befalse : http://www.quirkster.com/iano/js/befalse.html
- Befunge : http://www.quirkster.com/js/befunge.html
- Biota : http://c2.com/cybords/files/biota.html
- BF : http://www.iwriteiam.nl/Ha_bf_online.html
- BrainClub : http://esolangs.org/wiki/BrainClub
- Brainfuck : http://justice.loyola.edu/~mcoffey/pr/5k/i.html
- BrainSpace : http://code.google.com/p/brainspace/
- CAT : http://www.cat-language.com/interpreter.html
- Esoteric languages : http://www.safalra.com/programming/esoteric-languages/interpreters
- F# : http://fswebtools.codeplex.com/
- False : http://www.quirkster.com/iano/js/false-js.html
- Kemuri : http://www.nishiohirokazu.org/files/python4js.html
- Paintfuck : http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck.php
- PushScript : http://www.spiderland.org/PushScript/
- SNUSP : http://www.quirkster.com/iano/snusp/snusp-js.html
et enfin, quelques interpréteurs de pseudo-code :
- Java : (je n’ai plus l’adresse)
- OCaml : http://www.pps.jussieu.fr/~canou/obrowser/tutorial/
- Python : http://code.google.com/p/pejs/
- Ruby : http://www.infoq.com/news/2008/03/hotruby-ruby-yarv-in-javascript
(et il y a aussi des machines amiga / zx / hp / Apple II / … qui sont émulées et des langages visuels Lily, … )
d’autres : http://del.icio.us/search/?all=javascript%20interpreter (ou faire une requête interpreter in javascript)
Attention : il s’agit bien de langage interprété par javascript, et pas le contraire (il y a aussi beaucoup d’interpréteur de javascript dans des langages différents et variés, en particulier en C)
Associé à un éditeur texte web un peu performant, j’imagine des pages possédant un editeur de texte, un interpreteur, et un peu de logique pour analyser/diagnostiquer les productions d’élèves, cela donnerait une page web facile à intégrer à toute plateforme de e-learning et aussi puissante que les rares LispTutor (Elm-Art : http://www.psychologie.uni-trier.de/projects/ELM/elmart.html), et autres rares tuteurs disponibles sur le web (pour un coût beaucoup moindre) … J’imagine même des composants génériques pour le diagnostic/analyse des langages de programmation.
Pour les éditeurs web de textes, il y a ce qu’il faut sur le web :
- http://marijn.haverbeke.nl/highlight/index.html
- http://codepress.sourceforge.net/index.php
- http://helene.muze.nl/ariadne/loader.php/helene/demo/
- http://demo.aboutedit.com/
- https://bespin.mozilla.com/
- …
Il reste à produire les outils d’analyse/diagnostic génériques et lier le tout … (le tout en javascript, biensur)
Bien à vous,
Denis.
ps : Si quelqu”un connait un autre interpréteur javascript d’un langage, qu’il l’ajoute, en particulier pour C, je cherche encore. Et si vous avez des exemple de pages web ou des interpréteurs sont utilisées à des fins éducatives, je suis aussi interressé.
MAJ 2012 :
Pour ARM, voila un début d’interptéteur écrit en javascript : http://bdenis.pbworks.com/w/page/50436980/mini%20interpreteur%20ARM
Pour le projet de plateforme d’edition, d’interprétation, d’analyse de code voila : http://edba.imag.fr