@@ -506,9 +506,9 @@ digraph ast {
506
506
}
507
507
\enddot
508
508
509
- In CBMC, we use a slightly different solution. For each branch, we keep
510
- track of which side of the branch was taken, and implement & Phi ; using
511
- this information. There are also some differences in how loops are
509
+ In CBMC, we provide a precise implemenation of & Phi ; , using explicitly tracked
510
+ information about which branches were taken by the program.
511
+ There are also some differences in how loops are
512
512
handled (finite unrolling in CBMC, versus a &Phi ; -based approach in
513
513
compilers); the CBMC approach will be discussed in a later chapter.
514
514
@@ -590,7 +590,8 @@ While BMC analyses the program by transforming everything to logic
590
590
formulas and, essentially, running the program on sets of concrete
591
591
states, another approach to learn about a program is based on the idea
592
592
of interpreting an abstract version of the program. This is known
593
- as ** static analysis** , or, more precisely, ** abstract interpretation** .
593
+ as ** abstract interpretation** . Abstract interpretation is one of the
594
+ main methods in the area of ** static analysis** .
594
595
595
596
The key idea is that instead of looking at concrete program states
596
597
(e.g., ''variable x contains value 1''), we look at some
0 commit comments