Main Profile

At A Glance

PyPy - Automatic Generation of VMs for Dynamic Languages

Google Tech TalksNovember, 14 2007In Search of Speed and Flexibility. PyPy and the Art of Generating Virtual MachinesWe all want our favorite dynamic language to be faster, to be even moredynamic 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 thatenables 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 thischallenge. It allows us to write such languages in the form of simpleinterpreters, expressed in a rich subset of Python. This means thatthe resulting implementations can can be evolved with reasonableeffort.PyPy then generates a variety of virtual machines (VMs) from a singlesource. We can therefore target a wide range of environments,including C/Posix, Java, or .NET. This avoids the major source offragmentation within a dynamic language community -- the need for aseparate language implementation for each virtual machine. It alsomeans that languages as distinct as Python, Prolog and Smalltalk canshare the bulk of our compiler machinery.The flexible toolchain which is necessary for virtual machinegeneration turns out to be good for other things as well. Traditionalimplementations for dynamic languages have to make some very harddecisions early, which then become entrenched in the whole codebase,making it difficult or impossible to change later. It can be nice toexperiment with different garbage collectors, but not if you have towrite a complete new implementation of your favourite language foreach one. With PyPy you don't have to. You can also generate andtailor a JIT-compiler for the language at hand, putting to rest thenotion that flexibility must come at the expense of speed.Speaker: Samuele PedroniSpeaker: Armin RigoSpeaker: Jacob Hall?nSpeaker: Laura Creighton
Length: 58:13


Questions about PyPy - Automatic Generation of VMs for Dynamic Languages

Want more info about PyPy - Automatic Generation of VMs for Dynamic Languages? Get free advice from education experts and Noodle community members.

  • Answer