|Embeddable and Extensible Languages firstname.lastname@example.org (PlayDough) (2005-01-12)|
|Re: Embeddable and Extensible Languages email@example.com (Jean-Marc Bourguet) (2005-01-14)|
|Re: Embeddable and Extensible Languages firstname.lastname@example.org (Georgios Petasis) (2005-01-14)|
|Re: Embeddable and Extensible Languages email@example.com (2005-01-14)|
|Re: Embeddable and Extensible Languages Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2005-01-14)|
|Re: Embeddable and Extensible Languages firstname.lastname@example.org (Thant Tessman) (2005-01-14)|
|Re: Embeddable and Extensible Languages email@example.com (Tom Verbeure) (2005-01-15)|
|[10 later articles]|
|Date:||12 Jan 2005 23:00:41 -0500|
|Posted-Date:||12 Jan 2005 23:00:41 EST|
I've spent quite a bit of time over the last couple of months
evaluating several embeddable and extensible languages. However, I've
yet to find one that really strikes my fancy for our project.
I'm working on a project that would embed a language into our
simulation system for FPGA and ASIC design. This language would be
used to control a testbench through the PLI/FLI provided by the
simulator. Preferrably, it would be C (or C like) since our end users
are most familiar with C. Also, we would like the ability to have
multiple source files or packages that would allow our tools team to
develop support tools.
I've looked at Lua, Python, Pike, Ici, Eic, Ch, Cint, S-Lang, Small,
elastiC, Simkin, and even some small, homegrown projects. However,
they all have one problem or another. I really like Ch, but it is
quite expensive (~$2k). Or Small, but it doesn't provide basic I/O and
support is sparse. Or S-Lang and issues with syntax for our customers
So far, I've narrowed it down to Lua and Python. I like the Lua
syntax, but the support base isn't as big as Python. But with Python,
I fear that the syntax could be problem for the customers of our
project. Both have the problem of not being capable of running
multiple contexts (outside of the interpreter).
I often think a virtual machine approach is the best because it allows
me to have several contexts (realized in separate virtual machines).
At worst, I can get by with a single context but it limits the
generality I'm looking for. On the virtual machine tack, I looked into
Java or the CLR, but interfacing such a beast with our simulator
doesn't seem feasible. I've even thought of writing our own virtual
machine to execute code, but then we'd have to invest in a compiler.
Years ago I created an interpreted version using lex and yacc, but that
was for a different company and I don't have it anymore. And
re-creating it doesn't sound like fun, nor was it feature rich.
So, given this huge lead-in, I'm wondering if anyone has tackled a
similar problem and what did they do? Or, can anyone recommend a
language that is embeddable, extensible, has a good set of features
(file and console I/O, math operations, even if through
packages/add-ons). Perferably it has a reasonable footprint, it
portable across platforms (Linux and Win32), and support for multiple
I know this is probably a tall order, but before I settle with either
Lua or Python, I'd like to get more opinions. Over the years I've
found the newsgroups an indispensible source and I'd appreciate any
Return to the
Search the comp.compilers archives again.