Ajouter un commentaire

JSCPP : un interpréteur C++ écrit en JavaScript

Par:
fredericmazue

lun, 27/08/2018 - 14:46

Il s'agit d'un interpréteur développé pour un cours MOOC, donc au départ uniquement à des fins pédagogiques. Partant du constat que jusque là, pour mettre un environnement d'exécution C++ en ligne il était nécessaire d'utiliser des serveurs compilant le code C++ à exécuter, l'auteur propose JSCPP, un interpréteur C++ qui peut travailler avec un serveur node.js, ou même de manière totalement autonome dans un navigateur.

JSCPP est un interpréteur C++ écrit en JavaScript. Certes en l'état, il est bien loin de prendre en charge l'intégralité du standard C++, mais il a le mérite d'exister et une utilisation dans un cadre pédagogique, disons pour prendre contact avec C++ sans devoir compiler du code à chaque fois paraît intéressante.

Obtenir un navigateur qui interprète du C++ est tout simple. On doit simplement charger le code JavaScript de l'interpréteur et mettre C++ à interpréter dans une chaine de caractère. Par exemple comme ceci :

<script src="JSCPP.es5.min.js"></script>
<script type="text/javascript">
           var code =            "#include <iostream>"+
                                            "using namespace std;"+
                                            "int main() {"+
                                            "    int a;"+
                                            "    cin >> a;"+
                                            "    cout << a << endl;"+
                                           "    return 0;"+
                                            "}"
           ;
           var input = "4321";
           var output = "";
           var config = {
                      stdio: {
                                 write: function(s) {
                                            output += s;
                                 }
                      }
           };
           var exitCode = JSCPP.run(code, input, config);
           alert(output + "\nprogram exited with code " + exitCode);
</script>

Cette approche permet de modifier le code C++ dans le navigateur et de tester immédiatement le résultat.  

Une démonstration en ligne de JSCPP est disponible ici.

JSCPP est open source. Son code est disponible sur GitHub.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  AA   N   N  W     W  K  K  M   M 
A A NN N W W K K MM MM
AAAA N N N W W W KK M M M
A A N NN W W W K K M M
A A N N W W K K M M