Научная статья на тему 'РАСПОЗНАВАНИЕ И ИМЕНОВАНИЕ ДИНАМИЧЕСКИХ ОБЪЕКТОВ В ПРОГРАММАХ ИМПЕРАТИВНОГО ТИПА'

РАСПОЗНАВАНИЕ И ИМЕНОВАНИЕ ДИНАМИЧЕСКИХ ОБЪЕКТОВ В ПРОГРАММАХ ИМПЕРАТИВНОГО ТИПА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
8
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРЕОБРАЗОВАНИЕ КОДА / ДЕКОМПИЛЯЦИЯ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / СЕМАНТИКА / СИГНАТУРЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лопатин В.А., Нечай А.А.

В статье рассматривается решение специфической проблемы преобразования существующего программного обеспечения с учетом новых требований или условий.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «РАСПОЗНАВАНИЕ И ИМЕНОВАНИЕ ДИНАМИЧЕСКИХ ОБЪЕКТОВ В ПРОГРАММАХ ИМПЕРАТИВНОГО ТИПА»

Лопатин В.А. преподаватель кафедры Нечай А.А. преподаватель кафедры Военно-космическая академия имени А.Ф.Можайского

Россия, г. Санкт-Петербург РАСПОЗНАВАНИЕ И ИМЕНОВАНИЕ ДИНАМИЧЕСКИХ ОБЪЕКТОВ В ПРОГРАММАХ ИМПЕРАТИВНОГО ТИПА В статье рассматривается решение специфической проблемы преобразования существующего программного обеспечения с учетом новых требований или условий.

Ключевые слова: преобразование кода, декомпиляция, программное обеспечение, семантика, сигнатуры.

Для решения специфической проблемы преобразования существующего программного обеспечения (ПО) с учетом новых требований или условий функционирования были созданы соответствующие технологии повторной разработки ПО. В настоящее время наибольшую сложность для повторной разработки представляют системы, написанные на языке ассемблера или системы, для которых исходные тексты программ были утрачены. Для таких систем в течение последних разрабатывались декомпиляторы на языки высокого уровня. В процессе компиляции вся сколь-нибудь осмысленная информация о семантике подпрограмм и данных утрачивается, и получаемые в результате декомпиляции программы хоть и записаны в выражениях языка высокого уровня, для именования элементов используют стандартные имена типа "ARG_1", "Var_312" и т.д. Только для строковых данных возможно построение осмысленных имен по их содержимому, например:

aOsibkaütkr db "Ошибка Открытия Файла", 0 В случае, когда в процессе программирования использовались стандартные средства разработки (компиляторы и библиотеки процедур) возможно именование с использованием сигнатурного подхода: при наличии библиотек по символьным таблицам внешних символов возможно построить сигнатуры для каждой библиотечной процедуры. А в случае совпадения сигнатур в получаемой программе заменить стандартные подпрограммы их именами, а передаваемым в качестве аргументов значениям- присвоить типы. Чтобы автоматизировать процесс именования данных и их элементов предлагается использовать метод, основанный на создании библиотеки шаблонов абстрактных типов данных. Шаблоны представляют собой совокупность описаний инвариантов отношений структуры между элементами данных и набора описаний базовых операций по преобразованию данных структур. Для "программного" описания шаблонов необходимо использование модифицированной контекстно-зависимой

атрибутной грамматики, где одним из атрибутов выступают вышеназванные инварианты.

Атрибутная грамматика распознавания динамических структур данных - это система G = (T, N, W,A,R), где

- T - алфавит терминалов;

- N - алфавит нетерминалов;

- W- множество (возможно бесконечное) атрибутов;

- А= (ап,тI ап,т: Wn *Nm - W} - алфавит преобразователей атрибутов;

- R- множество правил вида K[an,m (wlt.,, wn кт )] —p, где

- ап,т - некоторый преобразователь атрибутов;

- К- выводимый данным правилом нетерминал;

- p- образец, имеющий определенный вид.

В качестве входных данных для анализа используются подграфы информационного графа программы, в которых на этапе подготовки производится инкапсуляция (объединение) операций с данными.

Названная библиотека шаблонов по всей видимости не может быть универсальной. Это обуславливается следующими факторами:

- особенностями предметной области решаемой задачи;

- используемой аппаратно-программной платформой;

- исходным языком программирования и используемым для обработки транслятором.

При этом можно говорить только об относительной достоверности именования данных и операций над ними, по их подобию с имеющимися шаблонами. Однако, если библиотека шаблонов будет содержать достаточно большое количество как стандартных, так и частных программных решений, требуемая достоверность может быть достигнута. А использование для именования элементов программы осмысленных имен типа "двусвязный список", "добавление элемента", "сортировка", "поиск" и т.д. является несомненно полезным для последующего осмысления и внесения изменений в программную систему.

Использованные источники:

1. Терехов А.Н., Эрлих Л., Терехов А.А. Перспективы реинжиниринга. Компьютер - Пресс, № 7, 2012.

2. Касъянов В.Н. Оптимизирующие преобразования программ. М. : "Наука" , 2010.

3. Лохвицкий, В.А. Подход к построению системы автоматизированной интеграции информации в базу данных для её своевременной актуализации / В.А. Лохвицкий, С.В. Калиниченко, А.А. Нечай // Мир современной науки. Издательство «Перо». Москва. 2014. № 2 (24), С. 8-12.

4. Нечай, А.А. Выявление недекларированных возможностей аппаратно-программного обеспечения / А.А. Нечай // Экономика и социум. Саратов. 2014. № 1-2 (10), С. 457-460.

5. Нечай А.А. Специфика проявления уязвимостей в автоматизированных системах управления критически важными объектами / А.А. Нечай, П.Е. Котиков // В сборнике: Современные тенденции в образовании и науке, сборник научных трудов по материалам Международной научно-практической конференции: в 14 частях. Тамбов, 2014. С. 96-97.

6. Лопатин, В.А. Некоторые обобщения в теории множеств, отношений и графов, их применение в информационных технологиях. [Электронный ресурс] / В.А. Лопатин, А.А. Нечай // Экономика и социум. Саратов. 2015. №

1 (14).

URL: http://iupr.ru/domains_data/files/zurnal_14/Lopatin%20V1.pdf (дата

обращения: 06.02.2015).

7. Лопатин, В.А. Структурно-математический подход к анализу гиперсетевых моделей представления знаний [Электронный ресурс] / В.А. Лопатин, А.А. Нечай // Экономика и социум. Саратов. 2015. № 1 (14). URL: http://iupr.ru/domains_data/files/zurnal_14/Lopatin%20V2.pdf (дата обращения: 06.02.2015).

8. Нечай, А.А. Подходы к выявлению конфиденциальной информации [Электронный ресурс] / А.А. Нечай, С.А. Краснов, И.В. Першина // Экономика и социум. Саратов. 2015. № 1 (14). URL: http://mpr.ru/domams_data/fües/zumal_14/Nechay%20A.A.%20Podhody% 20k%20vyyavleniyu.pdf (дата обращения: 06.02.2015).

9. Нечай, А.А. Специфика проявления уязвимостей программируемых логических интегральных схем, используемых в автоматизированных системах управления критически важными объектами [Электронный ресурс] / А.А. Нечай // Экономика и социум. Саратов. 2015. № 1 (14). URL: http://iupr.ru/domains_data/files/zurnal_14/Nechay%20A.A.%20Specifika %20proyavleniya%20uyazvimostyay.pdf (дата обращения: 06.02.2015).

Лопатин В.А. преподаватель кафедры Нечай А.А. преподаватель кафедры Военно-космическая академия имени А.Ф.Можайского

Россия, г. Санкт-Петербург НЕКОТОРЫЕ ОБОБЩЕНИЯ В ТЕОРИИ МНОЖЕСТВ, ОТНОШЕНИЙ И ГРАФОВ, ИХ ПРИМЕНЕНИЕ В ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЯХ В статье рассматриваются потребности информационных технологий связанные с решением задач представления и обработки знаний в интеллектуальных системах. Описывается развитие гиперсетевых моделей инженерных знаний позволяющие адекватно отображать все многообразие связей между понятиями сложноструктурированных предметных областей в рамках единого формализма

i Надоели баннеры? Вы всегда можете отключить рекламу.