Preview

Труды Института системного программирования РАН

Расширенный поиск

Анализ программ на языке Java в инструменте Svace

https://doi.org/10.15514/ISPRAS-2017-29(3)-5

Аннотация

В статье описываются работы, выполненные для поддержки анализа программ на языке Java в статическом анализаторе Svace, разрабатываемом в ИСП РАН. Приводятся методы построения внутреннего представления для анализа Java, включая изменения в компоненте контролируемой сборки, доработки компилятора OpenJDK, трансляцию байткода Java в окончательное представление для анализа. Описываются особенности анализа Java-программ - алгоритм девиртуализации, спецификации методов стандартной библиотеки Java, некоторые специфичные детекторы. Представлены результаты выполнения анализа для исходного кода операционной системы Android 5.

Об авторах

А. П. Меркулов
Институт системного программирования РАН
Россия


С. А. Поляков
Институт системного программирования РАН
Россия


А. А. Белеванцев
Институт системного программирования РАН; Московский государственный университет имени М.В. Ломоносова
Россия


Список литературы

1. В.П. Иванников, А.А. Белеванцев, А.Е. Бородин, В.Н. Игнатьев, Д.М. Журихин, А.И. Аветисян, М.И. Леонов. Статический анализатор Svace для поиска дефектов в исходном коде программ. Труды ИСП РАН, том 26, 2014 г., стр 231–250. DOI: 10.15514/ISPRAS-2014-26(1)-7.

2. А.Е. Бородин, А.А. Белеванцев. Статический анализатор Svace как коллекция анализаторов разных уровней сложности, том 27, вып. 6, 2015 г., стр. 111-134. DOI: 10.15514/ISPRAS-2015-27(6)-8.

3. Спецификация виртуальной машины Java. http://docs.oracle.com/javase/specs/jvms/se7/html/, дата обращения 20.06.2017

4. Компилятор Javac. http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html, дата обращения 20.06.2017

5. Программный интерфейс компиляции в Java. http://openjdk.java.net/groups/compiler/guide/compilerAPI.html, дата обращения 20.06.2017

6. Система сборки Ant. http://ant.apache.org/, дата обращения 20.06.2017

7. Система сборки Maven. https://maven.apache.org/, дата обращения 20.06.2017

8. ОС Android. https://source.android.com/, дата обращения 20.06.2017

9. Компилятор Eclipse ECJ. https://mvnrepository.com/artifact/org.eclipse.jdt.core.compiler/ecj, дата обращения 20.06.2017

10. Инструментация байткода Java через java-агенты. https://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html, дата обращения 20.06.2017


Рецензия

Для цитирования:


Меркулов А.П., Поляков С.А., Белеванцев А.А. Анализ программ на языке Java в инструменте Svace. Труды Института системного программирования РАН. 2017;29(3):57-74. https://doi.org/10.15514/ISPRAS-2017-29(3)-5

For citation:


Merkulov A.P., Polyakov S.A., Belevantsev A.A. Supporting Java programming in the Svace static analyzer. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2017;29(3):57-74. (In Russ.) https://doi.org/10.15514/ISPRAS-2017-29(3)-5



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)