Re: Design of the Zend Engine's Instruction Set
| From: | Paul Biggar | Date: | Sun, 16 Aug 2009 16:24:53 +0000 |
| Subject: | Re: Design of the Zend Engine's Instruction Set | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-45280@lists.php.net to get a copy of this message | ||
Hi Stefan,
On Sat, Aug 15, 2009 at 8:52 PM, Stefan Marr<php@stefan-marr.de> wrote:
> Sometimes, it would be really interesting to know
> where some of the used ideas are coming from
> and what the reasoning was. I tend to think that its rather unlikely that
> they
> are pulled out of thin air. Some parts of the model remind me of CISC
> instruction
> sets... 3-address form, register-memory model...
I think they are pulled out of thin air. More specifically, I think
there are optimizations heaped upon optimizations heaped upon an
initial implementation. It seems that each new release of PHP has a
small speed improvement based on some optimization performed, but that
there has been no major rearchitecture since the addition of a
bytecode based interpreter in PHP 4. I do not know how that was
designed though, maybe others do?
One thing I do find interesting is that the register machine nature of
PHP comes from an optimization called "compiled variables". CVs point
to symbol-table entries, but without them, I'm not sure whether we
would still call PHP a register machine. Any thoughts?
Thanks,
Paul
--
Paul Biggar
paul.biggar@gmail.com