Built in interpreters, VMs and runtime shells

Non-technical related questions should go here.
User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm
Contact:

Built in interpreters, VMs and runtime shells

Post by Folknology »

I would like to no what's available as an interpreter and or shell for XS1 silicon, which is why I started this thread. This would be a good place to enumerate any you are working on or planning to avoid duplication. It would also be a good place to make suggestions about others perhaps on different platforms that make be relevant for porting.

I Already Know of DrFingersSchaefer G4 - Forth http://xcore.com/forum/viewtopic.php?f=17&t=111

The Transterpreter Project looks really intresting and would seem like a good candidate given it's concurrecy bias and its Occam_Pi origins, its already running on Arduino < 10K - Transterpreter (Its a VM I believe) http://www.transterpreter.org/ I wonder if a tight port could be squeezed into OTP..

Feedback, thoughts, ideas?


User avatar
jonathan
Respected Member
Posts: 377
Joined: Thu Dec 10, 2009 6:07 pm
Contact:

Post by jonathan »

Folknology wrote:I would like to no what's available as an interpreter and or shell for XS1 silicon, which is why I started this thread. This would be a good place to enumerate any you are working on or planning to avoid duplication. It would also be a good place to make suggestions about others perhaps on different platforms that make be relevant for porting.

I Already Know of DrFingersSchaefer G4 - Forth http://xcore.com/forum/viewtopic.php?f=17&t=111

The Transterpreter Project looks really intresting and would seem like a good candidate given it's concurrecy bias and its Occam_Pi origins, its already running on Arduino < 10K - Transterpreter (Its a VM I believe) http://www.transterpreter.org/ I wonder if a tight port could be squeezed into OTP..

Feedback, thoughts, ideas?
Interesting suggestion. I think the main benefit of the Transterpreter was to be able to run OCCCAM programs again without a transputer - wouldn't an OCCAM/occam-pi implementation be more efficient (particularly if done through LLVM)?

I can't remember how much of the transputer link protocol was implemented in the Transterpreter. I think that would be the tricky bit.
Image
richard
Respected Member
Posts: 318
Joined: Tue Dec 15, 2009 12:46 am

Post by richard »

I've always been fond of lua, although it might be a squeeze to fit it into 64K.
User avatar
TonyD
XCore Addict
Posts: 234
Joined: Thu Dec 10, 2009 11:11 pm
Location: Newcastle, UK
Contact:

Post by TonyD »

Java VM or rather something like JavaCard which has a small memory footprint and may be persuaded to fit into 8K OTP
Heater
Respected Member
Posts: 296
Joined: Thu Dec 10, 2009 10:33 pm

Post by Heater »

I think I said before, something like Lua or Java or even the Transterpreter for Occam would be great if we could put the byte codes into an external SRAM. The interpreter itself is free to live in the 64K core RAM. All of a sudden we would have the ability to run huge programs on an xcore for non-time critical stuff whilst having the rest of the xcores free for the hard real-time work.
User avatar
TonyD
XCore Addict
Posts: 234
Joined: Thu Dec 10, 2009 11:11 pm
Location: Newcastle, UK
Contact:

Post by TonyD »

I agree with you. Running a VM will open up all sorts of possibilities. You could target different languages for the same VM. I'm not pushing Java, but the Java VM has several other programming languages which can be compiled to run as Java byte code such as Forth, Ruby and Python (I'm not saying these versions are any better than their original implementations).
Last edited by TonyD on Tue Feb 02, 2010 3:36 pm, edited 1 time in total.
User avatar
jonathan
Respected Member
Posts: 377
Joined: Thu Dec 10, 2009 6:07 pm
Contact:

Post by jonathan »

Heater wrote:I think I said before, something like Lua or Java or even the Transterpreter for Occam would be great if we could put the byte codes into an external SRAM. The interpreter itself is free to live in the 64K core RAM. All of a sudden we would have the ability to run huge programs on an xcore for non-time critical stuff whilst having the rest of the xcores free for the hard real-time work.
I think this is a great start for the "non-time critical stuff".

I think you could use it as the basis for some pretty cool interpreters.

http://xcore.com/projects/xs-1-context- ... r-vthreads
Image
User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm
Contact:

Post by Folknology »

The transterpreter is written in ansi c and could use context switcher threads as its under pinnings leaving most of other threads for time sensitive/critical usage in XC

I would also like to see a shell on top of such a system for interactive development work.

I think java VM is just to big, Lua sounds good but again I am not sure of size.

The thing i would like most is an XC like shell/vm in a OTP would be even better still!!
User avatar
shawn
XCore Addict
Posts: 238
Joined: Thu Dec 17, 2009 5:15 am

Post by shawn »

The nice thing about making a tm - vm. would be the inheritance of years worth of CSP provable binaries ; )
For what its worth postscript is interpeted, I don,t think I would use it for much else than making a nice browser rip. TECO, LISP,BASIC,FORSE or LAP6.... Forth,Java.. How should you choose...

Shawn
User avatar
TonyD
XCore Addict
Posts: 234
Joined: Thu Dec 10, 2009 11:11 pm
Location: Newcastle, UK
Contact:

Post by TonyD »

Folknology wrote:..
I think java VM is just to big, Lua sounds good but again I am not sure of size.

The thing i would like most is an XC like shell/vm in a OTP would be even better still!!
Yes, full fat Java is too big for the smallish memory footprint of the XS1, but the slimmer JavaCard could fit into 64K RAM + 8K OTP. Dallas Semiconductor (now Maxim) used to sell their souped up 8051 micros with an embedded JavaVM in the late 90's and there are others still doing it now: Javelin Stamp and JStamp are two that spring to mind (although JStamp has a much bigger memory footprint).
Post Reply