![]() | Only 14 pages are availabe for public view |
Abstract br Multi-threaded programs have many applications which are widely used br such as operating systems. Analyzing multi-threaded programs diers br -#102;-#114;-#111;-#109; sequential ones; the main feature is that many threads execute at br the same time. The eect of all other running threads must be taken br in account. Type systems is a good framework for analyzing programs. br This thesis focuses on the analysis of multi-threaded programs using type br systems. The rst aim of our work is to implement partial redundancy br elimination for multi-threaded programs via type systems. Partial redundancy br elimination is among the most powerful compiler optimization: it br performs loop invariant code motion and common subexpression elimination. br The second aim is to build a static data race detector that has br the form of type systems. Data race occurs when two threads try to access br a shared variable at the same time without a proper synchronization br and one of them is write. A detector is a software that determines if the br program contains a data-race problem or not. br The thesis is organized as follow:- br In chapter 1, we present a general introduction about the work. In br chapter 2, we introduced the related work to ours. We outlines the br main algorithms and basic denitions that needed. In chapter 3, we br present a type system with optimization component which performs parvii br tial redundancy elimination for a multi-threaded programs. In chapter br 4, we designed a type system based data race detector. We present br a type system which discovers the data-race problems. We also prove br the soundness of all type systems introduced through thesis. Chapter 5 br overview the main conclusions of the thesis and the future work that can br be contributed. |