One of the interesting threads (pphaneufMcCuskerJDarcy)
that's been bouncing around lately is the design of bytecodes for
interpretation. It's a different problem than instruction set design
for CPU's. There, RISC is a win because a stripped down instruction
set can support higher clock speeds. But for a bytecode interpreter,
you're going to have a certain amount of overhead to go through an
iteration of the interpreter main loop, so you might as well make it
do more.

But a lot of this argumentation leaves me unsatisfied. If you've got a
bytecode interpreter in a system, it's a dead giveaway that you're
optimizing for something other than raw performance, for example
overall system complexity or portability. Both are worth optimizing
for, of course.

The stack machine vs. memory transfer machine argument
is interesting. I think it comes down to where you're willing to put
your complexity. If the compiler from source language to bytecode must
be simple, then stack machines are a win, in large part because they
support arbitrary depths of expression nesting without any special
case code. With memory transfer, you either have to deal with variable
sized fields for representing the memory cell (and thus variable sized
instructions), or you have to implement spilling when depth goes above
(say) 256.

On the other hand, if you're trying to ship virtual machines in tiny
embedded devices, then it makes a lot of sense to keep the VM as
simple as possible, even at a cost of more sophistication in the
compiler.

I note a number of interesting memory-transfer based virtual machines,
including Parrot and MMIX. Virtual machine design is a delicate
art. I'm happy to see it undergoing something of a renaissance.

Alan

School starts on Monday, and we're starting to gear up. For those of
you joining late, we have a hybrid plan. He'll do half a day in public
school (1st grade), and half a day at home. For the math-and-science
part of the curriculum, one of the things I plan is Mindstorms. We ordered
the starter set today. I'm pretty excited; it looks cool.

Ostensibly, Heather will cover language arts and I'll do the Spock
stuff, but ironically he started on an illustrated story this evening
with me. It's called "Cretaceous Park 1". Ok, so it's a bit
derivative, but we're having fun. The words flow easily, and then he
puts a great deal of effort and concentration into drawing and
coloring the accompanying pictures. I'll probably scan it and put it
on the net when he's done.

Max

Max's language development continues to be amazing to behold. He's
able to communicate very clearly now. When Alan had a tantrum a few
days ago, Max picked up the Nerf rocket launcher and said to us, "I'm
going to shoot him." We burst out laughing, of course. Other samples
include "I want to press the button on Alan's toy" and "I like your
shirt. It has fire on it."