Abstract

Querying source code helps developers to discover code fragments of interest and to determine their interrelations with each other. Different approaches exist to execute source code queries automatically. Some of them are based on a rather simple text pattern matching. More advanced approaches provide abilities to use natural languages for queries and perform matching on the basis of a formal program representation. We suggest using aspect-oriented programming for querying source code and consider advantages and disadvantages of this approach. The paper introduces main conceptions of aspect-oriented programming and briefly presents C Instrumentation Framework – an aspect-oriented programming implementation for the C programming language. We slightly extended C Instrumentation Framework so that it could execute source code queries written in form of aspects. The paper gives several examples of utilization of the suggested approach in particular for collecting information required for generating environment models for device drivers in the Linux Driver Verification project. The suggested approach is inferior to special querying tools in making queries by control and data flows. But it is simple in implementation and allows one to use traditional means of aspect-oriented programming for developing and executing source code queries.

Highlights

  • ВведениеПри разработке и поддержке программ важными задачами являются обнаружение искомых фрагментов кода и определение их взаимоотношений друг с другом.

  • С целью обнаружения искомых фрагментов кода и определения их взаимоотношений друг с другом используются запросы по исходному коду программ.

  • Все возможные запросы по исходному коду программ могут быть условно отнесены к одному из трех типов [1]: Запросы по общей структуре программ.

Read more

Summary

Введение

При разработке и поддержке программ важными задачами являются обнаружение искомых фрагментов кода и определение их взаимоотношений друг с другом. С целью обнаружения искомых фрагментов кода и определения их взаимоотношений друг с другом используются запросы по исходному коду программ. Все возможные запросы по исходному коду программ могут быть условно отнесены к одному из трех типов [1]: Запросы по общей структуре программ. Делать запросы по исходному коду вручную для больших программ достаточно трудоемко, поскольку объем исходного кода очень велик, а взаимоотношения между различными его частями бывают очень сложными. В статье предложен подход к написанию и выполнению запросов по исходному коду программ на основе аспектно-ориентированного программирования (АОП). В разделе 3 кратко рассматриваются возможности C Instrumentation Framework, одной из реализаций АОП для языка программирования Си. В разделе 4 обсуждается возможность использования АОП для выполнения запросов по исходному коду программ. В заключении подводятся итоги работы и рассматриваются направления дальнейшего развития

Основные понятия аспектно-ориентированного программирования
C Instrumentation Framework - реализация АОП для языка программирования Си
Существующие подходы
Заключение

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.