Alert icon
We're changing our privacy policy. This stuff matters.  Learn more  Dismiss

PyPy - Automatic Generation of VMs for Dynamic Languages

Loading...

Sign in or sign up now!
12,488
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Nov 22, 2007

Google Tech Talks
November, 14 2007

In Search of Speed and Flexibility. PyPy and the Art of Generating Virtual Machines

We all want our favorite dynamic language to be faster, to be even more
dynamic and to pick up nifty ideas from its peers.

But this is so much work!

There ought to be a better way to implement dynamic languages that
enables growth and necessary change with less effort and more ease.
Writing yet another interpreter in C or even Java is not it.

PyPy is a framework to implement dynamic languages that embraces this
challenge. It allows us to write such languages in the form of simple
interpreters, expressed in a rich subset of Python. This means that
the resulting implementations can can be evolved with reasonable
effort.

PyPy then generates a variety of virtual machines (VMs) from a single
source. We can therefore target a wide range of environments,
including C/Posix, Java, or .NET. This avoids the major source of
fragmentation within a dynamic language community -- the need for a
separate language implementation for each virtual machine. It also
means that languages as distinct as Python, Prolog and Smalltalk can
share the bulk of our compiler machinery.

The flexible toolchain which is necessary for virtual machine
generation turns out to be good for other things as well. Traditional
implementations for dynamic languages have to make some very hard
decisions early, which then become entrenched in the whole codebase,
making it difficult or impossible to change later. It can be nice to
experiment with different garbage collectors, but not if you have to
write a complete new implementation of your favourite language for
each one. With PyPy you don't have to. You can also generate and
tailor a JIT-compiler for the language at hand, putting to rest the
notion that flexibility must come at the expense of speed.

Speaker: Samuele Pedroni
Speaker: Armin Rigo
Speaker: Jacob Hallén
Speaker: Laura Creighton

Category:

People & Blogs

Tags:

License:

Standard YouTube License

  • likes, 9 dislikes

Link to this comment:

Share to:

Top Comments

  • pypy is the most ambitious project any language has ever had

  • The majority of the talk (and most interesting parts!) is free of audio problems...

    Great talk, a lot of good information on PyPy

see all

All Comments (12)

Sign In or Sign Up now to post a comment!
  • @klined: LOL, then you’ve never seen an ambitious software project. If you want serious shit, go Haskell! There, every fuckin’ library or language enhancement is so advanced and new, that it just left theory because someone wrote a implementation for his thesis.

    And a *scripting language* wants to keep up with that (as can be seen by Python constantly cloning Haskell ideas)... LOL.

    This here is at best the inner platform anti-pattern creeping in. (Look it up.) Which is why GHC won’t touch it.

  • The audio sux!

  • After 7 min 30 s, the audio is good.

  • actually, the audio is just fine after some initial troubles.

  • Very bad audio. Too low and most of the time ininteligible.

Loading...

0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more