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?
Built in interpreters, VMs and runtime shells
-
- XCore Legend
- Posts: 1274
- Joined: Thu Dec 10, 2009 10:20 pm
-
- Respected Member
- Posts: 377
- Joined: Thu Dec 10, 2009 6:07 pm
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)?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?
I can't remember how much of the transputer link protocol was implemented in the Transterpreter. I think that would be the tricky bit.
-
- Respected Member
- Posts: 318
- Joined: Tue Dec 15, 2009 12:46 am
I've always been fond of lua, although it might be a squeeze to fit it into 64K.
-
- XCore Addict
- Posts: 234
- Joined: Thu Dec 10, 2009 11:11 pm
- Location: Newcastle, UK
Java VM or rather something like JavaCard which has a small memory footprint and may be persuaded to fit into 8K OTP
-
- Respected Member
- Posts: 296
- Joined: Thu Dec 10, 2009 10:33 pm
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.
-
- XCore Addict
- Posts: 234
- Joined: Thu Dec 10, 2009 11:11 pm
- Location: Newcastle, UK
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.
-
- Respected Member
- Posts: 377
- Joined: Thu Dec 10, 2009 6:07 pm
I think this is a great start for the "non-time critical stuff".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 you could use it as the basis for some pretty cool interpreters.
http://xcore.com/projects/xs-1-context- ... r-vthreads
-
- XCore Legend
- Posts: 1274
- Joined: Thu Dec 10, 2009 10:20 pm
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!!
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!!
-
- XCore Addict
- Posts: 238
- Joined: Thu Dec 17, 2009 5:15 am
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
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
-
- XCore Addict
- Posts: 234
- Joined: Thu Dec 10, 2009 11:11 pm
- Location: Newcastle, UK
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).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!!