Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 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
errt May 7, 2025
18ebb49
More cleanup
errt May 7, 2025
a88d671
More cleanup
errt May 7, 2025
d26b922
Merge branch 'develop' into feature/TAC2BC
errt May 13, 2025
efe58cc
Update subproject dependencies
errt May 13, 2025
feba49b
Fix type and visibility problems
errt May 15, 2025
54863ee
Cleanup TAC2BC tests
errt May 16, 2025
ba9f139
Merge branch 'develop' into feature/TAC2BC
errt May 16, 2025
5e15b55
Formatting TAC2BC test files
errt May 16, 2025
4473509
Further cleanup of TAC2BC
errt May 16, 2025
f0509e7
Further cleanup of TAC2BC
errt 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
866a17e
Merge branch 'develop' into feature/TAC2BC
errt May 19, 2025
abb5d8f
Add missing headers and files
errt May 19, 2025
9aed83f
Merge branch 'opal_develop' into ba_branch
leraroden Jun 16, 2025
b7ccda0
Replace ObjectType with ClassType
leraroden Jun 16, 2025
2e19b9c
Uncomment processCaughtException()
leraroden Jun 29, 2025
2be43ee
Implement backwards TAC-to-bytecode translation for SourceCode.java
leraroden Aug 2, 2025
051a8de
Implement the backwards logic for variables
leraroden Aug 4, 2025
e23d1c2
Implement the backwards logic for strings and arrays
leraroden Aug 10, 2025
aea3a4e
Add logic for values with cTpe2
leraroden Aug 10, 2025
c085239
Remove unnecessary comments
leraroden Aug 10, 2025
eb82987
Add labels for if/goto conditions and edit the order of instructions …
leraroden Aug 12, 2025
a8fa4b4
Add an implementation for expressions with multiple definition sites.
leraroden Sep 3, 2025
d9b8082
Add bytecode generated by opal backwards compiler and by javac for Ar…
leraroden Sep 3, 2025
4b94810
Merge branch 'develop' into backward-stack-simulation
leraroden Sep 3, 2025
da32955
Implement special handling for array reference used by ArrayLoad
leraroden Sep 7, 2025
68dc723
Edit processPrefixExpr() to backwards
leraroden Sep 7, 2025
5b1fb1b
Add:
leraroden Oct 21, 2025
584bc14
Add readable bytecode for for-loops & arrays
leraroden Oct 21, 2025
dc1fed2
Add delayedVisitStmt, end node for NewExpr and readable bytecode for …
leraroden Oct 21, 2025
3c6c3a5
Load a variable if its def-site is negative (i.e. method parameter)
leraroden Oct 23, 2025
a3ed04e
Add a load of method parameters for processCheckCast() and processPut…
leraroden Oct 23, 2025
3eb3cdd
Add variable load for other expr and stmt processes
leraroden Oct 25, 2025
db2c317
Edit loop strategy
leraroden Oct 27, 2025
db7d114
Set delayStmtVisit on true for ArrayLoad, ArrayStore and If
leraroden Oct 28, 2025
32b0439
Merge branch 'loops-backward-stack-simulation' into backward-stack-si…
leraroden Oct 28, 2025
823dc2a
Add small changes after merge and some readable bytecode (If and Meth…
leraroden Oct 28, 2025
e3db6e1
Remove old bytecode folders
leraroden Oct 28, 2025
70ce389
Revert "Remove old bytecode folders"
leraroden Oct 28, 2025
80eff43
Remove old bytecode folders
leraroden Oct 28, 2025
8f958de
Add an end node marker strategy
leraroden Nov 2, 2025
e3432ea
Rename methods in tacContext and add small fix in processBinaryExpr()
leraroden Nov 28, 2025
a196294
Remove unnecessary files
leraroden Nov 28, 2025
f07a3aa
Merge branch 'opal_develop' into backward-stack-simulation
leraroden Mar 2, 2026
ebe4aee
Fix Scala 3 issues
leraroden Mar 2, 2026
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: 5 additions & 1 deletion OPAL/ProjectDependencies.mmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
flowchart BT
Framework[Framework<br>framework]
ThreeAddressCode[Three Address Code<br>tac]
ThreeAddressCode2Bytecode[TAC2BC<br>tac2bc]
APK[APK<br>apk]
DependenciesExtractionLibrary[Dependencies Extraction Library<br>de]
IDE[IDE<br>ide]
Expand All @@ -24,9 +25,12 @@ flowchart BT
Framework --> BytecodeAssembler
Framework --> ArchitectureValidation
Framework --> ThreeAddressCode
Framework --> ThreeAddressCode2Bytecode
ThreeAddressCode --> AbstractInterpretationFramework
ThreeAddressCode --> IFDS
APK --> ThreeAddressCode
ThreeAddressCode2Bytecode --> ThreeAddressCode
ThreeAddressCode2Bytecode --> BytecodeAssembler
DependenciesExtractionLibrary --> AbstractInterpretationFramework
IDE --> StaticAnalysisInfrastructure
IDE --> BytecodeRepresentation
Expand All @@ -42,4 +46,4 @@ flowchart BT
BytecodeAssembler --> AbstractInterpretationFramework
ArchitectureValidation --> DependenciesExtractionLibrary
Demos --> Framework
BytecodeCreator --> BytecodeDisassembler
BytecodeCreator --> BytecodeDisassembler
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
}
}
Loading
Loading