Skip to content

cypok/bachelor_thesis

Repository files navigation

Текст моей работы на соискание степени бакалавра физики, и другие бумажки.

Тема: "Анализ указателей и синонимов для многопоточных программ"

Структура проекта:

  • common - общие для всех документов файлы;
  • text - основной текст работы;
  • presentation/slides - текст презентации и слайды для различных выступлений;
  • pre_annotation - аннотация работы на момент утверждения темы;
  • post_annotation - окончательная аннотация работы;
  • opinion - отзыв научного руководителя;
  • review - рецензия;
  • issc - тезис на МНСК.

По тегам можно смотреть различные версии документов, например на момент сдачи курсовой работы, перед предзащитой и т.д.

О чем работа

Статический анализ программ активно применяется в оптимизирующих компиляторах и в инструментах статического анализа. Одним из видов статического анализа и является анализ указателей, классические алгоритмы для проведения которого были разработаны еще в 1990-х годах для C-подобных языков. В данной работе ставилась задача разработать алгоритм анализа указателей для языка Java, который имеет существенные отличия от языка C. Также алгоритм анализа должен быть адаптирован для анализа многопоточных программ, что актуально в данное время, в связи с повсеместным распространением многоядерных процессоров.

В работе проведен анализ и сравнение классических алгоритмов анализа указателей и синонимов. Взяв за основу алгоритм, предложенный Lars Ole Andersen, был разработан новый алгоритм, пригодный для эффективного анализа многопоточных программ на языке Java, что потребовало тщательного изучения спецификации языка Java и его модели памяти.

Алгоритм реализован в рамках оптимизирующего статического Java компилятора Excelsior Research Virtual Machine. В ходе экспериментов было сделано следующее: измерена практическая сложность алгоритма (временная и емкостная) и проведено сравнение точности с другими алгоритмами анализа. Разработанный алгоритм на практике продемонстрировал удовлетворительную производительность и существенный прирост точности по сравнению с алгоритмами, не адаптированными для анализа многопоточных Java-программ.

About

Text of my bachelor thesis / Текст моей бакалаврской работы

Resources

Stars

Watchers

Forks

Packages

No packages published