Re: Embedded Basic interpreter recommendations?



On Sun, 15 Mar 2009 14:26:16 +1030, "Chris Burrows"
<cfbsoftware@xxxxxxxxxxx> wrote:

"Frank Buss" <fb@xxxxxxxxxxxxx> wrote in message
news:1qqbvwpfjwuyq.14j0560xa4itf$.dlg@xxxxxxxxxxxxx

Code size and execution time should be no problem, my targets are bigger
with at least 16k flash and fast. My idea was to start with a virtual
machine, so I'll compile the program on PC and upload some bytecode, only,
which should be very compact, too. Maybe I provide multiple frontend
languages, like Basic, C and Modula. Then the programmer can choose the
language he/she likes most.

In case you missed the link in another branch of this discussion the source
and executables of a Modula-2 compiler that generates bytecode (M-Code as
used on Lilith), an interpreter that runs on the PC, and a sample listing,
in Modula-2, of an M-Code interpreter already exist:

http://www.cfbsoftware.com/modula2

But the early BASIC I have been talking about included both the
compiler and decompiler, held in 12kbyte of core memory. No
cross-compilation here.

What I think I'd like to see is the execution engine, which interprets
a coded version of the source, as a required part but with optional
pieces that include the compiler to convert ASCII text into the coded
version that is suitable for interpreting and the lister which
converts the coded version back into an ASCII text version, along with
all the necessary lex/parse and error handling for in-situ use. I
mean, as optional pieces that one may.. or may not.. decide to link
into the target. The execution engine would be necessary, obviously,
but the rest is important for interactive development on the target
and should be available, if desired.

And do all of that in a relatively small part of the flash -- which,
if coded carefully and in assembly, should be quite doable. Not only
does careful coding provide small footprints, but it also provides
faster execution times. The problem would be that the flash available
seems to grow almost by the month, so maybe no one cares one way or
another and those times are behind us all.

All you need to do is port the interpreter to an MCU and implement a linker
/ loader.

Additional source code for these components are available at the
same site as EmuLith, Jos Dreesen's impressive Lilith emulator:

ftp://jdreesen.dyndns.org/ftp/

Windows / Linux / Mac OS-X versions are all available. Details are in the
readme.txt file there.

Thanks for the links. I'm curious and I'll look. Not hopeful,
exactly. But I will probably enjoy it very much, regardless.

Jon
.



Relevant Pages

  • RE: C# Exceptions
    ... no one has successfully executed code using a buffer ... successfully used a .net overrun to execute code. ... do code execution via the stack would be if the target app used. ...
    (Pen-Test)
  • Re: %errorlevel% and run/exec command
    ... Having to code around error levels is like shooting paint balls against a moving target.. ... It is the 'modern' computer 'pulling' methodology, ... but I'm not retrieving %errorlevel% value. ... execution really have dependencies but you can get the output of the ...
    (microsoft.public.scripting.wsh)
  • Re: xpc target ERROR: CPU OVERLOADED AT TIME
    ... To minimize tcp ip network latency between target and host computers, ... With sampling frequencies below 10 kHz, the execution runs normally. ...
    (comp.soft-sys.matlab)
  • Re: COBOLs Influence on C
    ... Robert's reply seems to "assume" an IBM mainframe environment. ... learn of missing external names either at link or execution time. ... compilation and before execution. ...
    (comp.lang.cobol)
  • Re: flash and external ram timing on TI 2812
    ... Would someone be able to explain me how to calculate the execution time of ... NOP instruction when it is executed into flash and into external ram of a ... Is it normal to have a time more important into ram than into flash ... anything by the time of a single NOP instruction, ...
    (comp.dsp)