Исследовательская группа

Лаборатория языковых инструментов

Преобразование приложений в нативно исполняемый образ в проекте GraalVM

March 15

 

GraalVM — виртуальная машина, способная выполнять в общей среде программные компоненты, написанные на разных языках. В состав проекта входит утилита Native Image, предназначенная для выделения приложения из среды и преобразования его в нативно исполняемый образ.

В результате приложение мгновенно стартует и потребляет существенно меньше ресурсов.Мы рассмотрим подробности реализации этой утилиты, ее ограничения и особенности в сравнении с аналогичными средствами других виртуальных машин.

Материалы к докладу:

1. D.G. Bobrow, D.L. Murphy, and W. Teitelman. The BBN Lisp System Reference Manual. 1969.
2. A. D. Falkoff and K. E. Iverson. The Design of APL. IBM Journal of Research and Development 17(4), 1973.
3. John M. Chambers. Software for Data Analysis: Programming with R. Springer Publishing Company, Incorporated, 2008.
4. Daniel H. H. Ingalls. The Evolution of the Smalltalk Virtual Machine. In Smalltalk-80: Bits of History, Words of Advice. Addison-Wesley, 1983.
5. David Ungar. Annotating Objects for Transport to Other Worlds. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, 1995.
6. Баранов С. Н., Ноздрунов Н. Р. Язык Форт и его реализации. Машиностроение, 1988.
7. Nik Shaylor, Douglas N. Simon, William R. Bush. A Java Virtual Machine Architecture for Very Small Devices. LCTES'03, 2003.
8. Ole Agesen and David Ungar. Sifting out the Gold: Delivering Compact Applications from an Exploratory Object-Oriented Programming Environment. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, 1994.
9. Frank Tip, Chris Laffra, Peter F. Sweeney, and David Streeter. Practical Experience with an Application Extractor for Java. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications. 1995.
10. B.Calder and D.Grunwald. Reducing indirect function call overhead in C++ programs. POPL'94.
11. J.Dean, D.Grove and C.Chambers. Optimization of object-oriented programs using static class hierarchy analysis. ECOOP'95.
12. D.Bacon and P.Sweeney. Fast static analysis of C++ virtual function calls. OOPSLA'96.
13. Frank Tip and Jens Palsberg. Scalable propagation-based call graph construction algorithms. OOPSLA'00.
14. Michael Hind. Pointer Analysis: Haven't We Solved This Problem Yet? In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, 2001.
15. Davy Landman, Alexander Serebrenik, Jurgen J. Vinju. Challenges for Static Analysis of Java Reflection - Literature Review and Empirical Study. IEEE/ACM 39th International Conference on Software Engineering, 2017.
16. Eric Bodden, Andreas Sewe, Jan Sinschek, Hela Oueslati and Mira Mezini. Taming Reflection. Aiding Static Analysis in the Presence of Reflection and Custom Class Loaders. ICSE'11, May 2011.
17. Christian Wimmer, Codrut Stancu, Peter Hofer, Vojin Jovanovic, Paul Wogerer, Peter B. Kessler, Oleg Pliss, Thomas Wurthinger. Initialize Once, Start Fast: Application Initialization at Build Time. In Proceedings of the ACM on Programming Languages, October 2019.
18. Artur Pilipenko, Oleg Pliss. Redundancy Elimination in the Presence of Split Class Initialization. ManLang'18.
19. David Ehringer. The Dalvik Virtual Machine Architecture, 2010.
20. Grzegorz Czajkowski. Application Isolation in the Java Virtual Machine. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, 2000.
21. Grzegorz Czajkowski, Laurent Daynes, and Nathaniel Nystrom. Code Sharing Among Virtual Machines. In Proceedings of the European Conference on Object-Oriented Programming, 2002.
22. Rodrigo Bruno and Paulo Ferreira. ALMA: GC-assisted JVM Live Migration for Java Server Applications. In Proceedings of the 17th International Middleware Conference, 2016.
23. www.graalvm.org
24. www.criu.org

Семинар состоится онлайн в 17:30, ссылка на встречу https://meet.google.com/myu-dhmz-gvu.