Preview

Моделирование и анализ информационных систем

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

Интеграция семантических верификаторов в компиляторы языка Java

Аннотация

Рассматривается способ статического семантического анализа исходных кодов программы на стадии ее компиляции с целью повышения качества исходного кода. В качестве способа реализации такого семантического анализа предлагается унифицированная интеграция в компиляторы языка Java для получения полного доступа к синтаксическому дереву (AST) компилируемых программ после этапа семантического анализа. Для обеспечения унификации реализованы общие интерфейсы для работы с синтаксическим деревом и адаптеры к реализациям синтаксических деревьев в компиляторах Sun/Oracle javac и Eclipse Compiler for Java (ecj). Выбранный способ обеспечил прозрачную интеграцию со средами разработки Eclipse и Netbeans без необходимости установки каких-либо расширений данных сред. Разработанный метод демонстрируется на некоторых примерах верификации программ.

Об авторах

А. В. Клепинин
Уральский Государственный Университет им.А.М.Горького
Россия


А. А. Мелентьев
Уральский Государственный Университет им.А.М.Горького
Россия


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

1. PMD, java source code verificator. [Электрон. ресурс]. Режим доступа: http://pmd.sourceforge.net/.

2. Findbugs, java byte code verificator. [Электрон. ресурс]. Режим доступа: http://findbugs.sourceforge.net/.

3. Ayewah N., Pugh W., Morgenthaler J. D., Penix J., and Zhou Y. Using findbugs on production software // OOPSLA '07: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (New York, NY, USA). ACM, 2007. P. 805-806.

4. Klaus H. and Grigore R. An overview of the runtime verification tool Java PathExplorer // Formal Methods in System Design. 2004. Vol. 24, No. 2. P. 189-215.

5. JSR269: Pluggable Annotation Processing API. [Электрон. ресурс]. Режим доступа: http://jcp.org/en/jsr/detail?id=269.

6. Project lombok. [Электрон. ресурс]. Режим доступа: http://projectlombok.org/.

7. Papi M. M., Ali M., Correa Jr. T. L., Perkins J. H., and Ernst M. D. , Practical pluggable types for Java // ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, (Seattle,WA, USA). 2008. July 22-24. P. 201-212.

8. Universal AST project for Checker Framework. [Электрон. ресурс]. Режим доступа: http://code.google.com/p/checker-framework/wiki/Ideas#Universal_AST.

9. Java Unified Abstract Syntax Tree project. [Электрон. ресурс]. Режим доступа: http://bitbucket.org/amelentev/juast/.

10. java.util.ServiceLoader. [Электрон. ресурс]. Режим доступа: http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html.


Рецензия

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


Клепинин А.В., Мелентьев А.А. Интеграция семантических верификаторов в компиляторы языка Java. Моделирование и анализ информационных систем. 2010;17(4):70-77.

For citation:


Klepinin A.V., Melentyev A.A. Integration of semantic verication into Java compilers. Modeling and Analysis of Information Systems. 2010;17(4):70-77. (In Russ.)

Просмотров: 544


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


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)