Lisp As A Scripting Language For Large Real-Time C++ Project 
Author Message
 Lisp As A Scripting Language For Large Real-Time C++ Project

Hello All,

I have just partially completed a large multi-threaded real-time C++ project
and I'm looking for a powerful high level scripting language to script
multiple concurrent real-time tasks.

I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
specifications I require.

Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
or commercial that has the following characteristics:

(1) Can be called asynchronously from a thread originating from a C++
callback.

(2) Can call C++ subroutines (object methods) from the Lisp script (and hold
pointers to C++ objects).

(3) Multiple Lisp scripts can run concurrently in different threads.

(4) Win32 compliant - Although the C++ real-time system contains No windows
specific code (although there is a win32 GUI front-end).

Thanks for any suggestions and ideas.

Regards,

Jim.



Fri, 09 Apr 2004 18:51:40 GMT  
 Lisp As A Scripting Language For Large Real-Time C++ Project

Quote:

> Hello All,

> I have just partially completed a large multi-threaded real-time C++ project
> and I'm looking for a powerful high level scripting language to script
> multiple concurrent real-time tasks.

> I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> specifications I require.

> Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
> or commercial that has the following characteristics:

> (1) Can be called asynchronously from a thread originating from a C++
> callback.

> (2) Can call C++ subroutines (object methods) from the Lisp script (and hold
> pointers to C++ objects).

> (3) Multiple Lisp scripts can run concurrently in different threads.

> (4) Win32 compliant - Although the C++ real-time system contains No windows
> specific code (although there is a win32 GUI front-end).

With some slight modification I think XLisp written by David Michael Betz
would do what you need. For the multiple threading you might need a separate
instance of the interpreter for each thread. Don't know, but it would be
an interesting project.

Mik



Sat, 10 Apr 2004 21:22:24 GMT  
 Lisp As A Scripting Language For Large Real-Time C++ Project
Thanks for mentioning XLISP. I'm not sure it would be good for this
application though. XLISP really only supports a single instance of the
intepreter. The API doesn't require an instance handle to be passed to the
functions in the API. All instance data is stored in global variables. A bad
design, I know. I've done better in my C-like Bob interpreter. If there
weren't already a zillion implementations of Lisp around, I might go back
and fix XLISP. At this point, it just doesn't seem worth it.

David Betz


Quote:

> > Hello All,

> > I have just partially completed a large multi-threaded real-time C++
project
> > and I'm looking for a powerful high level scripting language to script
> > multiple concurrent real-time tasks.

> > I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> > specifications I require.

> > Does anyone know of a Lisp implementation (or a dialect such as Scheme)
free
> > or commercial that has the following characteristics:

> > (1) Can be called asynchronously from a thread originating from a C++
> > callback.

> > (2) Can call C++ subroutines (object methods) from the Lisp script (and
hold
> > pointers to C++ objects).

> > (3) Multiple Lisp scripts can run concurrently in different threads.

> > (4) Win32 compliant - Although the C++ real-time system contains No
windows
> > specific code (although there is a win32 GUI front-end).

> With some slight modification I think XLisp written by David Michael Betz
> would do what you need. For the multiple threading you might need a
separate
> instance of the interpreter for each thread. Don't know, but it would be
> an interesting project.

> Mik



Sat, 10 Apr 2004 21:36:46 GMT  
 Lisp As A Scripting Language For Large Real-Time C++ Project

Quote:
> I have just partially completed a large multi-threaded real-time C++
project
> and I'm looking for a powerful high level scripting language to script
> multiple concurrent real-time tasks.

> I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> specifications I require.

You could use LispWorks for Windows (www.xanalys.com) for this.  You could
deliver a LWW DLL which contains Lisp foreign function definitions callable
from your C++ app.  In turn the LWW DLL could call into your C++ code (in
the same call stack) if you specify C wrappers around your C++ code.  LWW is
thread safe and win32 compliant.

This approach has lots (depends on the complexity of your app) C glue.  You
might consider recoding your C++ app in Common Lisp.  Then you get
scripting, gui, testing and functionality all in one language.

:-)

Wade



Sat, 10 Apr 2004 22:23:11 GMT  
 Lisp As A Scripting Language For Large Real-Time C++ Project

Quote:

> Thanks for mentioning XLISP. I'm not sure it would be good for this
> application though. XLISP really only supports a single instance of the
> intepreter. The API doesn't require an instance handle to be passed to the
> functions in the API. All instance data is stored in global variables. A bad
> design, I know. I've done better in my C-like Bob interpreter. If there
> weren't already a zillion implementations of Lisp around, I might go back
> and fix XLISP. At this point, it just doesn't seem worth it.

LMAO!

I didn't read who asked the question, I just responded to it!
David, good to see you're still around. We spoke on the phone once.
I always think highly of your xlisp interpreter and recommend it
when a project comes up.



Sat, 10 Apr 2004 22:22:53 GMT  
 Lisp As A Scripting Language For Large Real-Time C++ Project
On Mon, 22 Oct 2001 20:51:40 +1000, "James McCulloch"

Quote:

>Hello All,

>I have just partially completed a large multi-threaded real-time C++ project
>and I'm looking for a powerful high level scripting language to script
>multiple concurrent real-time tasks.

>I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
>specifications I require.

>Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
>or commercial that has the following characteristics:

>(1) Can be called asynchronously from a thread originating from a C++
>callback.

>(2) Can call C++ subroutines (object methods) from the Lisp script (and hold
>pointers to C++ objects).

>(3) Multiple Lisp scripts can run concurrently in different threads.

>(4) Win32 compliant - Although the C++ real-time system contains No windows
>specific code (although there is a win32 GUI front-end).

I realize this is a Lisp newsgroup, but....

You might also consider Tcl and Python; Tcl, in particular, was
designed for just the kind of thing you're talking about.  You can
have multiple interpreters, each running in its own thread, each
running its own script.



Sat, 10 Apr 2004 22:30:17 GMT  
 Lisp As A Scripting Language For Large Real-Time C++ Project

Quote:

> Hello All,

> I have just partially completed a large multi-threaded real-time C++ project
> and I'm looking for a powerful high level scripting language to script
> multiple concurrent real-time tasks.

> I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> specifications I require.

> Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
> or commercial that has the following characteristics:

> (1) Can be called asynchronously from a thread originating from a C++
> callback.

> (2) Can call C++ subroutines (object methods) from the Lisp script (and hold
> pointers to C++ objects).

> (3) Multiple Lisp scripts can run concurrently in different threads.

> (4) Win32 compliant - Although the C++ real-time system contains No windows
> specific code (although there is a win32 GUI front-end).

> Thanks for any suggestions and ideas.

(WITH-TONGUE-IN-CHEEK ":}"

you could also rewrite the entire system in Common Lisp and see
whether it performs better than the C++ version.  After all, you have
not specified what "Real Time" means in your context.

In this way you would not have to think about "what scripting
language do I add to my application".

)

Cheers

--
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.



Sun, 18 Apr 2004 07:32:31 GMT  
 
 [ 7 post ] 

 Relevant Pages 

1. Python as scripting plug-in for large C++ project

2. Lisp as a scripting language from within C++?

3. Time to REAL & REAL to time

4. C++ vs Ada for large project

5. Rational Inc. touts C++ = Ada for large projects

6. High-level languages, large projects, GNOME and the .NET controversy

7. Python with AMS Real Time Project

8. expect script times out with large file

9. c++, smalltalk, and real-time

10. Real Time Forth Post Script version problem

11. US-CA-Sunnyvale/real-time embedded software/test/UNIX/Ada/C++

12. US-CA-Sunnyvale/flight software/real-time embedded/C++/Ada

 

 
Powered by phpBB® Forum Software