Satish Chandra
Alcatel-Lucent
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Satish Chandra.
programming language design and implementation | 2000
Atanas Rountev; Satish Chandra
Most compiler optimizations and software productivity tools rely oninformation about the effects of pointer dereferences in a program.The purpose of points-to analysis is to compute this informationsafely, and as accurately as is practical. Unfortunately, accuratepoints-to information is difficult to obtain for large programs,because the time and space requirements of the analysis becomeprohibitive.nWe consider the problem of scaling flow- and context-insensitivepoints-to analysis to large programs, perhaps containing hundreds ofthousands of lines of code. Our approach is based on a variable substitution transformation, which is performed off-line, i.e.,before a standard points-to analysis is performed. The general idea ofvariable substitution is that a set of variables in a program can be replaced by a single representative variable, thereby reducing the input size of the problem. Our main contribution is a linear-time algorithm which finds a particular variable substitution that maintains the precision of the standard analysis, and is also very effective in reducing the size of the problem.nWe report our experience in performing points-to analysis on largeC programs, including some industrial-sized ones. Experiments show thatour algorithm can reduce the cost of Andersens points-to analysis substantially: on average, it reduced the running time by 53% and the memory cost by 59%, relative to an efficient baseline implementation of the analysis.
international conference on software engineering | 2002
Satish Chandra; Patrice Godefroid; Christopher D. Palm
We present an application of software model checking to the analysis of a large industrial software product: Lucent Technologies CDMA call-processing library. This software is deployed on thousands of base stations in wireless networks world-wide, where it sets up and manages millions of calls to and from mobile devices everyday. Our analysis of this software was carried out using VeriSoft, a tool developed at Bell Laboratories that implements model-checking algorithms for systematically testing concurrent reactive software. VeriSoft has now been used for over a year for analyzing several releases and versions of the CDMA call-processing software. Although we started this work with a fairly robust version of the software, the application of model checking exposed several problems that had escaped traditional testing. Model checking also helped developers maintain a high degree of confidence in the library as it evolved through its many releases and versions. To our knowledge, software model checking has rarely been applied to software systems of this scale. In this paper, we describe our experience in applying this technology in an industrial environment.
workshop on program analysis for software tools and engineering | 1999
Satish Chandra; Thomas W. Reps
The effectiveness of traditional type checking in C is limited by the presence of type conversions using type casts. Because the C standard allows arbitrary type conversions between pointer types, neither C compilers, nor tools such as lint, can guarantee type safety in the presence of such type conversions. In particular, by using casts involving pointers to structures (C structs), a programmer can interpret any memory region to be of any desired type, further compromising Cs weak type system. Not only do type casts make a program vulnerable to type errors, they hinder program comprehension and maintenance by creating latent dependencies between seemingly independent pieces of code.To address these problems, we have developed a stronger form of type checking for C programs, called physical type checking. Physical type checking takes into account the layout of C struct fields in memory. This paper describes an inference-based physical type checking algorithm. Our algorithm can be used to perform static safety checks, as well as compute useful information for software engineering applications.
foundations of software engineering | 1999
Michael Siff; Satish Chandra; Thomas Ball; Krishna Kunchithapadam; Thomas W. Reps
The use of type casts is pervasive in C. Although casts provide great flexibility in writing programs, their use obscures the meaning of programs, and can present obstacles during maintenance. Casts involving pointers to structures (C structs) are particularly problematic, because by using them, a programmer can interpret any memory region to be of any desired type, thereby compromising Cs already weak type system.nThis paper presents an approach for making sense of such casts, in terms of understanding their purpose and identifying fragile code. We base our approach on the observation that casts are often used to simulate object-oriented language features not supported directly in C. We first describe a variety of ways — idioms — in which this is done in C programs. We then develop a notion of physical subtyping, which provides a model that explains these idioms.nWe have created tools that automatically analyze casts appearing in C programs. Experimental evidence collected by using these tools on a large amount of C code (over a million lines) shows that, of the casts involving struct types, most (over 90%) can be associated meaningfully — and automatically — with physical subtyping. Our results indicate that the idea of physical subtyping is useful in coping with casts and can lead to valuable software productivity tools.
IEEE Transactions on Software Engineering | 2003
Glenn Bruns; Satish Chandra
The points-to analysis problem is to find the pointer relationships that could arise during program execution. Many points-to analysis algorithms exist, each making a particular trade off between cost of the analysis and precision of the results. In this paper, we show how points-to analysis algorithms can be defined as transformed versions of an exact algorithm. We present a set of program transformations over a general program model and use them to define some existing points-to analysis algorithms. Doing so makes explicit the approximations involved in these algorithms. We also show how the transformations can be used to define new points-to analysis algorithms. Our transformations are generic and may be useful in the design of other program analysis algorithms.
CONFENIS | 2006
Shankar Kambhampaty; Satish Chandra
As Enterprises evolve, they invariably end up with heterogeneous IT systems. The software applications for the IT systems would have been deployed on multiple platforms and built using varied programming languages or packaged software. Customers require approaches to plan enterprise wide strategies that lead to scenarios of well integrated IT systems within their organizations. Suitable integration strategies have to be adopted to ensure that the systems which are currently available are well-integrated as well as enable future systems to be easily brought into their fold through seamless integration.
Archive | 2000
Satish Chandra; Peter J. McCann
international conference on software engineering | 2006
Shankar Kambhampaty; Satish Chandra
Archive | 2001
Satish Chandra; Patrice Godefroid; Christopher D. Palm; Steven M. Welsh
international conference on software engineering | 2003
Satish Chandra; Satyendra Bhattaram