3 ms·
why? we get general and accurate program analysis all the time using just unification and simple inference rules...
by munin 12y ago
why? we get general and accurate program analysis all the time using just unification and simple inference rules...
- ScottBurson 12y agoNo, you don't. You may be able to infer some properties of some programs, but you can't take an arbitrary program of real-world size and answer an arbitrary question of a kind that a human maintainer of that program would want to know; for example, under what circumstances, if any, it ever performs an invalid operation -- such as an array bounds violation, throwing a runtime exception, whatever is considered invalid in whatever language it's written in. That's what I mean by "general and accurate".
- munin 12y agoyes you can, in many dimensions. one of those we call "type checking". other examples are the myriad examples of using model checking and symbolic execution to identify errors in programs automatically. can you identify all errors? no, but that has nothing to do with weak or strong AI. but you can definitely learn general properties about general programs using today's technology.
- ScottBurson 12y agoI'm certainly not saying that static analysis is useless; that would be an odd statement considering it's the field that pays my salary! But there's still a very big gap between what we can do and what we want to do. None of the extant static analyzers found the Heartbleed bug, for example. What I'm saying is that to close that gap will require AI. I don't think it's just a matter of better algorithms.