Scripting language for C/C++?

18,611

Solution 1

With a C/C++ interpreter you can use C/C++ as a scripting language


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

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.

Share:
18,611
rjoshi
Author by

rjoshi

Updated on July 15, 2022

Comments

  • rjoshi
    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
    rjoshi over 14 years
    I 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
    Maciek Talaska over 14 years
    those 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
    Mark Tomlin over 14 years
    /me loves my pawn, and the AMX guys have done some INSANE things with the language.
  • NoMoreZealots
    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
    Maciek Talaska about 14 years
    For 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
    Keith Thompson almost 11 years
    What is "C/C++"? Do these interpreters support C, or C++, or both?
  • Aleksey Balenko
    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
    pseyfert over 7 years
    CINT is superseded by cling. And cling covers C++ fully (and not "mostly" like CINT).