No matter how efficient or clever a virtual machine, it still requires additional steps in order to perform useful work.  So there are really three "efficient" approaches to consider:

1.   Accept that we have a ubiquitous x86(-64) mono-culture and primarily target that.
    (I'm assuming that OS portability between Windows / Mac OS/X / Linux / BSD is implemented)

2.   Expand the above be able to generate code for other architectures, e.g. ARM as a secondary goal.

3.   Recognise that established compilers do the work of optimisation, etc very well.  In which case use the "universal" assembler as provided by the C compiler as our target.  Consider the speed at which compilers like tinyCC do their work and the high levels of optimisation provided by GNU C and Intel C compilers.

It's interesting to note that Squeak (the latest incarnation of Smalltalk) was ported using a subset of Smalltalk called "Slang" in a similar manner to Alex's approach of using a generic assembler written in picoLisp.
OOPSLA'96 - "Back to the Future"

This might be a superflous comment, but I remember seeing somewhere an assembler notation which was in effect a form of s-expr. 


konrad Zielinski wrote:
I suspect this would be in contradiction to some of the stated goals
of PicoLisp,
For one you would no longer be close to the machine. Just close to the
virtual machine.


On 16/10/2008, Jakob <[EMAIL PROTECTED]> wrote:
  
On 15 Oct 2008, at 9:11 AM, Alexander Burger wrote:

      
It is a complete rewrite. Even the implementation language changed.
Instead of C it is written in a generic assembler (which in turn is
written in PicoLisp :) that generates GNU assembler code (currently
there is only a x86-64 generator, but other CPUs are possible).
        
Oh. Please consider http://en.wikipedia.org/wiki/Low_Level_Virtual_Machine

Because it is awesome, and if you port to that, you do not have to port
to any other architecture. I was only recently made aware of LLVM, and
it is really cool.

Apple reportedly has started using it, probably wise from their past
experience with switching CPU architecture. With LLVM, switch as much as
you like. And no, LLVM is NOT another Java in disguise. LLVM is like a
real CPU.

regards,
Jakob


--
UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

    

--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean. -- UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

Reply via email to