Login
Computer Science @ Rochester
Thursday, April 29, 2010
9:00 AM
CSB 703
Ph.D. Thesis Proposal
Xiaoming Gu
University of Rochester
Dynamic Scripting Languages
Nowadays more and more programs written in scripting languages are used. Dynamic scripting languages such as Perl, Python, Ruby, Matlab and R have good portability, functionality and flexibility, but their performance is much slower than C/C++/Java because the code is usually interpreted instead of being compiled into native binary. A possible solution is to build a Just-in-time (JIT) compiler in language virtual machines so that interpretation is unnecessary. However, building a JIT compiler requires substantial programming effort.

In this thesis proposal, a speculative specialization and memoization solution is described. The objective is to save computations of calculating target memory addresses for operations on array elements in a loop. These addresses are computated using a number of instructions, though they have very regular strides. If we are able to predict the addresses correctly, critical true data dependences will be broken, and an operation on a single array element will become very fast. Specialization and memoization have been proved very effective to reuse computations. They both exploit value behavior observed at run time. We use speculation to relax strict conditions required by traditional specialization and memoization and enable more aggressive opportunities in a safe way for our objective. When an unsafe aggressive speculation fails, the program will fall back to normal execution without significant slowdown.