Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 635043)
Контекстум
Руконтекст антиплагиат система
Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика  / №2 2013

ПОЛУЧЕНИЕ ТИПОВ ДАННЫХ В ЯЗЫКАХ С ДИНАМИЧЕСКОЙ ТИПИЗАЦИЕЙ ДЛЯ СТАТИЧЕСКОГО АНАЛИЗА ИСХОДНОГО КОДА С ПОМОЩЬЮ УНИВЕРСАЛЬНОГО КЛАССОВОГО ПРЕДСТАВЛЕНИЯ (90,00 руб.)

0   0
Первый авторЗубов
АвторыПустыгин А.Н., Старцев Е.В.
Страниц9
ID504681
АннотацияПредлагается подход, позволяющий получить сведения о типах полей классов для объектно-ориентированных языков программирования с динамической типизацией, где эти сведения явно не указаны. В качестве целевого языка выбран Python. Это необходимо для расширения универсального классового промежуточного представления исходного кода. Используя данные о типах, можно будет выполнять более эффективный анализ, например получение связей агрегирования между классами. Для получения типов полей предлагается подход «утиной типизации», использующийся в Python во время исполнения. Для обоснования этого подхода предложена математическая модель, которая описывает типизацию, не накладывая ограничений на конкретный алгоритм поиска «кандидатов» в типы исследуемых полей. Предложена методика тестирования алгоритма на основе динамического анализа, позволяющая оценить его эффективность. Реализованный алгоритм вместе с методикой были проверены на ведущих крупных Python-проектах с открытым исходным кодом
УДК004.41
Зубов, М.В. ПОЛУЧЕНИЕ ТИПОВ ДАННЫХ В ЯЗЫКАХ С ДИНАМИЧЕСКОЙ ТИПИЗАЦИЕЙ ДЛЯ СТАТИЧЕСКОГО АНАЛИЗА ИСХОДНОГО КОДА С ПОМОЩЬЮ УНИВЕРСАЛЬНОГО КЛАССОВОГО ПРЕДСТАВЛЕНИЯ / М.В. Зубов, А.Н. Пустыгин, Е.В. Старцев // Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика .— 2013 .— №2 .— С. 67-75 .— URL: https://rucont.ru/efd/504681 (дата обращения: 04.05.2024)

Предпросмотр (выдержки из произведения)

Компьютерное обеспечение и вычислительная техника УДК 004.41 ББК 32.973.26-018.2 М. В. Зубов, А. Н. Пустыгин, Е. В. Старцев ПОЛУЧЕНИЕ ТИПОВ ДАННЫХ В ЯЗЫКАХ С ДИНАМИЧЕСКОЙ ТИПИЗАЦИЕЙ ДЛЯ СТАТИЧЕСКОГО АНАЛИЗА ИСХОДНОГО КОДА С ПОМОЩЬЮ УНИВЕРСАЛЬНОГО КЛАССОВОГО ПРЕДСТАВЛЕНИЯ M. <...> Startsev EXTRACTION OF DATA TYPES IN DYNAMIC PROGRAMMING LANGUAGES FOR STATIC ANALYSIS WITH UNIVERSAL CLASS REPRESENTATION Предлагается подход, позволяющий получить сведения о типах полей классов для объектно-ориентированных языков программирования с динамической типизацией, где эти сведения явно не указаны. <...> Это необходимо для расширения универсального классового промежуточного представления исходного кода. <...> Используя данные о типах, можно будет выполнять более эффективный анализ, например получение связей агрегирования между классами. <...> Для обоснования этого подхода предложена математическая модель, которая описывает типизацию, не накладывая ограничений на конкретный алгоритм поиска «кандидатов» в типы исследуемых полей. <...> Предложена методика тестирования алгоритма на основе динамического анализа, позволяющая оценить его эффективность. <...> Реализованный алгоритм вместе с методикой были проверены на ведущих крупных Python-проектах с открытым исходным кодом. <...> To get types of fields the “duck typing” approach is offered; it is used in Python during the runtime. <...> Введение Важную роль в разработке программного обеспечения (ПО) играет статический анализ исходного кода. <...> Для более эффективного анализа было предложено универсальное классовое представление [1]. <...> В языках со статической типизацией, таких как Java или C++, типы указываются в коде. <...> В статье предлагается методика на основе статического анализа, позволяющая определять типы данных до исполнения, рассматривается связанная разработка из проекта PyLint [4]. <...> Под агрегирующим классом будем понимать класс, представляющий в связи агрегации целое. <...> Под агрегируемым классом будем понимать класс, представляющий в связи агрегации часть целого. <...> Пример связи агрегации Для диаграммы классов проекта <...>