4 ms·
No, it means you have false positives. But no false negatives.
by bonzini 7y ago
No, it means you have false positives. But no false negatives.
- UncleMeat 7y agoAnd that's a "negative" in a practical sense. An abstract interpretation that outputs Top for all programs is sound but useless. In practice, most sound static analyses for complex problems aren't too far from that.
- bonzini 7y agoIt's not a "negative", it's a disadvantage. "Negative" has a specific meaning that should not be used in this context. Safe Rust is also in the same boat: it has a lot of false positives that are rejected by the borrow checker even though they would be okay, and yet it's being used just fine. Think of doubly linked lists which are pretty much impossible to implement in safe Rust unless you replace pointers with integer IDs which basically disables borrow checking. Non-lexical lifetimes are an example of downright changing the definition of the language in order to remove some of these false positives.
- UncleMeat 7y agoI didn't it that way. I read it as "downside" rather than "false negative", especially because a sound static analysis is trivial and not something to be proud of in the abstract. "Output Top" is sound for all non-inverted lattices and takes constant time. Woohoo! But it is also useless.
- deleted 7y ago[deleted]
- quietbritishjim 7y agoI think you are both right. It's confusing because the original claim uses different terminology than usual. It said > 100% of the positives with 0% negatives [are treated as positives] * The "100% positives" are actual positives that show up as positive, so it's saying that there are no positives that show up as negatives i.e. "no false negatives" (even though it uses the word "positive") * The "0% negatives" are actual negatives that show up as positives, so it's saying that there are "no false positives" (even though it uses the word "negative"). So UncleMeat's comment 'Then that doesn't mean "0% of the negatives"' and your comment 'it means you have false positives' are actually in agreement.