EmbeddedRelated.com
Forums

Basic Interpreter/Compiler

Started by tpicker12003 October 21, 2005
David, 

> About 20 years ago I wrote a basic-to-bytecode (
my own 
> bytecode ) system, which semi-compiled the source into a 
> packet fast-to-run intermediate code, and an execute engine. 
> Java before it's time.

This was a popular technique.  Even the Commodore PET spawned bytecode
compilers to make Microsoft Basic run faster.  It's something I'm
toying
with, but as an ARM runs pretty quickly already, there isn't much call.
My new BASIC interpreter is designed for both small devices and large
devices.

> ooh, look, I'm on the web...
> http://www.xs4all.nl/~fjkraan/comp/dai/insideInfo.html
> http://www.xs4all.nl/~fjkraan/comp/dai/PCRM/PCRM_c02.html

Personally I had no contact with DAI.  I didn't really want a DAI
anyway, but I'd have loved an Exidy Sorcerer.

> It would go like shit off a shovel on an MSP430.
floating 
> point could still be a bit glue-like though.

The new BASIC I have constructed has dynamic vectors, dynamic strings,
complex numbers, and the like.  It has a fast mark-sweep garbage
collector and, when fragmentation is rife and a new object can't be
allocated in free space, a compacting garbage collector kicks in to free
up lots of memory.  You can, however, configure it not to have all these
advanced features and run it on a small device with integers only.  Or
it scales to a PC with 64-bit doubles and integers and megabytes of
memory.

Regards,

--
Paul Curtis, Rowley Associates Ltd  http://www.rowley.co.uk
CrossWorks for MSP430, ARM, AVR and now MAXQ processors

Beginning Microcontrollers with the MSP430

I'm surprised none of the ARM fabs haven't done a marketing like
"Our 
ARM has legs!"   

Steve


Onestone wrote:

>Would that be a prosthetic ARM?
>
>Al
>
>Eric Engler wrote:
>
>  
>
>>--- In msp430@msp4..., "Paul Curtis" <plc@r...> wrote:
>> 
>>
>>    
>>
>>>There is a newer, more comprehensive interpreter on the way, written
in
>>>C for portability between processors (but possibly not between
>>>compilers, I don't want to port it everywhere).
>>>   
>>>
>>>      
>>>
>>Cool! Maybe we could use it on an ARM?
>>
>>
>>
>>
>>
>>
>>.
>>
>>
>>Yahoo! Groups Links
>>
>>
>>
>>
>>
>>
>>
>>
>> 
>>
>>    
>>
>
>
>
>
>.
>
> 
>Yahoo! Groups Links
>
>
>
> 
>
>
>
>
>  
>



Or a paper like "Handshake Procedure for Dual ARM System".

-----Mensagem original-----
De: msp430@msp4... [mailto:msp430@msp4...] Em nome de
Steve Sabram
Enviada em: quarta-feira, 26 de outubro de 2005 19:11
Para: msp430@msp4...
Assunto: Re: [msp430] Re: Basic Interpreter/Compiler


I'm surprised none of the ARM fabs haven't done a marketing like
"Our 
ARM has legs!"   

Steve


Onestone wrote:

>Would that be a prosthetic ARM?
>
>Al
>
>Eric Engler wrote:
>
>  
>
>>--- In msp430@msp4..., "Paul Curtis" <plc@r...> wrote:
>> 
>>
>>    
>>
>>>There is a newer, more comprehensive interpreter on the way, written
in
>>>C for portability between processors (but
possibly not between
>>>compilers, I don't want to port it everywhere).
>>>   
>>>
>>>      
>>>
>>Cool! Maybe we could use it on an ARM?
>>
>>
>>
>>
>>
>>
>>.
>>
>>
>>Yahoo! Groups Links
>>
>>
>>
>>
>>
>>
>>
>>
>> 
>>
>>    
>>
>
>
>
>
>.
>
> 
>Yahoo! Groups Links
>
>
>
> 
>
>
>
>
>  
>





.

 
Yahoo! Groups Links



 



-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.361 / Virus Database: 267.12.5/148 - Release Date:
25/10/2005
 


Talking about that, I have been trying to sift through the urban legends 
and get the real story on how "Thumb code" got its name.

Steve


Augusto Einsfeldt wrote:

>Or a paper like "Handshake Procedure for Dual
ARM System".
>
>-----Mensagem original-----
>De: msp430@msp4... [mailto:msp430@msp4...] Em nome de
>Steve Sabram
>Enviada em: quarta-feira, 26 de outubro de 2005 19:11
>Para: msp430@msp4...
>Assunto: Re: [msp430] Re: Basic Interpreter/Compiler
>
>
>I'm surprised none of the ARM fabs haven't done a marketing like
"Our 
>ARM has legs!"   
>
>Steve
>
>
>Onestone wrote:
>
>  
>
>>Would that be a prosthetic ARM?
>>
>>Al
>>
>>Eric Engler wrote:
>>
>> 
>>
>>    
>>
>>>--- In msp430@msp4..., "Paul Curtis" <plc@r...>
wrote:
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>There is a newer, more comprehensive interpreter on the way,
written
>>>>        
>>>>
>in
>  
>
>>>>C for portability between processors (but possibly not between
>>>>compilers, I don't want to port it everywhere).
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>Cool! Maybe we could use it on an ARM?
>>>
>>>
>>>
>>>
>>>
>>>
>>>.
>>>
>>>
>>>Yahoo! Groups Links
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>
>>
>>.
>>
>>
>>Yahoo! Groups Links
>>
>>
>>
>>
>>
>>
>>
>>
>> 
>>
>>    
>>
>
>
>
>
>
>.
>
> 
>Yahoo! Groups Links
>
>
>
> 
>
>
>
>  
>



On Wed, Oct 26, 2005 at 08:55:20AM +0100, Paul Curtis wrote:

> great and the birthplace of the personal computer
idustry.  The board
> I'm using it on now has a keyboard & mouse interface, an ARM7,
lots of
> RAM, an MMC card interface for mass storage, video out and so on.  It
> works really well as a small computer.

Back to the roots! :-) Remembering the old days. Just 2k ROM, 2k RAM and
a self made keyboard in front of the old eye killing b/w TV. 
(I guess the ARM has plenty of ressources :-)

        Matthias

Aww, that's high tech, my first computer was the Tandy Microcomputer
training 
kit, a 7-segment LED, and 8 LED's for binary output, along with a switch
grid 
for hex input. 

oh, and a speaker! Woo! Dang, I wonder if I still have that somewhere.. 

-Micah 

On Wednesday 26 October 2005 3:10 pm, Matthias Weingart
wrote:
> On Wed, Oct 26, 2005 at 08:55:20AM +0100, Paul Curtis wrote:
> > great and the birthplace of the personal computer idustry.  The board
> > I'm using it on now has a keyboard & mouse interface, an
ARM7, lots of
> > RAM, an MMC card interface for mass storage, video out and so on.  It
> > works really well as a small computer.
>
> Back to the roots! :-) Remembering the old days. Just 2k ROM, 2k RAM and
> a self made keyboard in front of the old eye killing b/w TV.
> (I guess the ARM has plenty of ressources :-)
>
>         Matthias
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>

> About 20 years ago I wrote a basic-to-bytecode ( my own bytecode ) 
> system, which semi-compiled the source into a
packet fast-to-run 
> intermediate code, and an execute engine. Java before it's time.

I've also worked with various intermediate code systems over the
years. Here's some thoughts I put together on a 16 bit embedded VM:

http://www.ericengler.com/downloads/EmbeddedVM.txt

This is something that could offer portablity between various 16 bit
CPUs. I have 2 in mind: the Freescale hc12 family, and the MSP430 family.

I did not use objects in this concept because of the limited RAM.

If I do something like this for the ARM it will support objects and
will likely be similar to the Java VM. But I would add the ability to
dereference pointers in order to be more efficient with C programs.

Right now I'm building my hc12 debugger and this will keep me busy for
a while.

Eric




That's one direction to go with a VM, the other is to assume for 
development, a small FLASH based system containing the VM itself, and 
download to external SRAM. This has the advantage of possibly quicker d/l 
cycle as burning flash is always slower and actual interactivity. For final 
image burn, you can then provide the VM as a linkable library.

At 09:00 PM 10/26/2005, Eric Engler wrote:

>I've also worked with various intermediate
code systems over the
>years. Here's some thoughts I put together on a 16 bit embedded VM:
>
>http://www.ericengler.com/downloads/EmbeddedVM.txt
>
>This is something that could offer portablity between various 16 bit
>CPUs. I have 2 in mind: the Freescale hc12 family, and the MSP430 family.
>
>I did not use objects in this concept because of the limited RAM.
>
>If I do something like this for the ARM it will support objects and
>will likely be similar to the Java VM. But I would add the ability to
>dereference pointers in order to be more efficient with C programs.
>
>Right now I'm building my hc12 debugger and this will keep me busy for
>a while.
>
>Eric
>

// richard (This email is for mailing lists. To reach me directly, please 
use richard at imagecraft.com) 


Hi,

You might want to take a look at Martin Richards webpages - he invented BCPL 
& CINTPOS.  http://www.cl.cam.ac.uk/users/mr/

Richard

----- Original Message ----- 
From: "Eric Engler" <englere.geo@engl...>
To: <msp430@msp4...>
Sent: Thursday, October 27, 2005 5:00 AM
Subject: [msp430] Re: Basic Interpreter/Compiler


>> About 20 years ago I wrote a basic-to-bytecode
( my own bytecode )
>> system, which semi-compiled the source into a packet fast-to-run
>> intermediate code, and an execute engine. Java before it's time.
>
> I've also worked with various intermediate code systems over the
> years. Here's some thoughts I put together on a 16 bit embedded VM:
>
> http://www.ericengler.com/downloads/EmbeddedVM.txt
>
> This is something that could offer portablity between various 16 bit
> CPUs. I have 2 in mind: the Freescale hc12 family, and the MSP430 family.
>
> I did not use objects in this concept because of the limited RAM.
>
> If I do something like this for the ARM it will support objects and
> will likely be similar to the Java VM. But I would add the ability to
> dereference pointers in order to be more efficient with C programs.
>
> Right now I'm building my hc12 debugger and this will keep me busy for
> a while.
>
> Eric
>
>
>
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
> 


On 27/10/05, Richard (UK). <ymsp430@ymsp...> wrote:
> Hi,
>
> You might want to take a look at Martin Richards webpages - he invented
BCPL
> & CINTPOS.  http://www.cl.cam.ac.uk/users/mr/
>
> Richard
>

I remember BCPL (Bloody Complicated Programming Language) had a copy
for my BBC computer back in my student days at
http://www.robinson.cam.ac.uk .

IIRC it was a simplified version of CPL (Complicated Programming Language)

Ian