Christian Wimmer

Publications

Papers (refereed)

49 Christian Wimmer, Codrut Stancu, Peter Hofer, Vojin Jovanovic, Paul Wögerer, Peter B. Kessler, Oleg Pliss, Thomas Würthinger: Initialize Once, Start Fast: Application Initialization at Build Time. In Proceedings of the ACM on Programming Languages., volume 3, issue OOPSLA, article 184. ACM Press, 2019. doi:10.1145/3360610
48 Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöß, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, Matthias Grimmer: Practical Partial Evaluation for High-performance Dynamic Language Runtimes. In Proceedings of the Conference on Programming Language Design and Implementation, pages 662–676. ACM Press, 2017. doi:10.1145/3062341.3062381
47 Christian Wimmer, Vojin Jovanovic, Erik Eckstein, Thomas Würthinger: One Compiler: Deoptimization to Optimized Code. In Proceedings of the International Conference on Compiler Construction, pages 55–64. ACM Press, 2017. doi:10.1145/3033019.3033025
46 Matthias Grimmer, Stefan Marr, Mario Kahlhofer, Christian Wimmer, Thomas Würthinger, Hanspeter Mössenböck: Applying Optimizations for Dynamically-typed Languages to Java. In Proceedings of the International Conference on Managed Languages and Runtimes, pages 12–22. ACM Press, 2017. doi:10.1145/3132190.3132202
45 Manuel Rigger, Matthias Grimmer, Christian Wimmer, Thomas Würthinger, Hanspeter Mössenböck: Bringing Low-level Languages to the JVM: Efficient Execution of LLVM IR on Truffle. In Proceedings of the Workshop on Virtual Machines and Intermediate Languages, pages 6–15. ACM Press, 2016. doi:10.1145/2998415.2998416
44 David Leopoldseder, Lukas Stadler, Christian Wimmer, Hanspeter Mössenböck: Java-to-JavaScript Translation via Structured Control Flow Reconstruction of Compiler IR. In Proceedings of the Symposium on Dynamic Languages, pages 91–103. ACM Press, 2015. doi:10.1145/2816707.2816715
43 Doug Simon, Christian Wimmer, Bernhard Urban, Gilles Duboscq, Lukas Stadler, Thomas Würthinger: Snippets: Taking the High Road to a Low Level. In ACM Transactions on Architecture and Code Optimization, volume 12, issue 2, article 20. ACM Press, 2015. doi:10.1145/2764907
42 Codrut Stancu, Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz: Safe and Efficient Hybrid Memory Management for Java. In Proceedings of the International Symposium on Memory Management, pages 81–92. ACM Press, 2015. doi:10.1145/2754169.2754185
41 Codrut Stancu, Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz: Comparing Points-to Static Analysis with Runtime Recorded Profiling Data. In Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, pages 157–168. ACM Press, 2014. doi:10.1145/2647508.2647524
40 Christian Humer, Christian Wimmer, Christian Wirth, Andreas Wöß, Thomas Würthinger: A Domain-Specific Language for Building Self-Optimizing AST Interpreters. In Proceedings of the International Conference on Generative Programming: Concepts and Experiences, pages 123–132. ACM Press, 2014. doi:10.1145/2775053.2658776
39 Christian Häubl, Christian Wimmer, Hanspeter Mössenböck: Trace Transitioning and Exception Handling in a Trace-based JIT Compiler for Java. In ACM Transactions on Architecture and Code Optimization, volume 11, issue 1, article 6. ACM Press, 2014. doi:10.1145/2579673
38 Christian Wimmer, Michael Haupt, Michael L. Van De Vanter, Mick Jordan, Laurent Daynès, Douglas Simon: Maxine: An Approachable Virtual Machine For, and In, Java. In ACM Transactions on Architecture and Code Optimization, volume 9, issue 4, article 30. ACM Press, 2013. doi:10.1145/2400682.2400689
37 Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko: One VM to Rule Them All. In Proceedings of the International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, pages 187–204. ACM Press, 2013. doi:10.1145/2509578.2509581
36 Christian Häubl, Christian Wimmer, Hanspeter Mössenböck: Context-Sensitive Trace Inlining for Java. In Computer Languages, Systems & Structures, volume 39, issue 4, pages 123–141. Elsevier, 2013. doi:10.1016/j.cl.2013.04.002
35 Christian Häubl, Christian Wimmer, Hanspeter Mössenböck: Deriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-Time Compiler. In Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, pages 1–12. ACM Press, 2013. doi:10.1145/2500828.2500829
34 Gilles Duboscq, Thomas Würthinger, Lukas Stadler, Christian Wimmer, Doug Simon, Hanspeter Mössenböck: An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler. In Proceedings of the ACM Workshop on Virtual Machines and Intermediate Languages, pages 1–10. ACM Press, 2013. doi:10.1145/2542142.2542143
33 Gilles Duboscq, Lukas Stadler, Thomas Würthinger, Doug Simon, Christian Wimmer, Hanspeter Mössenböck: Graal IR: An Extensible Declarative Intermediate Representation. In Proceedings of the Asia-Pacific Programming Languages and Compilers Workshop, 2013.
32 Sameer Kulkarni, John Cavazos, Christian Wimmer, Douglas Simon: Automatic Construction of Inlining Heuristics using Machine Learning. In Proceedings of the International Symposium on Code Generation and Optimization. IEEE, 2013. doi:10.1109/CGO.2013.6495004
31 Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer: Self-Optimizing AST Interpreters. In Proceedings of the Dynamic Languages Symposium, pages 73–82. ACM Press, 2012. doi:10.1145/2384577.2384587
30 Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz: Fine-Grained Modularity and Reuse of Virtual Machine Components. In Proceedings of the International Conference on Aspect-oriented Software Development, pages 203–213. ACM Press, 2012. doi:10.1145/2162049.2162073
29 Christian Häubl, Christian Wimmer, Hanspeter Mössenböck: Evaluation of Trace Inlining Heuristics for Java. In Proceedings of the ACM Symposium on Applied Computing, pages 1871–1876. ACM Press, 2012. doi:10.1145/2245276.2232084
28 Mason Chang, Bernd Mathiske, Edwin Smith, Avik Chaudhuri, Andreas Gal, Michael Bebenita, Christian Wimmer, Michael Franz: The Impact of Optional Type Information on JIT Compilation of Dynamically Typed Languages. In Proceedings of the Dynamic Languages Symposium, pages 13–24. ACM Press, 2011. doi:10.1145/2047849.2047853
27 Thomas Würthinger, Christian Wimmer, Lukas Stadler: Unrestricted and Safe Dynamic Code Evolution for Java. In Science of Computer Programming, volume 78, issue 5, pages 481–498. Elsevier, 2013. doi:10.1016/j.scico.2011.06.005
26 Thomas Würthinger, Danilo Ansaloni, Walter Binder, Christian Wimmer, Hanspeter Mössenböck: Safe and Atomic Run-time Code Evolution for Java and its Application to Dynamic AOP. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 825–844. ACM Press, 2011. doi:10.1145/2048066.2048129
25 Babak Salamat, Todd Jackson, Gregor Wagner, Christian Wimmer, Michael Franz: Run-Time Defense against Code Injection Attacks using Replicated Execution. In IEEE Transactions on Dependable and Secure Computing, volume 8, issue 4, pages 588–601. IEEE Computer Society, 2011. doi:10.1109/TDSC.2011.18
24 Gregor Wagner, Andreas Gal, Christian Wimmer, Brendan Eich, Michael Franz: Compartmental Memory Management in a Modern Web Browser. In Proceedings of the International Symposium on Memory Management, pages 119–128. ACM Press, 2011. doi:10.1145/1993478.1993496
23 Christian Wimmer, Hanspeter Mössenböck: Automatic Feedback-Directed Object Fusing. In ACM Transactions on Architecture and Code Optimization, volume 7, issue 2, article 7. ACM Press, 2010. doi:10.1145/1839667.1839669
22 Christian Häubl, Christian Wimmer, Hanspeter Mössenböck: Compact and Efficient Strings for Java. In Science of Computer Programming, volume 75, issue 11, pages 1077–1094. Elsevier, 2010. doi:10.1016/j.scico.2010.04.010
21 Michael Bebenita, Mason Chang, Gregor Wagner, Andreas Gal, Christian Wimmer, Michael Franz: Trace-Based Compilation in Execution Environments without Interpreters. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 59–68. ACM Press, 2010. doi:10.1145/1852761.1852771
20 Thomas Würthinger, Christian Wimmer, Lukas Stadler: Dynamic Code Evolution for Java. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 10–19. ACM Press, 2010. doi:10.1145/1852761.1852764
19 Lukas Stadler, Thomas Würthinger, Christian Wimmer: Efficient Coroutines for the Java Platform. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 20–28. ACM Press, 2010. doi:10.1145/1852761.1852765
18 Christian Wimmer, Michael Franz: Linear Scan Register Allocation on SSA Form. In Proceedings of the International Symposium on Code Generation and Optimization, pages 170–179. ACM Press, 2010. doi:10.1145/1772954.1772979
17 Todd Jackson, Babak Salamat, Gregor Wagner, Christian Wimmer, Michael Franz: On the Effectiveness of Multi-Variant Program Execution for Vulnerability Detection and Prevention. In Proceedings of the International Workshop on Security Measurements and Metrics, article 7. ACM Press, 2010. doi:10.1145/1853919.1853929
16 Todd Jackson, Christian Wimmer, Michael Franz: Multi-Variant Program Execution for Vulnerability Detection and Analysis. In Proceedings of the Workshop on Cyber Security and Information Intelligence Research, article 38. ACM Press, 2010. doi:10.1145/1852666.1852708
15 Karthikeyan Manivannan, Christian Wimmer, Michael Franz: Decentralized Information Flow Control on a Bare-Metal JVM. In Proceedings of the Workshop on Cyber Security and Information Intelligence Research, article 64. ACM Press, 2010. doi:10.1145/1852666.1852738
14 Alexander Yermolovich, Christian Wimmer, Michael Franz: Optimization of Dynamic Languages Using Hierarchical Layering of Virtual Machines. In Proceedings of the Dynamic Languages Symposium, pages 79–88. ACM Press, 2009. doi:10.1145/1640134.1640147
13 Christian Wimmer, Marcelo S. Cintra, Michael Bebenita, Mason Chang, Andreas Gal, Michael Franz: Phase Detection using Trace Compilation. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 172–181. ACM Press, 2009. doi:10.1145/1596655.1596683
12 Lukas Stadler, Christian Wimmer, Thomas Würthinger, Hanspeter Mössenböck, John Rose: Lazy Continuations for Java Virtual Machines. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 143–152. ACM Press, 2009. doi:10.1145/1596655.1596679
11 Thomas Würthinger, Christian Wimmer, Hanspeter Mössenböck: Array Bounds Check Elimination in the Context of Deoptimization. In Science of Computer Programming, volume 74, issue 5–6, pages 279–295. Elsevier, 2009. doi:10.1016/j.scico.2009.01.002
10 Christoph Kerschbaumer, Gregor Wagner, Christian Wimmer, Andreas Gal, Christian Steger, Michael Franz: SlimVM: A Small Footprint Java Virtual Machine for Connected Embedded Systems. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 133–142. ACM Press, 2009. doi:10.1145/1596655.1596678
9 Mason Chang, Edwin Smith, Rick Reitmaier, Michael Bebenita, Andreas Gal, Christian Wimmer, Brendan Eich, Michael Franz: Tracing for Web 3.0 - Trace Compilation for the Next Generation Web Applications. In Proceedings of the International Conference on Virtual Execution Environments, pages 71–80. ACM Press, 2009. doi:10.1145/1508293.1508304
8 Thomas Kotzmann, Christian Wimmer, Hanspeter Mössenböck, Thomas Rodriguez, Kenneth Russell, David Cox: Design of the Java HotSpot™ Client Compiler for Java 6. In ACM Transactions on Architecture and Code Optimization, volume 5, issue 1, article 7. ACM Press, 2008. doi:10.1145/1369396.1370017
7 Christian Häubl, Christian Wimmer, Hanspeter Mössenböck: Optimized Strings for the Java HotSpot™ VM. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 105–114. ACM Press, 2008. Best paper award. doi:10.1145/1411732.1411747
6 Christian Wimmer, Hanspeter Mössenböck: Automatic Array Inlining in Java Virtual Machines. In Proceedings of the International Symposium on Code Generation and Optimization, pages 14–23. ACM Press, 2008. doi:10.1145/1356058.1356061
5 Thomas Würthinger, Christian Wimmer, Hanspeter Mössenböck: Visualization of Program Dependence Graphs. In Proceedings of the International Conference on Compiler Construction, LNCS 4959, pages 193–196. Springer-Verlag, 2008. doi:10.1007/978-3-540-78791-4_13
4 Thomas Würthinger, Christian Wimmer, Hanspeter Mössenböck: Array Bounds Check Elimination for the Java HotSpot™ Client Compiler. In Proceedings of the International Conference on Principles and Practice of Programming in Java, pages 125–133. ACM Press, 2007. doi:10.1145/1294325.1294343
3 Christian Wimmer, Hanspeter Mössenböck: Automatic Feedback-Directed Object Inlining in the Java HotSpot™ Virtual Machine. In Proceedings of the International Conference on Virtual Execution Environments, pages 12–21. ACM Press, 2007. doi:10.1145/1254810.1254813
2 Christian Wimmer, Hanspeter Mössenböck: Automatic Object Colocation Based on Read Barriers. In Proceedings of the Joint Modular Languages Conference, LNCS 4228, pages 326–345. Springer-Verlag, 2006. doi:10.1007/11860990_20
1 Christian Wimmer, Hanspeter Mössenböck: Optimized Interval Splitting in a Linear Scan Register Allocator. In Proceedings of the International Conference on Virtual Execution Environments, pages 132–141. ACM Press, 2005. doi:10.1145/1064979.1064998

Books and Book Chapters

3 Todd Jackson, Babak Salamat, Andrei Homescu, Karthikeyan Manivannan, Gregor Wagner, Andreas Gal, Stefan Brunthaler, Christian Wimmer, Michael Franz: Compiler-Generated Software Diversity. In Sushil Jajodia, Anup Ghosh, Vipin Swarup, Cliff Wang, X. Sean Wang (Editors), Moving Target Defense: Creating Asymmetric Uncertainty for Cyber Threats. Advances in Information Security 54, Springer-Verlag, 2011. ISBN: 978-1-4614-0976-2 doi:10.1007/978-1-4614-0977-9_4
2 Christian Wimmer, Christian Probst: Proceedings of the International Conference on the Principles and Practice of Programming in Java. ACM Press, 2011. ISBN: 978-1-4503-0935-6
1 Christian Wimmer: Automatic Object Inlining in a Java Virtual Machine. Schriftenreihe der Johannes Kepler Universität Linz, Reihe C, Band 57. Trauner Verlag, 2008. ISBN: 978-3-85499-417-6

Patents

1 Thomas Wuerthinger, Douglas Norman Simon, Christian Wimmer, Lukas Stadler, Gilles Marie Duboscq: Self-optimizing interpreter and snapshot compilation. US patent 8930920, issued January 6, 2015.

Theses

2 Christian Wimmer: Automatic Object Inlining in a Java Virtual Machine. PhD thesis, Institute for System Software, Johannes Kepler University Linz, 2008.
1 Christian Wimmer: Linear Scan Register Allocation for the Java HotSpot™ Client Compiler. Master's thesis, Institute for System Software, Johannes Kepler University Linz, 2004.