You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Publications.html
+42-18Lines changed: 42 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -84,8 +84,50 @@ <h2><a href="/"><img src="/OPALLogo.png" width="25" height="25"> OPAL Proje
84
84
<h1id="publications">Publications</h1>
85
85
<p>This page lists publications around OPAL, both <ahref="#core-papers">core contributions</a> to the framework as well as <ahref="#research-using-opal">further research</a> that uses OPAL.
86
86
There are also links to <ahref="#related-presentations">related presentations</a> below.</p>
87
+
<h2id="citing-opal">Citing OPAL</h2>
88
+
<p>If you are using OPAL for your research, please cite</p>
89
+
<blockquote>
90
+
<p><ahref="https://2020.esec-fse.org/details/fse-2020-papers/191"><strong>Modular Collaborative Program Analysis in OPAL</strong></a><br/>
91
+
ESEC/FSE 2020<br/>
92
+
<em>Dominik Helm, Florian Kübler, Michael Reif, Michael Eichberg, Mira Mezini</em></p>
93
+
</blockquote>
94
+
<p>If you are using OPAL's call graphs, you can also cite</p>
95
+
<blockquote>
96
+
<p><ahref="/articles/[email protected]"><strong>Unimocg: Modular Call-Graph Algorithms for Consistent Handling of Language Features</strong></a><br/>
97
+
ISSTA 2024<br/>
98
+
<em>Dominik Helm, Tobias Roth, Sven Keidel, Michael Reif, Mira Mezini</em></p>
99
+
</blockquote>
100
+
<p>You can cite this older publication if you are relying on OPAL's bytecode parsing, instrumentation, and generation capabilities</p>
101
+
<blockquote>
102
+
<p><ahref="https://doi.acm.org/10.1145/2614628.2614630"><strong>A software product line for static analyses: the OPAL framework</strong></a><br/>
103
+
SOAP 2014<br/>
104
+
<em>Michael Eichberg, Ben Hermann</em></p>
105
+
</blockquote>
106
+
<p>And this one if you particularly rely on the Three-Address Code</p>
107
+
<blockquote>
108
+
<p><ahref="https://pldi20.sigplan.org/details/SOAP-2020-papers/1"><strong>TACAI: An Intermediate Representation based on Abstract Interpretation</strong></a><br/>
109
+
SOAP 2020<br/>
110
+
<em>Michael Reif, Florian Kübler, Dominik Helm, Ben Hermann, Michael Eichberg, Mira Mezini</em></p>
111
+
</blockquote>
87
112
<h2id="core-papers">Core Papers</h2>
88
113
<blockquote>
114
+
<p><ahref="/articles/[email protected]"><strong>Unimocg: Modular Call-Graph Algorithms for Consistent Handling of Language Features</strong></a><br/>
115
+
ISSTA 2024<br/>
116
+
<em>Dominik Helm, Tobias Roth, Sven Keidel, Michael Reif, Mira Mezini</em></p>
117
+
<details><summary>Abstract</summary>
118
+
Traditional call-graph construction algorithms conflate the computation of possible runtime types with the actual resolution of (virtual) calls.
119
+
This tangled design impedes supporting complex language features and APIs and making systematic trade-offs between precision, soundness, and scalability.
120
+
It also impedes implementation of precise downstream analyses that rely on type information.
121
+
<p>To address the problem, we propose Unimocg, a modular architecture for call-graph construction that decouples the computation of type information from resolving calls.
122
+
Due to its modular design, Unimocg can combine a wide range of different call-graph algorithms with algorithm-agnostic modules to support individual language features.
123
+
Moreover, these modules operate at the same precision as the chosen call-graph algorithm with no further effort.
124
+
Additionally, Unimocg allows other analyses to easily reuse type information from the call-graph construction at full precision.</p>
125
+
<p>We demonstrate how Unimocg enables a framework of call-graph algorithms with different precision, soundness, and scalability trade-offs from reusable modules.
126
+
Unimocg currently supports ten call-graph algorithms from vastly different families, such as CHA, RTA, XTA, and <em>k</em>-<em>l</em>-CFA.
127
+
These algorithms show consistent soundness without sacrificing precision or performance.
128
+
We also show how an immutability analysis is improved using Unimocg.</details></p>
129
+
</blockquote>
130
+
<blockquote>
89
131
<p><ahref="https://link.springer.com/chapter/10.1007/978-3-031-57267-8_14"><strong>A Modular Soundness Theory for the Blackboard Analysis Architecture</strong></a><br/>
90
132
ESOP 2024<br/>
91
133
<em>Sven Keidel, Dominik Helm, Tobias Roth, Mira Mezini</em></p>
@@ -212,23 +253,6 @@ <h2 id="research-using-opal">Research Using OPAL</h2>
212
253
With this work, we provide a novel methodology to advance the field of static program analysis as we assess the computation of one of its core data structures—the call graph.</details></p>
213
254
</blockquote>
214
255
<blockquote>
215
-
<p><ahref="/articles/[email protected]"><strong>Unimocg: Modular Call-Graph Algorithms for Consistent Handling of Language Features</strong></a><br/>
216
-
ISSTA 2024<br/>
217
-
<em>Dominik Helm, Tobias Roth, Sven Keidel, Michael Reif, Mira Mezini</em></p>
218
-
<details><summary>Abstract</summary>
219
-
Traditional call-graph construction algorithms conflate the computation of possible runtime types with the actual resolution of (virtual) calls.
220
-
This tangled design impedes supporting complex language features and APIs and making systematic trade-offs between precision, soundness, and scalability.
221
-
It also impedes implementation of precise downstream analyses that rely on type information.
222
-
<p>To address the problem, we propose Unimocg, a modular architecture for call-graph construction that decouples the computation of type information from resolving calls.
223
-
Due to its modular design, Unimocg can combine a wide range of different call-graph algorithms with algorithm-agnostic modules to support individual language features.
224
-
Moreover, these modules operate at the same precision as the chosen call-graph algorithm with no further effort.
225
-
Additionally, Unimocg allows other analyses to easily reuse type information from the call-graph construction at full precision.</p>
226
-
<p>We demonstrate how Unimocg enables a framework of call-graph algorithms with different precision, soundness, and scalability trade-offs from reusable modules.
227
-
Unimocg currently supports ten call-graph algorithms from vastly different families, such as CHA, RTA, XTA, and <em>k</em>-<em>l</em>-CFA.
228
-
These algorithms show consistent soundness without sacrificing precision or performance.
229
-
We also show how an immutability analysis is improved using Unimocg.</details></p>
230
-
</blockquote>
231
-
<blockquote>
232
256
<p><ahref="/articles/[email protected]"><strong>AXA: Cross-Language Analysis through Integration of Single-Language Analyses</strong></a><br/>
233
257
ASE 2024<br/>
234
258
<em>Tobias Roth, Julius Näumann, Dominik Helm, Sven Keidel, Mira Mezini</em></p>
Copy file name to clipboardExpand all lines: index.html
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -96,7 +96,7 @@ <h1 id="opal">OPAL</h1>
96
96
Both versions are found on <ahref="https://search.maven.org/#search%7Cga%7C1%7Cde.opal-project">Maven Central</a>.
97
97
Look <ahref="/UsingOPAL.html">here</a> for information on how to use OPAL in your project.</p>
98
98
<p>In-depth tutorials on developing static analyses with OPAL can be found in the navigation menu on the left, in particular starting with an introduction to <ahref="/tutorial/FixedPointAnalyses.html">writing fixed-point analyses</a>.</p>
99
-
<p>Publications about OPAL's core concepts and about uses of OPAL in scientific research can be found <ahref="/Publications.html">here</a>.</p>
99
+
<p>Publications about OPAL's core concepts and about uses of OPAL in scientific research, and information on <strong>citing OPAL in scientific works</strong> can be found <ahref="/Publications.html">here</a>.</p>
<p>OPAL's <ahref="DeveloperTools.html">Java Bytecode Disassembler</a> disassembles your Java bytecode.
102
102
OPAL can produce the raw bytecode or a more readable three-address code that optionally contains additional information derived from abstract interpretation.
0 commit comments