Project Details
نویسنده
چکیده
Program Slicing is a technique of identifying parts (slice) of a program that may influence or be influenced by a given set of program points (slice criteria). This technique has been extensively applied to program understanding. In the Bandera project [7], the application of program slicing was considered to reduce the size of the model extracted from concurrent Java programs for the purpose of program verification via model checking. However, the absence of a configurable and modular program slicer for Java prompted us to build one from scratch, and I volunteered to build the slicer. Most of the proposed slicing techniques [28, 13] were geared towards sequential programs written in procedural languages such as C. In the process of implementing the slicer, I (like many others) found that these techniques either fail or lead to imprecise slices due to aliasing in concurrent programs written in object-oriented languages. Imprecise interference dependence was one of the main reason. Interference dependence [16, 11] is a form of data dependence stemming from reads and writes on same objects that occur in different threads. As the data flow between variables in different threads is dependent on the possibly exponential number of interleavings between threads, mere extensions of solutions to data-dependence calculation prove to be costly. However, as nonescaping objects cannot contribute to interference dependence, information from escape analysis [1, 6] can be used to prune spurious interference dependences, hence, improve the accuracy of slicing. As an experiment, I adapted Ruf’s escape analysis [25] to prune interference dependences. Based on the positive results, I extended the adapted analysis to symbolically track read, write, and lock actions on the objects. This extension pruned more dependences and led to smaller slices. Similarly, Ruf’s analysis was extended to improve the precision of ready dependences, a form on control dependence that arises due to synchronization constructs (alike enter-monitor/exitmonitor/wait/notify in Java) in concurrent systems. This work along with the results was published at the International Conference on Compiler Construction (CC) 2004 [23]. During the development of the slicer, non-terminating systems and modern program structures (exceptions) exposed some “shortcomings” in control dependence as prescribed in earlier literature. I devised alternative definitions to address these “shortcomings” and, as part of the slicer, I implemented the algorithms to calculate control dependence according to alternate definitions. The definitions were unique as they could be applied directly to both reducible and irreducible control
منابع مشابه
How the Perception of Project Success and Accountability Affect the IS process Document Completeness
The perception of project outcome can influence people’s wiliness to report details in a project. We report an experimental study on the effect of outcome perception and accountability to the completeness of IS documentation. We discuss this issue both theoretically and empirically. We find that perception of project outcome has a significant influence on documentation decisions. Managers of “f...
متن کاملSeismic Evaluation and Retrofit of Gas Stations: Case Study
Iran is a country with high seismicity while Tehran, the capital city is home to more than 10 million people which are located on the highest seismic zone of the country. There exist 153 gas stations throughout the metropolitan which are constructed to old building codes with little or no attention to the seismic considerations. In this study which was supported by the National Oil Company, fir...
متن کاملAcceleration of Gapped Alignment in BLASTP Using the Mercury System
Protein databases have grown exponentially over the last decade. This exponential growth has made extracting valuable information from these databases increasingly time consuming. This project presents a new method of accelerating a commonly used program for performing similarity searching on protein databases, BLASTP. This project describes the design and implementation of Mercury BLASTP, a cu...
متن کاملUncertainty Assessment in Project Scheduling with Data Mining
During project execution, especially in a multi-project environment project activities are subject to risks that may cause delays or interruptions in the baseline schedules. This paper considers the resource constrained multi-project scheduling problem with generalized activity precedence relations requiring multi-skilled resources in a stochastic and dynamic environment present in the R&D depa...
متن کاملسناریونویسی برای شرایط اضطراری مبتنی بر رویکرد دانش بدنه مدیریت پروژه
Background & Objectives : The sound planning is needed for effective implementation of an emergency exercise. The exercise planning is manifested in the scenario development process. Despite the frequent execution of exercises in the industries and the public domain, there is no uniform pattern for designing scenarios. The present paper aims at devising a new pattern based on the project manage...
متن کاملNature as a Source of Inspiration of Architectural Conceptual Design
From the beginning of creation, human being was surrounded by nature. Everything in nature is well organized and in harmony with the other parts of it. Through the history, nature has been always a source of inspiration for the human begin in different aspects of their life. Architecture as one of the remarkable features in every society cannot be separated from nature. In architecture design...
متن کامل