Cling, un interpréteur C++

a marqué ce sujet comme résolu.

Je viens vous faire part d'une découverte que je viens de faire, et qui m'a ébahie ! Il existe des (au moins un) interpréteurs C++ !

C'est basé sur LLVM (avec compilation JIT du code produit), et ça s'apelle cling. Et ça donne des trucs fun comme ça :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ #include <iostream>
[cling]$ using namespace std;
[cling]$ cout < 4 + 65.9 < endl;
input_line_6:2:7: error: invalid operands to binary expression ('ostream'
      (aka 'basic_ostream<char>') and 'double')
 cout < 4 + 65.9 < endl;
 ~~~~ ^ ~~~~~~~~
[cling]$ cout << 4 + 65.9 << endl;
69.9
[cling]$ #include <cmath>
[cling]$ cout << sin(tan(4)) << endl;
0.915931
[cling]$ for(int i=0; i<10; i++){
[cling]$ ?   cout << i << endl;
[cling]$ ?   }
0
1
2
3
4
5
6
7
8
9
[cling]$

Donc il semblerai que l'on puisse appeller des bibliothèques sans problèmes, mais pas définir une fonction.

1
2
3
4
5
6
[cling]$ int test(int a) {
[cling]$ ?   return a;
[cling]$ ?   }
input_line_15:2:18: error: function definition is not allowed here
 int test(int a) {
                 ^

Juste pour savoir, vous connaissez d'autres projets dans le même style (pour du C++ ou du C) ? En vrai, ça pourrait être assez pratique pour commencer l'apprentissage du C++ d'avoir un interpréteur à portée de main. Je sens que je vais me remettre au C++ moi ^^

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte