File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -8,9 +8,9 @@ The following is some light technical documentation of the major data structures
8
8
used in the input transformation to Intermediate Representation (IR) inside
9
9
CBMC and the assorted CProver tools.
10
10
11
- ## goto_modelt
11
+ ## GOTO models
12
12
13
- The ` goto_modelt ` is the top-level data structure that CBMC (and the other
13
+ The ` goto_modelt ` class is the top-level data structure that CBMC (and the other
14
14
tools) use for holding the GOTO intermediate representation. The following
15
15
diagram is a simplified view of how the data structures relate to each other -
16
16
@@ -70,8 +70,15 @@ type goto_modelt {
70
70
}
71
71
```
72
72
73
- The abstract interface of ` goto_modelt ` is outlined in the file
73
+ There is an abstract interface for goto models provided by the
74
+ ` abstract_goto_modelt ` class. This is defined and documented in the file
74
75
[ ` src/goto-programs/abstract_goto_model.h ` ] ( ../../src/goto-programs/abstract_goto_model.h ) .
76
+ Ideally code which takes a goto model as input should accept any implementation
77
+ of the abstract interface rather than accepting the concrete ` goto_modelt `
78
+ exclusively. This helps with compatibility with ` jbmc ` which uses lazy loading.
79
+ See the ` lazy_goto_modelt ` class which is defined and documented in
80
+ [ ` jbmc/src/java_bytecode/lazy_goto_model.h ` ] ( ../../jbmc/src/java_bytecode/lazy_goto_model.h )
81
+ for details of lazy loading.
75
82
76
83
## goto_functiont
77
84
You can’t perform that action at this time.
0 commit comments