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
88used in the input transformation to Intermediate Representation (IR) inside
99CBMC and the assorted CProver tools.
1010
11- ## goto_modelt
11+ ## GOTO models
1212
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
1414tools) use for holding the GOTO intermediate representation. The following
1515diagram is a simplified view of how the data structures relate to each other -
1616
@@ -70,8 +70,15 @@ type goto_modelt {
7070}
7171```
7272
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
7475[ ` 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.
7582
7683## goto_functiont
7784
You can’t perform that action at this time.
0 commit comments