Javascript bytecode

Walter Bright newshound2 at digitalmars.com
Wed Dec 19 00:45:06 PST 2012


On 12/19/2012 12:19 AM, Max Samukha wrote:
>> Evidently you've dismissed all of my posts in this thread on that topic :-)
> As you dismissed all points in favor of bytecode.

And I gave detailed reasons why.

> Such as it being a
> standardized AST representation for multiple languages. CLI is all about that,
> which is reflected in its name. LLVM is used almost exclusively for that purpose
> (clang is great).

My arguments were all based on the idea of distributing "compiled" source code 
in bytecode format.

The idea of using some common intermediate format to tie together multiple front 
ends and multiple back ends is something completely different.

And, surprise (!), I've done that, too. The original C compiler I wrote for many 
years was a multipass affair, that communicated the data from one pass to the 
next via an intermediate file. I was forced into such a system because DOS just 
didn't have enough memory to combine the passes.

I dumped it when more memory became available, as it was the source of major 
slowdowns in the compilation process.

Note that such a system need not be *bytecode* at all, it can just hand the data 
structure off from one pass to the next. In fact, an actual bytecode requires a 
serialization of the data structures and then a reconstruction of them - rather 
pointless.


> Not advocating bytecode here but you claiming it is completely useless is so
> D-ish :).

I'm not without experience doing everything bytecode is allegedly good at.

As for CLI, it is great for implementing C#. For other languages, not so much. 
There turned out to be no way to efficiently represent D slices in it, for example.


More information about the Digitalmars-d mailing list