File tree 1 file changed +22
-0
lines changed
1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,28 @@ This module provides a front end for Java.
6
6
\section java-bytecode-conversion-section Overview of conversion from bytecode to codet
7
7
8
8
To be documented.
9
+ \subsection java-bytecode-lowering-to-goto Lowering to GOTO
10
+
11
+ The Java language contains high-level programming concepts like virtual
12
+ functions and throw/catch semantics. These need to be rewritten in terms of
13
+ other, more fundamental operations in order to analyse the Java program. This
14
+ operation is referred to as "lowering". See Background Concepts for more
15
+ information.
16
+
17
+ The following lowering operations are done on Java bytecode after converting
18
+ into a basic ` codet ` representation.
19
+
20
+ - \ref java-bytecode-runtime-exceptions "Add runtime exceptions"
21
+ - \ref java-bytecode-remove-java-new "Remove ` new ` calls"
22
+ - \ref java-bytecode-remove-exceptions "Remove thrown exceptions"
23
+ - \ref java-bytecode-remove-instance-of
24
+ - As well as other non-Java specific transformations (see \ref goto-programs for
25
+ details on these)
26
+
27
+ These are performed in ` process_goto_function ` for example
28
+ \ref jbmc_parse_optionst::process_goto_function
29
+
30
+ Once these lowerings have been completed, you have a GOTO model that can be handled by \ref goto-symex.
9
31
10
32
\section java-bytecode-array-representation How are Java arrays represented in GOTO
11
33
You can’t perform that action at this time.
0 commit comments