Skip to content

Commit 5891e7d

Browse files
author
Dominik Helm
committed
New publications structure
1 parent afd1b49 commit 5891e7d

File tree

2 files changed

+43
-19
lines changed

2 files changed

+43
-19
lines changed

Publications.html

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,50 @@ <h2><a href="/"><img src="/OPALLogo.png" width="25" height="25">&nbsp;OPAL Proje
8484
<h1 id="publications">Publications</h1>
8585
<p>This page lists publications around OPAL, both <a href="#core-papers">core contributions</a> to the framework as well as <a href="#research-using-opal">further research</a> that uses OPAL.
8686
There are also links to <a href="#related-presentations">related presentations</a> below.</p>
87+
<h2 id="citing-opal">Citing OPAL</h2>
88+
<p>If you are using OPAL for your research, please cite</p>
89+
<blockquote>
90+
<p><a href="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><a href="/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><a href="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><a href="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>
87112
<h2 id="core-papers">Core Papers</h2>
88113
<blockquote>
114+
<p><a href="/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>
89131
<p><a href="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 />
90132
ESOP 2024<br />
91133
<em>Sven Keidel, Dominik Helm, Tobias Roth, Mira Mezini</em></p>
@@ -108,7 +150,6 @@ <h2 id="core-papers">Core Papers</h2>
108150
<p><a href="https://2020.esec-fse.org/details/fse-2020-papers/191"><strong>Modular Collaborative Program Analysis in OPAL</strong></a><br />
109151
ESEC/FSE 2020<br />
110152
<em>Dominik Helm, Florian Kübler, Michael Reif, Michael Eichberg, Mira Mezini</em></p>
111-
<p><strong>If you use OPAL, please cite this publication!</strong></p>
112153
<details><summary>Abstract</summary>
113154
Current approaches combining multiple static analyses deriving different, independent properties focus either on modularity or performance.
114155
Whereas declarative approaches facilitate modularity and automated, analysis-independent optimizations, imperative approaches foster manual, analysis-specific optimizations.
@@ -212,23 +253,6 @@ <h2 id="research-using-opal">Research Using OPAL</h2>
212253
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>
213254
</blockquote>
214255
<blockquote>
215-
<p><a href="/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>
232256
<p><a href="/articles/[email protected]"><strong>AXA: Cross-Language Analysis through Integration of Single-Language Analyses</strong></a><br />
233257
ASE 2024<br />
234258
<em>Tobias Roth, Julius Näumann, Dominik Helm, Sven Keidel, Mira Mezini</em></p>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ <h1 id="opal">OPAL</h1>
9696
Both versions are found on <a href="https://search.maven.org/#search%7Cga%7C1%7Cde.opal-project">Maven Central</a>.
9797
Look <a href="/UsingOPAL.html">here</a> for information on how to use OPAL in your project.</p>
9898
<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 <a href="/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 <a href="/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 <a href="/Publications.html">here</a>.</p>
100100
<h3 id="opal-java-bytecode-disassembler">OPAL Java Bytecode Disassembler</h3>
101101
<p>OPAL's <a href="DeveloperTools.html">Java Bytecode Disassembler</a> disassembles your Java bytecode.
102102
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

Comments
 (0)