Embeddable and Extensible Languages

"PlayDough" <petela@gocougs.wsu.edu>
12 Jan 2005 23:00:41 -0500

          From comp.compilers

Related articles
Embeddable and Extensible Languages petela@gocougs.wsu.edu (PlayDough) (2005-01-12)
Re: Embeddable and Extensible Languages jm@bourguet.org (Jean-Marc Bourguet) (2005-01-14)
Re: Embeddable and Extensible Languages petasis@iit.demokritos.gr (Georgios Petasis) (2005-01-14)
Re: Embeddable and Extensible Languages lhf@csgpwr1.uwaterloo.ca (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 thant@acm.org (Thant Tessman) (2005-01-14)
Re: Embeddable and Extensible Languages hombre@gmail.com (Tom Verbeure) (2005-01-15)
[10 later articles]
| List of all articles for this month |

From: "PlayDough" <petela@gocougs.wsu.edu>
Newsgroups: comp.compilers
Date: 12 Jan 2005 23:00:41 -0500
Organization: http://groups.google.com
Keywords: interpreter, question
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
(internal).


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
contexts.


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
responses.


Pete


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.