Login
Computer Science @ Rochester
Thursday, December 15, 2011
2:00 PM
Computer Science Bldg. Room 601
Ph.D. Thesis Proposal
Kyle Liddell
University of Rochester
Efficient Concurrent Scripting Language Interpreters
Scripting languages have evolved from simple glue languages to become general purpose programming environments. With this change, scripting languages now need high performance interpreters, while modern processor architectures require parallel interpreters and parallel languages. Unfortunately, the scripting language community has been unable to create acceptable solutions. However, work in other run-time environments suggests that efficient concurrent interpreters are possible, and that many parallel language constructs are well suited to existing scripting languages.

Scripting languages provide unique challenges and opportunities compared to other, more researched languages. Few interpreter activities are safe from races when dynamic typing, late binding, and dynamic compilation occur in the presence of multiple threads. But introducing the necessary synchronization will result in poor performance, even though actual races may be quite rare. However, with careful choices of synchronization mechanisms, we should be able to take advantage of these read-mostly critical sections and reduce the performance penalty.

Additionally, these very high-level languages include extensive, tightly integrated standard libraries, which provide many opportunities to introduce concurrency ``under the hood'', without involving the application programmer. The functional language features can also make explicit parallelism easier to express in scripts. However, if introducing concurrency makes the language much more difficult to use, users will be tempted to move towards other languages. Finally, interpreters can be very slow; while this provides room to hide some overheads, it also means that our concurrent extensions must be more effective.