JSCPP : un interpréteur C++ écrit en JavaScript
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.