Preview

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

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

«Ленивый» анализ исходного кода на языках С и С++

https://doi.org/10.15514/ISPRAS-2012-23-8

Полный текст:

Аннотация

В статье описывается метод построения синтаксического анализатора, позволяющий существенно сократить требуемые для анализа ресурсы. Метод основан на том факте, что каждый исходный файл подключает множество заголовков, из которых используется лишь небольшое количество определений. Разбор определений из заголовков можно пропускать до момента непосредственного обращения к ним, таким образом, неиспользуемые определения анализироваться не будут. Отличительной особенностью метода является необходимость внесения лишь небольшого количества изменений в существующий парсер. Метод реализован в статическом анализаторе Klocwork Insight.

Об авторах

В. О. Савицкий
ИСП РАН
Россия


Д. В. Сидоров
ИСП РАН
Россия


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

1. http://www.easterbrook.ca/steve/?p=694

2. А. Аветисян, А. Белеванцев, А. Бородин, В. Несов. Использование статического анализа для поиска уязвимостей и критических ошибок в исходном коде программ. Труды ИСП РАН, том 21, с.23-38, 2011

3. Савицкий В.О., Сидоров Д.В., Инкрементальный анализ исходного кода на языках C/C++. Труды ИСП РАН, том 22, с. 119-129, 2012

4. http://msdn.microsoft.com/en-us/library/x5w1yety%28v=vs.71%29.aspx

5. Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986


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


Савицкий В.О., Сидоров Д.В. «Ленивый» анализ исходного кода на языках С и С++. Труды Института системного программирования РАН. 2012;23. https://doi.org/10.15514/ISPRAS-2012-23-8

For citation:


Savitsky V.O., Sidorov D.V. Lazy source code analysis for C/C++ languages. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2012;23. (In Russ.) https://doi.org/10.15514/ISPRAS-2012-23-8

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


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


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