On Mon, 9 Mar 2009 18:43:21 -0700 (PDT), -jg <>
wrote:
>On Mar 10, 12:56*pm, Jon Kirwan <j...@infinitefactors.org> wrote:
>> Well, you are talking to programmers then. *I have considered the idea
>> of a nicely partitioned system -- an execution unit that resides on
>> the target or may reside on a host, an interpreter that _may_ also
>> reside on the target OR it may also reside on a host system connected
>> to it, and a compiler as well that may generate final target code in
>> machine language, as well. *I was considering how to modify BASIC to
>> support constant, initialized arrays that might be placed into flash,
>> etc. *It's nice to have choices.
>
>Debug becomes pivotal here. The Line-number/edlin model can really
>only get you so far, then you need to step thru the code, and watch
>variables.
Non-programmers? Their level of approach is printing out variable
values by inserting lines. Basically. The whole idea of watching
variables would be a bit much -- not so much because they can't get
the idea in general but because of the learning curve for the menu
options of adding, deleting and modifying the added watches. It's
really, really easy to use what they have already learned (adding
statements.) It's just more unnecessary "stuff" to laden them down
with another user interface.
Of course, I really don't know what the OP is intending. (Wish we'd
get some responses.) "It's meant to be a tool for interactive
experimentation of embedded concepts by non-programmer types," seems
to be the guide, though. I imagine this as "turn on a light" by a
single statement that keeps a TRIAC fired and where the actual
detailed code that may monitor zero-crossings, handle phase angle
decisions, etc., is hidden inside the BASIC interpreter. Stuff at
that kind of level, really. Or maybe not. Hard to tell. So maybe
more is better than less. But the OP did clearly say something about
line numbers as the approach -- and I have to count that for something
here.
>Once you do that, the Host/Emulation/Simulation (includes Emulation
>via Simulation - umbilical solns) becomes much nicer, then you can
>force DOWN the resource in the target, and use the Host more.
>umbilical emulation allows a minimal monitor core, and the host runs
>a more local simulator. Also suited to flash/ram splits seen in typical
>uC.
>
>Of course that places more caveats on the host.
>
>Still, this pathway allows you to share a lot more of others work, and
>also chose a mature language/debug system for the host, that you clone on the
>target, OR you decide to implement a TurboPASCAL model entirely in the target,
>with a compact editor/debug/Compiler - Chips ARE now big enough to
>make this viable.
> A USB terminal could almost be a defacto, as most candidate devices
>for this, would includes USB for free.
>
> Next step would be a Flash-Drive stub, where you included a Better PC-
>USB-Terminal in a SPI flash, and the target becomes the whole
>system...Mobile-Compute-Debug model
Okay. Well, it's about time for the OP to jump in. We are proceeding
far beyond the original comment. I feel you may be taking this over
the top a bit, but then you might be right on target for all I know.
(I agree about the USB interface -- RS232 is getting hard to find
these days and USB ports are everywhere, almost. So that would seem
to be the preferred hardware connection. I would expect it to "look
like RS-232," though and be able to use Hyperterm, for example, or
whatever serves the same under Linux.)
I suspect many folks have thought about BASIC as a segue for
non-programmers to do useful things they want to achieve for
themselves. BASIC is probably the closest thing to making that
possible, but what is the right hardware widget and BASIC combination
that appeals to a wide array of non-programmers' interests?
My own focus would be on reaching high school education, allowing a
path for non-programmer students to have some fun while learning and
gathering and processing data and controlling things that move, make
fire, smoke, and flash lights. For example, learning trigonometry in
the context of moving a drill press around and drilling holes is a
great way to provide tactile and sensory information about why sine
and cosine mean something practical and real that can be seen right in
front of them. If they make mistakes, it becomes immediately apparent
and they can laugh a little at it and in the process deepen what those
things mean to them.
But I'm going way afield of the OP, here.
Jon