|
Dan Williams is a fifth year Ph.D. student working on developing a new model of program development where program metadata is shared across the software development toolchain. The tentative title of his dissertation is Improved Compiler/SDT Interaction Through Shared Program Metadata. Dissertation Proposal AbstractCreating correct, secure and efficient programs is a difficult task. To achieve this goal, tools in the software development toolchain are used to allow programmers to write in high-level languages. While translating the program, the software development tools collect valuable information about the structure of the program (e.g., the program’s control flow and memory layout). This information, known as program metadata, is used by individual programs within the software development toolchain and then typically discarded. However, the collected metadata has many uses, and could be used by other tools, if it were available to them. One such tool is Software Dynamic Translation (SDT). An SDT system is a tool that programmatically interprets application code before it is executed. SDT has been used in a variety of application domains: runtime optimization, security, and performance analysis, among others. All of these application domains use data about the program while performing various tasks (e.g., securing the control-flow or eliminating dead code). The SDT system can collect this metadata, however, doing complex analysis to gather the required data increases translation overhead. Because of this large potential for metadata use in a variety of SDT application domains, and the need for access to that metadata without the overhead of gathering it, SDT is an ideal candidate for exploring the benefits of shared metadata. The thesis of this work is that the sharing of program metadata across the software development toolchain can improve program performance, security, and application development. Focusing on the interaction between the software development toolchain and SDT, this work will study the uses, persistence, availability, and practicality of sharing metadata in the process of program translation and execution under an SDT system. This research will be validated by developing SDT-based applications that use program metadata in the domains of optimization, overhead reduction, security, and performance analysis. |