Precise detection of un-initialized variables in large, real-life COBOL programs in presence of unrealizable paths

作者: Rahul Jiresal , Adnan Contractor , Ravindra Naik

DOI: 10.1109/ICSM.2011.6080812

关键词:

摘要: Using variables before assigning any values to them are known result in critical failures an application. Few compilers warn about the use of some, but not all uses un-initialized variables. The problem persists, especially COBOL systems, due lack reliable program analysis tools. A reason is presence large number control flow paths un-structured constructs language. We present problems faced by one our big clients his large, based software system static data and control-flow detect them, we observed false positives (imprecision) introduced unrealizable code. propose a solution address realizability issue. on summary function analysis, which adapted for Paragraphs Sections, handle perform-through fall-through control-flow, significantly engineered scale programs (single extending tens thousands lines). this technique, noted very reduction, 45% average,

参考文章(9)
Yannis Smaragdakis, Christoph Csallner, Combining static and dynamic reasoning for bug detection tests and proofs. pp. 1- 16 ,(2007) , 10.1007/978-3-540-73770-4_1
Robert Dewar, Olivier Hainque, Dirk Craeynest, Philippe Waroquiers, Exposing Uninitialized Variables: Strengthening and Extending Run-Time Checks in Ada Lecture Notes in Computer Science. ,vol. 2007, pp. 193- 204 ,(2002) , 10.1007/3-540-48046-3_15
Thi Viet Nga Nguyen, François Irigoin, Corinne Ancourt, Fabien Coelho, Automatic detection of uninitialized variables compiler construction. pp. 217- 231 ,(2003) , 10.1007/3-540-36579-6_16
John B. Kam, Jeffrey D. Ullman, Monotone data flow analysis frameworks Acta Informatica. ,vol. 7, pp. 305- 317 ,(1977) , 10.1007/BF00290339
Nicholas Nethercote, Julian Seward, Valgrind Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation - PLDI '07. ,vol. 42, pp. 89- 100 ,(2007) , 10.1145/1250734.1250746
Derek Bruening, Qin Zhao, Practical memory checking with Dr. Memory symposium on code generation and optimization. pp. 213- 223 ,(2011) , 10.5555/2190025.2190067
Julian Seward, Nicholas Nethercote, Using Valgrind to detect undefined value errors with bit-precision usenix annual technical conference. pp. 2- 2 ,(2005)