Для студентов КГТУ по предмету ДругиеГенерация оптимального объектного кодаГенерация оптимального объектного кода
2024-06-152024-06-15СтудИзба
Курсовая работа: Генерация оптимального объектного кода
Описание
Содержание
1
Введение
Несмотря на то, что C является фактическим стандартом для низкоуровневого программирования и программирования встроен-ных систем, он имеет существенные недостатки, такие как арифме-тика указателей и отсутствие контроля за границами массива при доступе к элементу массива. Примечательно, что это недостатки самого языка, а не отдельных компиляторов. Эти недостатки нега-тивно сказываются на безопасности языка C.
На кафедре системного программирования Санкт-Петербургского государственного университета разрабатывается транслятор языка RuC, представляющий собой усовершенствованную версию языка C [1]. На эту тему были сделаны научные публикации [2, 3]. На дан-ный момент проект RuC стал промышленным, что свидетельствует об актуальности и практической значимости данного проекта.
С развитием RuC возникла необходимость в реализации опти-мизаций. Без оптимизаций транслятор не сможет конкурировать
с популярными компиляторами с языка C, такими, как gcc или Clang.
Генерация оптимального объектного кода является одной из ос-новных и наиболее сложных задач в области разработки компиля-торов. Данная работа посвящена оптимизации генерации кода
Введение | 2 | ||
1 | Цели и задачи | 3 | |
2 | Обзор | 4 | |
2.1 | Анализ Clang . . . . . . . . . . . . . . . . . . . . . . | 5 | |
2.2 | Анализ gcc . . . . . . . . . . . . . . . . . . . . . . . | 6 | |
2.3 | Оптимизация на основе SSA-формы . . . . . . . . . | 7 | |
2.4 | Оптимизация на основе AST-формы . . . . . . . . . | 8 | |
3 | Реализация | 8 | |
3.1 | Общийподход...................... | 8 | |
3.2 | Оптимизация последовательных переходов . . . . . | 9 | |
3.3 | Вычисление количества повторов цикла перед телом | ||
цикла .......................... | 11 | ||
3.4 | Использование слота задержки . . . . . . . . . . . . | 12 | |
3.5 | Индуцированные переменные . . . . . . . . . . . . . | 14 | |
3.6 | Удаление ненужных индуктивных переменных . . . | 17 | |
4 | Измерения и оценка | 19 | |
5 | Заключение | 21 | |
Список литературы | 23 | ||
Приложение 1 | 26 | ||
Приложение 2 | 27 | ||
Приложение 3 | 27 |
1
Введение
Несмотря на то, что C является фактическим стандартом для низкоуровневого программирования и программирования встроен-ных систем, он имеет существенные недостатки, такие как арифме-тика указателей и отсутствие контроля за границами массива при доступе к элементу массива. Примечательно, что это недостатки самого языка, а не отдельных компиляторов. Эти недостатки нега-тивно сказываются на безопасности языка C.
На кафедре системного программирования Санкт-Петербургского государственного университета разрабатывается транслятор языка RuC, представляющий собой усовершенствованную версию языка C [1]. На эту тему были сделаны научные публикации [2, 3]. На дан-ный момент проект RuC стал промышленным, что свидетельствует об актуальности и практической значимости данного проекта.
С развитием RuC возникла необходимость в реализации опти-мизаций. Без оптимизаций транслятор не сможет конкурировать
с популярными компиляторами с языка C, такими, как gcc или Clang.
Генерация оптимального объектного кода является одной из ос-новных и наиболее сложных задач в области разработки компиля-торов. Данная работа посвящена оптимизации генерации кода
Характеристики курсовой работы
Список файлов
Генерация оптимального объектного кода.doc