Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
8928720
working module tactobc
sofiarandas Jul 28, 2024
68be1b4
preparing testing with more java programs
sofiarandas Jul 28, 2024
e018d49
handling more expr types (WIP)
sofiarandas Jul 28, 2024
3326828
Separated the first pass in own class
sofiarandas Jul 30, 2024
59695c9
Separated the second pass in own class
sofiarandas Jul 30, 2024
91a75f2
Separated the third pass in own class
sofiarandas Jul 30, 2024
daebb60
refactored documentation
sofiarandas Jul 30, 2024
b1e2f97
refactored documentation
sofiarandas Jul 30, 2024
b462576
Loading more example programs
sofiarandas Aug 1, 2024
4245573
translation process work, generation of class files not yet (WIP)
sofiarandas Aug 1, 2024
b5d4299
generation of class files (WIP)
sofiarandas Aug 1, 2024
48e27cc
probably fixed PutStatic
sofiarandas Aug 1, 2024
803eeb8
probably fixed PutField
sofiarandas Aug 1, 2024
b682731
probably fixed Monitor Enter and MonitorExit
sofiarandas Aug 1, 2024
44a2d79
probably fixed NonVirtualMethodCall
sofiarandas Aug 1, 2024
ac2c4bc
probably fixed ReturnValue
sofiarandas Aug 2, 2024
7e93e15
generating .class files again works! :)
sofiarandas Aug 2, 2024
cc16c44
added StaticMethodCall for collecting DUVars
sofiarandas Aug 4, 2024
7e2ee64
idea for matching between ArrayTypes that works for primitive types
sofiarandas Aug 4, 2024
b1f03c9
probably handling ArrayLoad correctly for all types
sofiarandas Aug 4, 2024
c7807cc
probably handling ArrayLoad correctly when it is in a UVar
sofiarandas Aug 4, 2024
0dfdc4b
rollback of handling UVars that are arrays
sofiarandas Aug 4, 2024
86d3c2f
handled cases when there is some read to ´this´
sofiarandas Aug 4, 2024
192086d
separated handling methods for field exprs
sofiarandas Aug 4, 2024
fee0fcc
refactored mapping parameters to handle instance and static methods c…
sofiarandas Aug 5, 2024
fac1bd9
extended to hanlde InvokedynamicFunctionCall
sofiarandas Aug 5, 2024
ea4ab95
getting rid of helper methods to concat strings
sofiarandas Aug 5, 2024
eb66912
refactored ArrayStore
sofiarandas Aug 5, 2024
e88985d
refactored NewArray for MULTIANEWARRAY
sofiarandas Aug 5, 2024
c01e762
refactored ArrayLoad
sofiarandas Aug 5, 2024
822f3ee
refactoring
sofiarandas Aug 5, 2024
2ec9321
fixed NewArray for reference types
sofiarandas Aug 6, 2024
3dedf81
fixed handling doubles and longs
sofiarandas Aug 7, 2024
4bc194f
handling more stmts
sofiarandas Aug 7, 2024
136bd3a
refactored mapping parameters first
sofiarandas Aug 8, 2024
0b82515
refactored handling parameters first
sofiarandas Aug 9, 2024
1ebca1c
refactored .class file generation process
sofiarandas Aug 9, 2024
da967a5
Added testcases
sofiarandas Aug 9, 2024
a9603a6
cleanup
sofiarandas Aug 9, 2024
e87ed62
Testing working - plug and play
sofiarandas Aug 11, 2024
c6c5bf0
Added assignment tests
sofiarandas Aug 11, 2024
e2f6c41
Fixed handlePrimitiveTypeCastExpr
sofiarandas Aug 11, 2024
06434c6
added testcase for ArithmeticOperations
sofiarandas Aug 11, 2024
464dba9
added testcase for ArithmeticOperations
sofiarandas Aug 11, 2024
1d5b920
Merge remote-tracking branch 'origin/developing_in_own_module' into d…
sofiarandas Aug 11, 2024
87b9622
added testcase for PrimitiveTypeCast
sofiarandas Aug 11, 2024
5dd0d4c
added "Long" as condition
sofiarandas Aug 11, 2024
0afd80b
completed testsuite for PrimitiveTypeCast
sofiarandas Aug 11, 2024
5ba359f
added testcase for ForLoop
sofiarandas Aug 11, 2024
18a7998
added logic to collect DUVars from Switch Stmt
sofiarandas Aug 11, 2024
06b0d7c
added testcase for MethodCalls
sofiarandas Aug 11, 2024
882fb50
fixed handleNewArray for Multidimensional Arrays
sofiarandas Aug 11, 2024
e8d33d7
added testcase for Arrays
sofiarandas Aug 11, 2024
2369d24
added testcase for Parameters
sofiarandas Aug 11, 2024
4e02d17
added testcase for StaticField
sofiarandas Aug 11, 2024
e824997
added testcase for InstanceField
sofiarandas Aug 11, 2024
0ecdb82
added testcase for If
sofiarandas Aug 11, 2024
f117151
added testcase for WhileLoop
sofiarandas Aug 11, 2024
e7ae24e
deleted Hello programs
sofiarandas Aug 11, 2024
20a2b6b
added processinng checkcast with tests
sofiarandas Aug 11, 2024
ae13063
cleanup
sofiarandas Aug 11, 2024
80028fd
cleanup
sofiarandas Aug 11, 2024
c55bf2a
added testcase for Compare
sofiarandas Aug 11, 2024
449b9f5
added for more coverage of instructions
sofiarandas Aug 11, 2024
12c9015
added processing of JSR
sofiarandas Aug 11, 2024
305907e
added testcase for JSR
sofiarandas Aug 11, 2024
4731076
cleanup
sofiarandas Aug 12, 2024
a8ab4b0
fix processing if for reference types
sofiarandas Aug 14, 2024
3f7002c
added testcase for reference types
sofiarandas Aug 14, 2024
74b9573
added testcase for reference types
sofiarandas Aug 14, 2024
414eae9
added testcase checking constants loading
sofiarandas Aug 14, 2024
806de9d
Merge remote-tracking branch 'origin/developing_in_own_module' into d…
sofiarandas Aug 14, 2024
f20cafe
added processing of Negation
sofiarandas Aug 14, 2024
1ba7f1c
added testcase for Negation
sofiarandas Aug 14, 2024
474069f
added handling for InstanceOf
sofiarandas Aug 14, 2024
8064da9
added testcases for InstanceOf
sofiarandas Aug 14, 2024
7bf3b5d
fixed handling of InvokeInterface
sofiarandas Aug 14, 2024
5a7a12c
added testcase for InvokeInterface
sofiarandas Aug 14, 2024
7cd26ae
cleanup
sofiarandas Aug 14, 2024
09a8551
fixed InvokeDynamic handling
sofiarandas Aug 14, 2024
94c329b
added testcase for InvokeDynamic
sofiarandas Aug 14, 2024
95b2023
cleanup
sofiarandas Aug 14, 2024
9b2b992
fixed Switch targets
sofiarandas Aug 15, 2024
e2ac1dd
added Switch testcase
sofiarandas Aug 15, 2024
7c22bd1
added Switch testcase
sofiarandas Aug 15, 2024
6654c68
Merge remote-tracking branch 'origin/developing_in_own_module' into d…
sofiarandas Aug 15, 2024
1111389
added Reassignment testcases
sofiarandas Aug 17, 2024
facf395
added IfZero testcases
sofiarandas Aug 17, 2024
81bc558
added BigNumbers testcases
sofiarandas Aug 17, 2024
6dbba64
added more BigNumbers testcases
sofiarandas Aug 17, 2024
5a97d29
added ObjectPropertyAccess testcases
sofiarandas Aug 17, 2024
bf1fcd8
added mutable java files testcases (WIP)
sofiarandas Aug 23, 2024
673b329
added mutable java files testcases and fixed some input java files
sofiarandas Aug 24, 2024
a5a8162
added documentation
sofiarandas Sep 4, 2024
65cb10a
changed the implementation of translating Stmts to Instructions -> no…
lucahuen Jan 22, 2025
de54b31
inner classes are found and loaded in loadClassesFromFile
lucahuen Jan 22, 2025
c535af6
made myclass in Constants_mutation_5.java public static and inside of…
lucahuen Jan 23, 2025
73fffdd
added array element in Jsr_mutation_1.java to avoid IndexOutOfBoundsE…
lucahuen Jan 23, 2025
7fb4bfc
- fixed tac2bc not storing var after CHECKCAST
lucahuen Feb 3, 2025
a942a9d
- cleaned up code
lucahuen Feb 25, 2025
de4d482
- cleaned up more code
lucahuen Mar 5, 2025
204f548
changed CaughtException.java
lucahuen Mar 12, 2025
1a13aaf
Some cleanup
May 7, 2025
18ebb49
More cleanup
May 7, 2025
a88d671
More cleanup
May 7, 2025
d26b922
Merge branch 'develop' into feature/TAC2BC
May 13, 2025
efe58cc
Update subproject dependencies
May 13, 2025
feba49b
Fix type and visibility problems
May 15, 2025
54863ee
Cleanup TAC2BC tests
May 16, 2025
ba9f139
Merge branch 'develop' into feature/TAC2BC
May 16, 2025
5e15b55
Formatting TAC2BC test files
May 16, 2025
4473509
Further cleanup of TAC2BC
May 16, 2025
f0509e7
Further cleanup of TAC2BC
May 16, 2025
fc22ce7
added CaughtException mutations
lucahuen May 16, 2025
3172def
Merge remote-tracking branch 'origin/developing_in_own_module' into d…
lucahuen May 16, 2025
e410e67
Merge branch 'develop' into feature/TAC2BC
May 19, 2025
9ebce92
Add missing headers and files
May 19, 2025
adb1b49
Move test files into package to avoid namespace pollution
Jul 16, 2025
5f73f1f
Merge branch 'develop' into feature/TAC2BC
Sep 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions OPAL/ProjectDependencies.mmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ flowchart BT
AbstractInterpretationFramework[Abstract Interpretation Framework<br>ai]
Hermes[Hermes<br>hermes]
Common[Common<br>common]
ThreeAddressCodeToBytecode[Three Address Code to Bytecode<br>tac2bc]
BytecodeDisassembler[Bytecode Disassembler<br>da]
StaticAnalysisInfrastructure[Static Analysis Infrastructure<br>si]
IFDS[IFDS<br>ifds]
Expand All @@ -22,9 +23,8 @@ flowchart BT
style Framework fill:#c0ffc0
style Hermes fill:#ffd7cf

Framework --> BytecodeAssembler
Framework --> ArchitectureValidation
Framework --> ThreeAddressCode
Framework --> ThreeAddressCodeToBytecode
ThreeAddressCode --> AbstractInterpretationFramework
ThreeAddressCode --> IFDS
APK --> ThreeAddressCode
Expand All @@ -34,6 +34,8 @@ flowchart BT
BytecodeInfrastructure --> Common
AbstractInterpretationFramework --> BytecodeRepresentation
Hermes --> Framework
ThreeAddressCodeToBytecode --> BytecodeAssembler
ThreeAddressCodeToBytecode --> ThreeAddressCode
BytecodeDisassembler --> BytecodeInfrastructure
StaticAnalysisInfrastructure --> Common
IFDS --> IDE
Expand Down
Binary file modified OPAL/ProjectDependencies.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion OPAL/ProjectDependencies.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions OPAL/tac2bc/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Overview
The ***three-address code to bytcode conversion*** library.
1 change: 1 addition & 0 deletions OPAL/tac2bc/build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// build settings reside in the opal root build.sbt file
8 changes: 8 additions & 0 deletions OPAL/tac2bc/src/main/resources/reference.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
org.opalj.tac2bc {
switch {
tableSwitchFixedCost = 10,
tableSwitchCostPerValue = 1,
lookupSwitchFixedCost = 0,
lookupSwitchCostPerValue = 5
}
}
472 changes: 472 additions & 0 deletions OPAL/tac2bc/src/main/scala/org/opalj/tac2bc/ExprProcessor.scala

Large diffs are not rendered by default.

Loading
Loading