Лопатин В.А. преподаватель кафедры Нечай А.А. преподаватель кафедры Военно-космическая академия имени А.Ф.Можайского
Россия, г. Санкт-Петербург РАСПОЗНАВАНИЕ И ИМЕНОВАНИЕ ДИНАМИЧЕСКИХ ОБЪЕКТОВ В ПРОГРАММАХ ИМПЕРАТИВНОГО ТИПА В статье рассматривается решение специфической проблемы преобразования существующего программного обеспечения с учетом новых требований или условий.
Ключевые слова: преобразование кода, декомпиляция, программное обеспечение, семантика, сигнатуры.
Для решения специфической проблемы преобразования существующего программного обеспечения (ПО) с учетом новых требований или условий функционирования были созданы соответствующие технологии повторной разработки ПО. В настоящее время наибольшую сложность для повторной разработки представляют системы, написанные на языке ассемблера или системы, для которых исходные тексты программ были утрачены. Для таких систем в течение последних разрабатывались декомпиляторы на языки высокого уровня. В процессе компиляции вся сколь-нибудь осмысленная информация о семантике подпрограмм и данных утрачивается, и получаемые в результате декомпиляции программы хоть и записаны в выражениях языка высокого уровня, для именования элементов используют стандартные имена типа "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).
Лопатин В.А. преподаватель кафедры Нечай А.А. преподаватель кафедры Военно-космическая академия имени А.Ф.Можайского
Россия, г. Санкт-Петербург НЕКОТОРЫЕ ОБОБЩЕНИЯ В ТЕОРИИ МНОЖЕСТВ, ОТНОШЕНИЙ И ГРАФОВ, ИХ ПРИМЕНЕНИЕ В ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЯХ В статье рассматриваются потребности информационных технологий связанные с решением задач представления и обработки знаний в интеллектуальных системах. Описывается развитие гиперсетевых моделей инженерных знаний позволяющие адекватно отображать все многообразие связей между понятиями сложноструктурированных предметных областей в рамках единого формализма