File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,27 @@ 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".
15
+
16
+ The following lowering operations are done on Java bytecode after converting
17
+ into a basic ` codet ` representation.
18
+
19
+ - \ref java-bytecode-runtime-exceptions "Add runtime exceptions"
20
+ - \ref java-bytecode-remove-java-new "Remove ` new ` calls"
21
+ - \ref java-bytecode-remove-exceptions "Remove thrown exceptions"
22
+ - \ref java-bytecode-remove-instance-of
23
+ - As well as other non-Java specific transformations (see \ref goto-programs for
24
+ details on these)
25
+
26
+ These are performed in ` process_goto_function ` for example
27
+ \ref jbmc_parse_optionst::process_goto_function
28
+
29
+ Once these lowerings have been completed, you have a GOTO model that can be handled by \ref goto-symex.
9
30
10
31
\section java-bytecode-array-representation How are Java arrays represented in GOTO
11
32
You can’t perform that action at this time.
0 commit comments