Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

О некоторых задачах анализа и трансформации программ

Совок большой.
Длина 21,5 см. Расцветка в ассортименте, без возможности выбора.
21 руб
Раздел: Совки
Забавная пачка "5000 дублей".
Юмор – настоящее богатство! Купюры в пачке выглядят совсем как настоящие, к тому же и банковской лентой перехвачены... Но вглядитесь
60 руб
Раздел: Прочее
Карабин, 6x60 мм.
Размеры: 6x60 мм. Материал: металл. Упаковка: блистер.
44 руб
Раздел: Карабины для ошейников и поводков

С.С. Гайсарян, А.В. Чернов, А.А. Белеванцев, О.Р. Маликов, Д.М. Мельник, А.В. Меньшикова Аннотация. В настоящей статье обсуждаются некоторые перспективные направления исследований, проводимые в отделе компиляторных технологий Института системного программирования РАН. Методы анализа и трансформации программ, ранее применявшиеся в основном в оптимизирующих компиляторах, в настоящее время находят применение при решении множества смежных задач, таких как обеспечение безопасности программ, генерация тестов для программ и т. д. 1. Введение В настоящей статье обсуждаются некоторые перспективные направления исследований, проводимые в отделе компиляторных технологий Института системного программирования РАН. Методы анализа и трансформации программ, ранее применявшиеся в основном в оптимизирующих компиляторах, в настоящее время находят применение при решении множества смежных задач, таких как обеспечение безопасности программ, генерация тестов для программ и т. д. В отделе ведётся работа и в традиционной области оптимизации программ. Упор делается на разработку новых методов анализа указателей в программах на языке Си. Также проводятся исследования так называемых "полустатических" (profile-based) методов оптимизации программ. Такие методы заключаются в использовании на стадии оптимизации кода информации, накопленной с предварительных её запусков. Данная работа посвящена рассмотрению трёх направлений. Во-первых, это так называемая маскировка программ, преследующая цель, полностью сохранив пользовательское поведение программы, изменить её текст так, что обратная инженерия или повторное использование ее фрагментов или программы целиком становится сложным. Во-вторых, это задачи автоматической оптимизации программы для работы на многопроцессорных системах с общей памятью путём разбиения её на нити. В-третьих, это задача автоматического выявления уязвимостей в программе. Для поддержки работ по исследованию методов анализа и трансформации программ в отделе разработана интегрированная инструментальная среда (I egra ed Research E viro me , IRE), которая содержит большое количество различных алгоритмов анализа и трансформации программ и предоставляет удобный интерфейс пользователя. Данная работа имеет следующую структуру: в разделе 2 мы рассматриваем задачу автоматического разбиения программы на нити, в разделе 3 рассматриваются задачи маскировки программ, а в разделе 4 задача автоматического выявления уязвимостей. Далее в разделе 5 кратко описывается интегрированная среда IRE, её состав и внутреннее представление MIF, используемое всеми компонентами IRE. Наконец, в разделе 6 мы формулируем выводы данной работы и даём направления дальнейших исследований. 2. Разбиение программ на нити и повышение локальности В настоящее время широко распространены рабочие станции и персональные компьютеры, содержащие несколько центральных процессоров. Массовые многопроцессорные системы обычно содержат 2, 4 или 8 процессоров, работающих над общей памятью с одинаковым для всех процессоров временем доступа (SMP). Для максимального использования возможностей SMP-систем в вычислительно-интенсивных приложениях необходимо максимально использовать "легковесные" процессы (нити).

В этом случае накладные расходы на коммуникацию минимизированы, так как все нити разделяют одно адресное пространство, а синхронизационные операции выполняются проще и быстрее, чем для обычных ("тяжелых") процессов. Известно, что большинство программ при работе демонстрируют хорошую локальность, т.е. работают над близко расположенными в памяти данными, или выполняют одни и те же инструкции. На этом наблюдении основана работа процессорных кэшей. Для наиболее полного использования возможностей кэша необходимо улучшать локальность программы. В данном разделе мы представим новый алгоритм для разделения программы на нити, который улучшает локальность программы в целом. Полученные экспериментальные результаты показывают оправданность применения нового алгоритма для разбиения на нити программ без чёткой циклической структуры, которые не могут быть разбиты на нити традиционными методами. Основным выводом работы является то, что соображения локальности должны приниматься во внимание при разделении программы на нити для небольшого числа процессоров. Системы с разделяемой памятью наиболее удобны для программиста параллельных приложений. Более того, часть работы по распараллеливанию последовательного кода может быть выполнена компилятором. Существует много исследований по автоматическому распараллеливанию циклов и рекурсивных процедур на таких системах. Некоторые разработки реализованы в промышленных компиляторах, например, IBM Visual Age C , I el C Compiler, SGI MIPSPro, REAPAR и других. В последнее время проводятся исследования по автоматическому распарал-леливанию любого последовательного кода. Предложено несколько подходов, таких, как управление выполнением нитей ( hread-level specula io ) , коммутативный анализ, динамическое распределение задач на нити (dy amic ask scheduli g) , автоматическое разделение на нити на этапе компиляции. Часть предложенных алгоритмов проверена авторами на эмуляторах, часть реализована в существующих исследовательских компиляторах, например, в компиляторе SUIF Стенфордского университета . Формализация понятия локальности проведена в . Рассматривается два вида событий локальности: Событие временной локальности происходит при повторном доступе к ячейке памяти, уже имеющейся в кэше. Событие пространственной локальности происходит при доступе к ячейке памяти, расположенной в блоке, уже загруженном в кэш при обращении к какой-либо другой ячейке. Для увеличения количества событий локальности в последнее время предложено большое количество оптимизирующих преобразований программы. Основными методами являются: Группировка инструкций, использующих одни и те же данные (locali y groupi g), для увеличения количества событий временной локальности. Упаковка данных в памяти (da a packi g) для увеличения количества событий пространственной локальности. Перестановка процедур, базовых блоков и т.п. Целью данной работы является исследование вопроса о том, как может быть проведено разделение программы на потоки для увеличения количества событий локальности программы в целом. Для этого предлагается использовать эвристический алгоритм разделения программы на нити, учитывающий в процессе разделения возникающие события локальности и динамически подстраивающий параметры эвристик.

2.1. Алгоритм разбиения программы на нити В настоящем разделе рассматривается построение промежуточного представления программы, над которым работает алгоритм, а также подробно описывается сам алгоритм разбиения программ на нити. Подробное описание алгоритма можно найти в . Алгоритм состоит из трех частей: Построение ценовой модели, отражающей свойства локальности Разбиение программы на нити Дополнительные оптимизации Рис. 1. Пример функции и ее DDG. 2.1.1. Граф зависимостей по данным При разделении программы на нити прежде всего нужно учитывать зависимости по данным. Поэтому естественно потребовать, чтобы промежуточное представление программы содержало легкодоступную информацию о зависимостях по данным между различными частями программы. В то же время необходимо максимально отразить сведения о "естественном" параллелизме программы, причем на разных уровнях - от отдельных инструкций, до более крупных программных блоков. Представлением, обладающим всеми необходимыми нам свойствами, является иерархический граф зависимостей по данным, используемый в (da a depe de ce graph, DDG). Узлом такого графа может являться: Простой оператор (сложение, умножение, сравнение, присваивание и т.д.) Более сложный оператор (условный оператор, оператор цикла и т.д.) Граф зависимостей по данным следующего уровня, инкапсули-рующий свойства соответствующего программного блока Дуги графа DDG представляют собой зависимости по данным между узлами. Более формально, пусть u и v - узлы DDG, причем в последовательной программе u предшествует v. Дуга (u, v) входит в граф тогда и только тогда, когда между u и v есть зависимость по данным одного из трех типов: "запись-чтение" (в узле v необходимы результаты вычислений узла u), "чтение-запись" (в узле v записывается переменная, значение которой считывается в u), "запись-запись" (оба узла записывают одну и ту же пере-менную). Наличие одной из указанных зависимостей по данным между узлами говорит о том, что при параллельном выполнении программы для получения результатов, совпадающих с последовательной версией, необходимо выполнить u раньше, чем v. Легко заметить, что граф зависимостей по данным является ориентированным ациклическим графом. Это объясняется тем, что циклы в DDG означают наличие циклических зависимостей по данным, возможных, в свою очередь, только в операторах цикла исходной программы. Но циклы, как и другие сложные операторы, раскрываются на более низком уровне иерархии, обеспечивая разрыв таких зависимостей по данным. Это свойство графа будет использоваться нами в дальнейшем. Пример функции и ее графа зависимостей по данным приведен на Рис. 1. DDG состоит из трех узлов: двух простых узлов и оператора цикла, раскрывающегося в DDG второго уровня. Граф зависимостей по данным строится для каждой функции программы. Алгоритм построения состоит из следующих этапов: Построение графа потока управления программы. Выбор программных блоков, которые будут узлами текущего уровня иерархии DDG. Нахождение зависимостей по данным между этими узлами с помощью алгоритма достигающих определений. Если необходимо, продвинуться на следующий уровень иерархии и достроить граф.

Хорошая сторона этих двух типов в том, что существуют очень специфические пути для их анализа. Было показано, что любая регулярная грамматика может быть анализирована с использованием частной формы абстрактной машины, называемой конечным автоматом. Мы уже реализовывали конечные автоматы в некоторых их наших распознающих программ. Аналогично грамматики Типа 2 (контекстно-свободные) всегда могут быть анализированы с использованием магазинного автомата (конечный автомат, дополненный стеком). Мы также реализовывали эти машины. Вместо реализации явного стека для выполнения работы мы положились на встроенный стек связанный с рекурсивным кодированием и это фактически является предочтительным способом для нисходящего синтаксического анализа. Случается что в реальных, практических грамматиках части, которые квалифицируются как регулярные выражения, имеют склонность быть низкоуровневыми частями, как определение идентификатора: <ident> ::= <letter> [ <letter> | <digit> ]* Так как требуется различные виды абстрактных машин для анализа этих двух типов грамматик, есть смысл отделить эти низкоуровневые функции в отдельный модуль, лексический анализатор, который строится на идее конечного автомата

1. Некоторые вопросы анализа деловых проблем

2. Задача анализа поведения потребителя

3. Приложения определенного интеграла к решению некоторых задач механики и физики

4. Алгоритмы декомпозиции и перебора L-классов для решения некоторых задач размещения

5. Некоторые модели социокультурной трансформации

6. Анализ производственной программы
7. Анализ федеральной программы
8. Решение задачи с помощью программ Mathcad и Matlab

9. Решение задачи с помощью программ Mathcad и Matlab

10. Решение задачи с помощью программ Mathcad и Matlab

11. ИФЛА – всемирная организация библиотечных работников, её цели, задачи, структура, основные программы

12. Философский анализ трансформаций свободы (логико-исторический аспект)

13. Некоторые задачи оптимизации в экономике

14. Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа (выражения)

15. Анализ, оценка и выбор пользователем пакетов прикладных программ для автоматизации своей деятельности ([Курсовая])

16. Использование компьютерных программ для анализа финансового состояния организации

Матрешка 5 в 1 (Д-282).
Игрушка из натуральной древесины. Матрешки: 5 в 1. Игрушка расписана цветными красками. Цель игры: развитие мелкой моторики, координации
435 руб
Раздел: Матрешки
Набор цветных карандашей "Noris Club", акварельные, 36 цветов, с кистью.
Детские цветные акварельные карандаши в картонной коробке. Серия «Noris Club» предназначена для использования детьми. Специальное защитное
859 руб
Раздел: Акварельные
Мозаика.
50 фишек. Размер поля: 24 х 35 см. Размер фишки: 40 х 45 х 14 мм. Материал: полипропилен.
450 руб
Раздел: Пластмассовая

17. Лабораторная работа №4 по "Основам теории систем" (Послеоптимизационный анализ задач линейного программирования)

18. Некоторые подходы к задачам распознавания и их приложениям

19. Анализ рынка бухгалтерских и аналитических программ

20. АХД. Анализ использования основных средств (задачи)

21. Некоторые главы мат. анализа

22. Некоторые свойства многогранника. Задачи о P-медиане
23. Список задач к билетам по экзамену по предмету Анализ хозяйственной деятельности предприятия
24. Анализ рентабельности с помощью программы Олимп

25. Анализ некоторых показателей рынка труда

26. Анализ экономических задач симплексным методом

27. Анализ программы демифологизации

28. Некоторые данные по содержанию химических элементов в медоносных растениях и их трансформация в мёд

29. Программа, методические указания, задания для выполнения контрольной работы и контрольные вопросы для студентов з/о специальностей: 060500 «Бухучет, анализ и аудит», 060400 «Финансы и кредит»

30. Анализ, оценка и выбор пользователем пакетов прикладных программ для автоматизации своей деятельности (Microsoft Access)

31. Инвестиционный анализ. Excel против специализированных программ

32. «Ася» И.С. Тургенева. Систематический анализ повести и разбор ее некоторых связей с немецкой литературой

Вкладыши "Лето".
Вкладыши "Лето" - это развивающая игрушка, предназначенная для детей в возрасте старше 3-х лет. При помощи такой игрушки ребёнок
503 руб
Раздел: Рамки-вкладыши
Конструктор металлический для уроков труда №2.
Конструктор раскрывает перед ребенком неограниченные возможности моделирования и создания множества своих собственных
397 руб
Раздел: Магнитные и металлические конструкторы
Машина-каталка Ламбо "Розовая Принцесса".
Ультрамодный автомобиль Ламбо - это воплощение стиля, опережающее время! Машина-каталка "Розовая Принцесса" - не просто веселая
1369 руб
Раздел: Каталки

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

34. Анализ структуры и задач основных подразделений Азовского НИИ Рыбного Хозяйства

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

36. Цели, задачи и практика выполнения государственной программы "Электронная Россия"

37. Применение методов математической статистики и теории вероятностей в задачах теоретической лингвистики при анализе устной и звучащей речи на русском и английском языках

38. Анализ эффективности MPI-программ
39. Основы распараллеливания программ, их динамический анализ
40. Разработка формата хранения данных программ и решение задач

41. Решение задач оптимизации бизнес-процессов с использованием прикладных программ

42. Сравнительный анализ современных антивирусных программ

43. Антивирусные программы. Матричный принцип печати. Решение задач на ЭВМ

44. Использование измерений и решение задач на местности при изучении некоторых тем школьного курса геометрии

45. Химико-токсикологический анализ в ветеринарии, его цель и задачи

46. Субкультура новой профессиональной группы: понимание и некоторые практики для анализа

47. Анимационные программы: задачи, цели, перспективы

48. Анализ программ государственного софинансирования пенсий

Подгузники "Солнце и Луна. Нежное прикосновение", размер: 4/L (7-14 кг), 44 штуки.
Подгузники "Солнце и Луна. Нежное прикосновение" сделаны по японской технологии в сотрудничестве с японской корпорацией WATASHI
425 руб
Раздел: Более 11 кг
Песочные часы "Обратные".
Песочные часы «Волшебные Обратные» - антистресс. Часы направлены на то, чтобы отвлечь Вас от напряжения и снизить стресс. Они не только
330 руб
Раздел: Часы песочные
Игра настольная "Тараканы в холодильнике".
Настольная игра предназначена для детей старше 7 лет. В распоряжении каждого игрока команда из трех тараканов, цель которых унести из
391 руб
Раздел: Карточные игры

49. Аналитическая химия, ее предмет, задачи, значение и основные понятия. Организация аналитического контроля в государстве. Классификация методов анализа. Направления развития аналитической химии

50. Задачи и порядок проведения анализа оптового товарооборота

51. Значение, задачи, источники информации для анализа производства и реализации продукции

52. Понятие метода и методики экономического анализа, задачи

53. Предмет, содержание и задачи экономического анализа

54. Сущность и основные задачи экономического анализа
55. Цели, задачи, источники анализа затрат на производство. Классификация затрат
56. Использование электронных таблиц MS EXCEL для решения экономических задач. Финансовый анализ в Excel

57. Регрессионный анализ. Транспортная задача

58. Программа управления самолётом в режиме автопилота

59. Применение фильтра Калмана в задаче идентификации отказов двигателей стабилизации космического аппарата

60. Анализ медико-биологических данных с использованием Excel и СПП STADIA

61. Краткое описание происхождения птиц и описание некоторых птиц кайнозойской эры

62. How "DNA" testing works Анализ "ДНК" как проверяющие работы)

63. Анализ повадок отряда ДЯТЛООБРАЗНЫЕ - Piciformes семейства ДЯТЛОВЫЕ – Picidae

64. Социально-политический анализ Военной доктрины Российской Федерации

Мягкий пол "Ассорти", универсальный, 60x60 см, 1.44 кв.м.
Размер 1 листа: 60x60 см. Площадь4 листов: 1.44 кв.м. Состав: 1 красный лист, 1 желтый лист, 1 зеленый лист, 1 синий лист.
1080 руб
Раздел: Прочие
Дорожка массажная "Морской Берег", с "камнями".
Массажная дорожка с камнями «Морской берег» является отличным средством профилактики плоскостопия, рефлексотерапии и расслабления.
1268 руб
Раздел: Коврики
Ваза декоративная "Цветочный каприз", 10x10x24,5 см.
Ваза декоративная. Размер: 10x10x24,5 см. Материал: керамика.
311 руб
Раздел: Вазы

65. Статистика населения. Методы анализа динамики и численности и структуры населения

66. Анализ рынка углеводородов стран Центральной и Южной Азии

67. Историко-географический анализ изменений политической карты России за прошедшее столетие

68. Анализ демографической ситуации Ивановской области

69. Некоторые проблемы современных гидрологических исследований на Алтае

70. Анализ бюджетного дефицита за 1990-1996 годы
71. Анализ регулирования и финансирования бюджетного дефицита с 1985 и по наши дни
72. Основные задачи и сферы государственного регулирования в экономике

73. Стандартизация. Задачи стандартизации в области объектов коммерчекой деятельности

74. Некоторые вопросы обеспечения прав обвиняемого на предварительном расследовании

75. Задачи, основные функции и система ОВД

76. Задачи сводки и основное ее содержание

77. Содержание договора о передаче прав на программу для ЭВМ

78. Патентование избирательных программ в контексте формирования концептуального рынка

79. Аграрный вопрос в программах политических партий начала 20 века

80. Либерализм и марксизм: сравнительный анализ

Точилка электрическая Attache, 4хАА.
Точилка электрическая. Работает от 4х батареек типа АА, цвет: черный. Предназначена для заточки карандашей диаметром 6-8 мм.
487 руб
Раздел: Точилки
Настольная игра 48 "Морской бой".
В наборе: игровое поле - 2 штуки, эскадра из 10 кораблей - 2 комплекта, фишки для обозначения выстрелов. Размеры: 27х18х7 см.
492 руб
Раздел: Классические игры
Карандаши цветные "Jumbo", трехгранные, 12 цветов + точилка.
Мягкие, но при этом очень прочные карандаши, легко затачиваются и не крошатся. Насыщенные штрихи на бумаге. Не токсичны!. В комплекте: 12
410 руб
Раздел: 7-12 цветов

81. Анализ Конституции США и ее сравнение с Конституцией РФ 1993 года

82. Правительство в Российской Федерации и зарубежных странах. Сравнительный анализ

83. Сравнительный анализ конституции России и США

84. Сравнительный анализ социально-экономических прав, свобод и обязанностей в конституциях Китая и Испании

85. Федеральная резервная система и политика НацБанка РБ: сравнительный анализ

86. Сравнительный анализ Правительств Киргизской Республики и Российской Федерации
87. Историко-правовой анализ Закона СССР "о разграничении полномочий между СССР и субъектами федерации"
88. Задачи, система и функции органов юстиции Российской Федерации

89. Системы органов государственной власти субъектов Российской Федерации и штатов Индии (сравнительный анализ)

90. Способы формирования муниципальной собственности: правовое регулирование и сравнительный анализ

91. Анализ Закона РФ N1992-1 "О налоге на добавленную стоимость"

92. Обзор и анализ проекта Налогового кодекса Российской Федерации

93. Цели, задачи и функции прокуратуры Украины

94. Некоторые категории дел бесспорного производства

95. Задачи по семейному праву /условие-вопрос-решение/

96. Разработка рекламной программы для страховой компании

Настольная игра "Активити. Вперед".
Интересная и увлекательная настольная игра "Вперед" из серии "Активити" сможет легко и быстро поднять настроение
345 руб
Раздел: Игры на ассоциации, воображение
Кружка фарфоровая "Царский шиповник", 650 мл (3 вида).
Большая фарфоровая кружка универсального применения "Царский шиповник", украшенная золотой обводкой, станет достойным
477 руб
Раздел: Кружки
Игрушка-антистресс "Fidget Cube. Green White".
Поклацать ручкой, подергать ножкой, скрутить в трубочку билетик и лопнуть все пупырышки на пленке. О, да! Эти житейские радости знакомы
465 руб
Раздел: Антистрессы

97. Сравнительный анализ конструкции трудового договора Украины, России и стран с развитой рыночной экономикой

98. Учет и анализ расчетов с персоналом по оплате труда в организации

99. Анализ стихотворения John Donne


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.