5 research outputs found

    Selective context-sensitivity guided by impact pre-analysis

    Full text link
    We present a method for selectively applying context-sensitivity during interprocedural program analysis. Our method applies context-sensitivity only when and where doing so is likely to improve the precision that matters for resolving given queries. The idea is to use a pre-analysis to estimate the impact of contextsensitivity on the main analysisโ€™s precision, and to use this information to find out when and where the main analysis should turn on or off its context-sensitivity. We formalize this approach and prove that the analysis always benefits from the pre-analysisguided context-sensitivity. We implemented this selective method for an existing industrial-strength interval analyzer for full C. The method reduced the number of (false) alarms by 24.4%, while increasing the analysis cost by 27.8% on average.The use of the selective method is not limited to contextsensitivity. We demonstrate this generality by following the same principle and developing a selective relational analysis

    Data-Driven Abstraction

    Get PDF
    Given a program analysis problem that consists of a program and a property of interest, we use a data-driven approach to automatically construct a sequence of abstractions that approach an ideal abstraction suitable for solving that problem. This process begins with an infinite concrete domain that maps to a finite abstract domain defined by statistical procedures resulting in a clustering mixture model. Given a set of properties expressed as formulas in a restricted and bounded variant of CTL, we can test the success of the abstraction with respect to a predefined performance level. In addition, we can perform iterative abstraction-refinement of the clustering by tuning hyperparameters that determine the accuracy of the cluster representations (abstract states) and determine the number of clusters. Our methodology yields an induced abstraction and refinement procedure for property verification

    Selectively Sensitive Static Analysis by Impact Pre-analysis and Machine Learning

    Get PDF
    ํ•™์œ„๋…ผ๋ฌธ (๋ฐ•์‚ฌ)-- ์„œ์šธ๋Œ€ํ•™๊ต ๋Œ€ํ•™์› ๊ณต๊ณผ๋Œ€ํ•™ ์ „๊ธฐยท์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€, 2017. 8. ์ด๊ด‘๊ทผ.์ด ํ•™์œ„ ๋…ผ๋ฌธ์—์„œ๋Š” ์ •์  ๋ถ„์„ ์„ฑ๋Šฅ์„ ๊ฒฐ์ •์ง“๋Š” ์„ธ ๊ฐ€์ง€ ์ถ•์ธ ์•ˆ์ „์„ฑ (soundness), ์ •ํ™•๋„ (precision), ํ™•์žฅ์„ฑ (scalability) ์„ ์ตœ๋Œ€ํ•œ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•œ๋‹ค. ์ •์  ๋ถ„์„์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ •ํ™•๋„ ์ƒ์Šน ๊ธฐ๋ฒ•๋“ค์ด ์žˆ์ง€๋งŒ, ๋ฌดํ„ฑ๋Œ€๊ณ  ์ ์šฉํ•  ์‹œ์—๋Š” ๋ถ„ ์„์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ๋Š๋ ค์ง€๊ฑฐ๋‚˜ ์‹ค์ œ ์‹คํ–‰ ์˜๋ฏธ๋ฅผ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์ด ๋†“์น˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋…ผ๋ฌธ์˜ ํ•ต์‹ฌ์€, ์ด๋ ‡๊ฒŒ ์ •ํ™•ํ•˜์ง€๋งŒ ๋น„์šฉ์ด ํฐ ๋ถ„์„ ๊ธฐ๋ฒ•์ด ๊ผญ ํ•„์š”ํ•œ ๊ณณ๋งŒ์„ ์„ ๋ณ„ํ•ด ๋‚ด๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๋จผ์ €, ์ •ํ™•๋„ ์ƒ์Šน ๊ธฐ๋ฒ•์ด ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์˜ˆ์ธกํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ •์  ๋ถ„์„์ธ ์˜ˆ๋น„ ๋ถ„์„์„ ์ œ์‹œํ•œ๋‹ค. ๋ณธ ๋ถ„์„์€ ์ด ์˜ˆ๋น„ ๋ถ„์„์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •ํ™•๋„ ์ƒ ์Šน ๊ธฐ๋ฒ•์„ ์„ ๋ณ„์ ์œผ๋กœ ์ ์šฉํ•จ์œผ๋กœ์„œ ํšจ์œจ์ ์œผ๋กœ ๋ถ„์„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ๊ธฐ๊ณ„ํ•™์Šต ์„ ์ด์šฉํ•˜์—ฌ ๊ณผ๊ฑฐ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ํ•™์Šตํ•จ์œผ๋กœ์จ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ์„ ๋ณ„ํ• ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฒ•์„ ์ œ์‹œํ•œ๋‹ค. ํ•™์Šต์— ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ๋Š” ์•ž์„œ ์ œ์‹œํ•œ ์˜ˆ๋น„ ๋ถ„์„๊ณผ ๋ณธ ๋ถ„์„์„ ์—ฌ๋Ÿฌ ํ•™์Šต ํ”„ ๋กœ๊ทธ๋žจ์— ๋ฏธ๋ฆฌ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋กœ๋ถ€ํ„ฐ ์ž๋™์œผ๋กœ ์–ป์–ด ๋‚ธ๋‹ค. ์—ฌ๊ธฐ์„œ ์ œ์‹œํ•œ ๋ฐฉ๋ฒ•๋“ค์€ ์‹ค์ œ C ์†Œ์Šค ์ฝ”๋“œ ๋ถ„์„๊ธฐ์— ์ ์šฉํ•˜์—ฌ ๊ทธ ํšจ๊ณผ๋ฅผ ์‹คํ—˜์ ์œผ๋กœ ์ž…์ฆํ–ˆ๋‹ค.1. Introduction 1 1.1 Goal 1 1.2 Solution 2 1.3 Outline 4 2. Preliminaries 5 2.1 Program 5 2.2 Collecting Semantics 6 2.3 Abstract Semantics 6 3 Selectively X-sensitive Analysis by Impact Pre-Analysis 9 3.1 Introduction 9 3.2 Informal Description 11 3.3 ProgramRepresentation 17 3.4 Selective Context-Sensitive Analysis with Context-Sensitivity Parameter K 18 3.5 Impact Pre-Analysis for Finding K 22 3.5.1 Designing an Impact Pre-Analysis 22 3.5.2 Use of the Pre-Analysis Results 28 3.6 Application to Selective Relational Analysis 35 3.7 Experiments 40 3.8 Summary 42 4 Selectively X-sensitive analysis by learning data generated by impact pre-analysis 47 4.1 Introduction 47 4.2 Informal Explanation 50 4.2.1 Octagon Analysis with Variable Clustering 50 4.2.2 Automatic Learning of a Variable-Clustering Strategy 52 4.3 Octagon Analysis with Variable Clustering 56 4.3.1 Programs 56 4.3.2 Octagon Analysis 56 4.3.3 Variable Clustering and Partial Octagon Analysis 58 4.4 Learning a Strategy for Clustering Variables 59 4.4.1 Automatic Generation of Labeled Data 60 4.4.2 Features and Classier 63 4.4.3 Strategy for Clustering Variables 64 4.5 Experiments 66 4.5.1 Effectiveness 67 4.5.2 Generalization 68 4.5.3 Feature Design 69 4.5.4 Choice of an Off-the-shelf Classification Algorithm 70 4.6 Summary 70 5 Selectively Unsound Analysis by Machine Learning 75 5.1 Introduction 75 5.2 Overview 78 5.2.1 Uniformly Unsound Analysis 78 5.2.2 Uniformly Sound Analysis 79 5.2.3 Selectively Unsound Analysis 80 5.2.4 Our Learning Approach 80 5.3 Our Technique 81 5.3.1 Parameterized Static Analysis 82 5.3.2 Learning a Classifier 83 5.4 Instance Analyses 87 5.4.1 A Generic, Selectively Unsound Static Analysis 87 5.4.2 Instantiation 1: Interval Analysis 91 5.4.3 Instantiation 2: TaintAnalysis 91 5.5 Experiments 92 5.5.1 Setting 92 5.5.2 Effectiveness of Our Approach 93 5.5.3 Efficacy of OC-SVM 96 5.5.4 Feature Design 97 5.5.5 Time Cost 98 5.5.6 Discussion 98 5.6 Summary 100 6 Related Work 106 6.1 Parametric Static Analysis 106 6.2 Goal-directed Static Analysis 107 6.3 Data-driven Static Analysis 108 6.4 Context-sensitivity and Relational Analysis 108 6.5 Unsoundness in Static Analysis 110 7 Conclusion 112Docto

    Finding optimum abstractions in parametric dataflow analysis

    No full text
    corecore