Scripting language for C/C++?
Solution 1
With a C/C++ interpreter you can use C/C++ as a scripting language
-
Ch: http://www.softintegration.com/
Commmercial C/C++ interpreter with a free Standard Edition. Has support for various popular libraries and windowing toolkits.
-
CINT: http://root.cern.ch/drupal/content/cint
Actively developed open-source (MIT license) C/C++ interpreter. Developed as part of the ROOT environment at the CERN. Used by many physicist.
-
ccons: http://code.google.com/p/ccons/
An interactive C console which employs LLVM and its new C frontend (clang). Under active development
-
UnderC: http://home.mweb.co.za/sd/sdonovan/underc.html
An open-source (LGPL) C++ interpreter. Seems to be a bit dated (2002).
Note: So far, I have tried only Ch and CINT. I have added ccons and UnderC to make the list more complete.
Solution 2
You may try Lua quite often used with C++ in games industry. It has a small memory footprint and is quite mature, has a great library... just give it a try.
hm... I do not understand what you want to achieve: do you want to find a scripting language that will somehow, magically be converted into c++ source? Or what you really want is just an option to create an executable from the script? If the latter - then you may try py2Exe.
Solution 3
Anybody interested in a scripting language that is (mostly) very similar to C++, may want to take a look at angelscript (ZLIB):
The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer.
Efforts have been made to let it call standard C functions and C++ methods with no need for proxy functions. The application simply registers the functions, objects, and methods that the scripts should be able to work with and nothing more has to be done with your code. The same functions used by the application internally can also be used by the scripting engine, which eliminates the need to duplicate functionality.
For the script writer the scripting language follows the widely known syntax of C/C++ (with minor changes), but without the need to worry about pointers and memory leaks. Contrary to most scripting languages, AngelScript uses the common C/C++ datatypes for more efficient communication with the host application.
For more info, check out: http://www.angelcode.com/angelscript/sdk/docs/manual/index.html
Solution 4
Many projects combine e.g. C++ and Python -- see for example boost.python.
I prefer R and use the Rcpp interface from R to C++.
Either case gives you your scripting language for prototyping and easy 'glue' to C++ for performance.
Solution 5
pawn is a simple, typeless, 32-bit extension language with a C-like syntax. A pawn "source" program is compiled to a binary file for optimal execution speed. The pawn compiler outputs P-code (or bytecode) that subsequently runs on an abstract machine. Execution speed, stability, simplicity and a small footprint were essential design criteria for both the language and the abstract machine.
This language is very simular to c syntax, so anyone that has done any c++,c,c#,java will be able to read it and its simplyfied so none coders can read it to. This language is currently used all around, among other places scripting against halflife 1 and halflife2 servers.
rjoshi
Updated on July 15, 2022Comments
-
rjoshi almost 2 years
Is there a scripting language for C++ (like perl) which can be used for rapid development and use some tool which can convert into C/C++ program to get higher performance for deployment?
EDIT:
Based on some commented, let me clarify the question. I should be able to convert script into C/C++ program or binary without modifying my script. -
rjoshi over 14 yearsI agree with your comment but problem is you are doing quick prototype and won't know the performance requirements until product becomes successful and performance becomes bottleneck.
-
Maciek Talaska over 14 yearsthose links are very, very interesting, thanks for sharing with us! I didn't think that there is actually a possibility to create c++ scripts :)
-
Mark Tomlin over 14 years/me loves my pawn, and the AMX guys have done some INSANE things with the language.
-
NoMoreZealots about 14 years"Small foot print" is a relative term... Lau requires more memory than some systems I would like to use it on have.
-
Maciek Talaska about 14 yearsFor embedded development (and alike) where every byte of memory is valuable, using any language that comes with its own VM may not be the best solution (I assume). You haven't specified what you want to use the scripting language for, on what kind of platform, what were the limitations... It was quite hard to guess ;) And if you would like to compare performance of various languages: shootout.alioth.debian.org
-
Keith Thompson almost 11 yearsWhat is "C/C++"? Do these interpreters support C, or C++, or both?
-
Aleksey Balenko almost 11 years@KeithThompson Ch an CINT support both C and C++. CINT says it "covers most of ANSI C (mostly before C99) and ISO C++ 2003". And Ch claims to implement a superset of C and a subset of C++.
-
pseyfert over 7 yearsCINT is superseded by cling. And cling covers C++ fully (and not "mostly" like CINT).