Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #20515

Re: Embedded Scripting -- Tcl? Lua? Thoughts? Suggestions?

From rickman <gnuarm@gmail.com>
Newsgroups comp.arch.embedded, comp.lang.forth
Subject Re: Embedded Scripting -- Tcl? Lua? Thoughts? Suggestions?
Date 2015-03-18 02:34 -0400
Organization A noiseless patient Spider
Message-ID <meb67a$c8$1@dont-email.me> (permalink)
References <kdCdnY1enJGty57InZ2dnUU7-VOdnZ2d@giganews.com> <mdvmqd$hae$1@speranza.aioe.org> <kdCdnY9enJGH5p7InZ2dnUU7-VOdnZ2d@giganews.com>

Cross-posted to 2 groups.

Show all headers | View raw


On 3/13/2015 8:04 PM, Tim Wescott wrote:
> On Fri, 13 Mar 2015 15:03:09 -0700, Don Y wrote:
>
>> Hi Tim,
>>
>> On 3/13/2015 2:27 PM, Tim Wescott wrote:
>>> The title says most of it.
>>>
>>> I'm working on a project for which the customer wants a lot of
>>> flexibility to customize a product.  The existing "macro language" is
>>> ancient (ca 1985), cryptic (it looks like machine language), limited,
>>> clunky, etc. The customer is willing to change.
>>>
>>> I'm planning on having a chunk of serial flash (or an SD card) with a
>>> file system on it (maybe FAT, maybe something home-rolled and
>>> primitive). Scripts will be stored as text files, and read in as
>>> appropriate.
>>>
>>> Rather than just use some clunky cryptic and limited language that's
>>> unique to the problem and to me (and charging my customer up the wazoo
>>> for it), I'd like to use something that's open-source and available.
>>> Something that uses modest resources is to be preferred -- my
>>> understanding is that I can expect Lua to use about 100k of flash,
>>> which is a bit much for me but bearable.  I don't know how Tcl compares
>>> -- I just know that it's an alternative.
>>>
>>> So -- anyone have any direct experience with either of these, or with
>>> something else?  We briefly considered Java, but it just looks entirely
>>> too big -- it would basically drive us to use Linux or some other
>>> "real" OS (even the little linuxes are too big for my tastes) -- I'd
>>> really rather just have a scripting engine that gets called whenever a
>>> script needs to run, and otherwise doesn't need much hand-holding from
>>> the application code.
>>>
>>> I'm looking for opinions, so fire away!
>>
>   << smart-assery snipped >>
>>
>> As to *your* question...
>>
>> What sorts of things does the customer expect to *do* with those
>> scripts?
>> And, (besides space) what other constraints are you needing to place on
>> those actions?  E.g., any timeliness constraints?  Performance?
>> Numerical precision?  etc.
>>
>> Who is the intended user:  *just* the client?  Or, will these things be
>> exposed to users?
>>
>> What sorts of things do the scripts interact with (displays, etc.)?
>> E.g., do you need to be able to manipulate a GUI without constraint?
>> Or, are you just serving up text and/or canned dialogs?
>>
>> What sort of user input device (keyboard, keypad, etc.)?  Other I/O's?
>>
>> I opted for a (bastardized) Limbo as my scripting language.  But, I use
>> it to generate "real" applications and not just automate some
>> preexisting actions.  However, it won't fit your memory requirements.
>>
>> Can you tolerate something as "crude" as a bastardized BASIC?  I.e.,
>> add "product specific" hooks to it to address some of the special needs
>> (displays, etc.) at a "native" level.  A BASIC interpreter/compiler can
>> be really small.
>>
>> The same can be said of C interpreters, mini-compilers (JIT).  But,
>> you'd be targeting a different class of "developer" (user).
>
> The product will have a character display, and it'll store text files for
> later retrieval.  It has a measurement thingie (I don't want to get too
> specific -- but it makes measurements) that'll cough up a number when it's
> actuated, and it has a sea of (well, around 100) buttons that the user can
> press.
>
> My intention at the moment is to make the box this big dumb thing with
> some system code that knows to call a function for each measurement and
> button press (i.e., when the user presses button 1, the function named
> "button_1" will get called if it exists).  Then I'll encode the actual
> functionality as a bunch of functions in the language-o-choice.
>
> The nice thing about this is that if a user comes up with some desired
> customization (which we expect, as we're replacing an existing product for
> which this was common), we can either tell them to start coding and have
> fun, or we can charge them $$ to code the thing up to their specifications.
>
> The real driver for wanting to do this as a scripting language is to make
> it easy for the user to customize.  I'm imagining that some users won't
> want to touch the customization with a 10 foot pole, some will be happy to
> customize a button or two, some will get their feet wet and then call us,
> and some will go whole hog with the thing, and do entire systems without
> us even knowing it's going on.

I think what you are describing is Forth.  There are two commercial 
vendors, MPE and Forth Inc.  I know the MPE license allows you to embed 
the "interpreter" into your product for the customer to use.  There are 
also open source Forths around, but with varying levels of embeddability 
and support.  One is Mecrisp which is available for a few of the many 
ARM processors around and the TMS430 I believe.  There are many others.

Forth can be idiot simple to use.  The assumption is it has a serial 
terminal for I/O or something much like it.  I/O can be redirected 
from/to files or anything else by using deferred words.  It can run on 
the bare metal or under an OS.  You can give as much power to your 
customer as you think they can handle or as little as you think is wise.

I've cross posted this to the forth group to get input from some of the 
regulars there.

Oh, about the "file system".  If you are happy with no file system at 
all, Forth can treat your storage as "blocks" of 1 KB and no real files 
at all.  You can't get much simpler than that.

-- 

Rick

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <seemywebsite@myfooter.really> - 2015-03-13 16:27 -0500
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 15:03 -0700
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <seemywebsite@myfooter.really> - 2015-03-13 19:04 -0500
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? rickman <gnuarm@gmail.com> - 2015-03-18 02:34 -0400
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-03-18 12:37 +0000
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <seemywebsite@myfooter.really> - 2015-03-13 19:06 -0500
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 18:14 -0700
  Re: Embedded Scripting -- Tcl? Lua? Thoughts? Suggestions? Tom Gardner <spamjunk@blueyonder.co.uk> - 2015-03-13 22:30 +0000
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-14 00:48 +0100
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 19:45 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-15 23:01 +0100
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? mroberds@att.net - 2015-03-14 00:28 +0000
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 18:45 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Clifford Heath <no.spam@please.net> - 2015-03-14 13:14 +1100
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 20:35 -0700
          Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-14 23:59 -0400
            Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-14 22:30 -0700
              Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-15 21:44 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-15 20:09 -0700
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-14 23:59 -0400
          Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-16 15:42 -0700
            Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-17 04:25 -0400
              Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-17 10:39 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-17 17:06 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-17 19:36 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-18 01:50 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-17 23:32 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-18 05:30 -0500
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-18 10:32 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-18 16:11 -0500
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-18 18:26 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-19 02:09 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-19 12:04 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-19 17:52 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-19 15:44 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-20 02:38 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-20 10:05 +0100
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 02:51 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-20 11:49 +0100
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 05:12 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-20 14:55 +0100
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 15:07 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-20 14:11 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 15:20 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-22 09:28 -0400
                OT:  EoL Don Y <this@is.not.me.com> - 2015-03-22 12:19 -0700
                Re: OT:  EoL Reinhardt Behm <rbehm@hushmail.com> - 2015-03-23 07:30 +0800
                Re: OT:  EoL Don Y <this@is.not.me.com> - 2015-03-22 17:19 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 02:12 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Mel Wilson <mwilson@the-wire.com> - 2015-03-20 13:24 +0000
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 10:20 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-22 08:12 -0400
                OT: senses Don Y <this@is.not.me.com> - 2015-03-22 13:53 -0700
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Wouter van Ooijen <wouter@voti.nl> - 2015-03-15 10:11 +0100
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? mroberds@att.net - 2015-03-14 07:50 +0000
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Mel Wilson <mwilson@the-wire.com> - 2015-03-14 12:24 +0000
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-14 11:46 -0700
          Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-14 23:58 -0400
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Clifford Heath <no.spam@please.net> - 2015-03-14 12:59 +1100
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 20:16 -0700
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <tim@seemywebsite.com> - 2015-03-13 23:20 -0500
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 22:29 -0700
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 22:46 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Stefan Reuther <stefan.news@arcor.de> - 2015-03-14 11:02 +0100
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Anders.Montonen@kapsi.spam.stop.fi.invalid - 2015-03-16 11:37 +0000
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-16 13:53 -0700
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-14 03:16 -0500
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2015-03-14 10:27 +0200
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-03-14 08:43 +0000
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2015-03-14 13:55 +0200
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-03-14 12:14 +0000
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? stephen@mpeforth.com (Stephen Pelc) - 2015-03-14 18:04 +0000
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2015-03-14 23:14 +0200
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Allan Herriman <allanherriman@hotmail.com> - 2015-03-14 10:08 +0000
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-15 00:55 -0400
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-14 22:20 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-15 20:35 -0400
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-15 18:47 -0700
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? stephen@mpeforth.com (Stephen Pelc) - 2015-03-18 10:03 +0000
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Matthias Koch <matthias.koch@hot.uni-hannover.de> - 2015-03-19 12:02 +0100

csiph-web