Related articles |
---|
Dynamic Typing Efficiency clearm@comcast.net (2005-05-08) |
Re: Dynamic Typing Efficiency bobduff@shell01.TheWorld.com (Robert A Duff) (2005-05-08) |
Re: Dynamic Typing Efficiency luke@iogopro.co.uk (Luke McCarthy) (2005-05-08) |
Re: Dynamic Typing Efficiency gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-05-08) |
Re: Dynamic Typing Efficiency loic@fejoz.net (Yermat) (2005-05-09) |
Re: Dynamic Typing Efficiency mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2005-05-09) |
Re: Dynamic Typing Efficiency eliotm@pacbell.net (Eliot Miranda) (2005-05-09) |
Re: Dynamic Typing Efficiency jeffrey.kenton@comcast.net (Jeff Kenton) (2005-05-09) |
Re: Dynamic Typing Efficiency clearm@comcast.net (2005-05-13) |
Re: Dynamic Typing Efficiency alexc@TheWorld.com (Alex Colvin) (2005-05-13) |
Re: Dynamic Typing Efficiency calumg@onetel.com (Calum Grant) (2005-05-13) |
[3 later articles] |
From: | Yermat <loic@fejoz.net> |
Newsgroups: | comp.compilers |
Date: | 9 May 2005 22:30:04 -0400 |
Organization: | CIRIL, Nancy, France |
References: | 05-05-041 |
Keywords: | types, interpreter |
Posted-Date: | 09 May 2005 22:30:03 EDT |
clearm@comcast.net wrote:
> I am writing a small, python-like scripting language that uses dynamic
> typing. I am also writing a stack-based virtual machine to go with
> it.
>
> I have read many papers and posts about improving the efficiency of
> VMs - for example by using threaded dispatch instead of switch
> statements.
>
> The problem I have is that dynamic typing seems to be extremely
> inefficient when you have a large number of types. For example, if I
> have integers, doubles, strings, booleans, and various compound types,
> then an ADD instruction would have to look like this:
>
> [snip]
You should have a look at all the work done around SmartEiffell
optimization and especially this paper : "Efficient Dynamic Dispatch
without Virtual Function Tables. The SmallEiffel Compiler."
http://smarteiffel.loria.fr/papers/papers.html#OOPSLA97
--
Yermat
Return to the
comp.compilers page.
Search the
comp.compilers archives again.