📄Работа №125424

Тема: Разработка компилятора для языка РуСи на платформу MIPS

Характеристики работы

Тип работы Бакалаврская работа
Программирование
Предмет Программирование
📄
Объем: 24 листов
📅
Год: 2016
👁️
Просмотров: 67
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Введение 5
1. Обзор 7
1.1. Язык РуСи 7
1.2. Компилятор РуСи 7
1.3. LLVM 8
1.4. Компилятор РуСи в LLVM 9
1.5. Clang 9
2. Документация для платформы MIPS и таблица трансляций из РуСи в MIPS 10
2.1. Общие сведения 10
2.2. АЛУ для работы с целочисленными регистрами 10
2.3. АЛУ для работы с переменными с плавающей запятой 11
2.4. Таблица трансляции 11
3. Реализация компилятора 14
3.1. Структура программы на языке РуСи 14
3.2. Структура компилятора 14
3.3. Работа с регистрами 16
3.4. Недостатки реализации 16
3.5. Поддержка РуСи 17
3.6. Отладка и симулятор MARS 17
3.6.1. Тестирование работоспособности 18
3.7. Дальнейшая работа над компилятором 18
4. Сравнение с аналогами 19
4.1. Сравнение результирующего кода 19
4.1.1. Поиск элемента в массиве 19
4.1.2. Умножение матриц 19
4.1.3. Выводы 20
4.2. Сравнение времени работы компилятора 21
4.2.1. Поиск элемента в массиве 22
4.2.2. Умножение матриц 22
4.2.3. Выводы 22
Заключение 23
Список литературы 24

📖 Введение

Создание компилятора для языка программирования — большая и сложная задача. Написание компилятора требует обращения к таким темам, как языки программирования, архитектура компьютера, теория языков, алгоритмы, разработка программного обеспечения[10].
Для упрощения реализации компилятора существует множество ме­тодов, одним из которых является создание промежуточных представ­лений. Такой подход является достаточно успешным в связи с тем, что, несмотря на разнообразие целевых платформ, множество частей но­вого компилятора можно взять из предыдущей разработки. При этом такую инфраструктуру необходимо дополнять недостающими частями — трансляторами из языка высокого уровня в промежуточное пред­ставление, а так же промежуточного представления в коды целевой платформы.
Язык РуСи является языком программирования, разрабатываемым на кафедре системного программирования математико-механического факультета Санкт-Петербургского государственного университета. Ру­Си предназначен для обучения программированию учеников школ и преподавания студентам СПбГУ курса по трансляции языков програм­мирования. Данный проект находится в стадии развития и в данный момент имеет компилятор в коды виртуальной машины, а также ин­терпретатор данной виртуальной машины. Проекту недостаёт компи­ляторов в целевые платформы.
Одной из таких недостающих частей является компилятор для плат­формы MIPS[4][3]. MIPS — архитектура, получившая широкое распро­странение как одна из первых ЯКС^архитектур, до сих пор активно ис­пользуется, в том числе в качестве архитектуры для новых платформ. Создание компилятора языка РуСи в MIPS будет способствовать бо­лее широкому распространению языка, покажет на примере, как раз­рабатываются компиляторы, а также упростит создание дальнейших компиляторов в платформы на RISC-архитектуре, такие как ARM1 и SPARC2.
Предметом данной работы является реализация компилятора языка РуСи в MIPS на основе существующего компилятора языка РуСи.
Постановка задачи
Целью данной работы является создание компилятора из языка Ру­Си в конечные коды платформы MIPS. Для достижения данной цели были сформулированы следующие задачи.
1. Разработать русскоязычную документацию платформы MIPS и таблицу трансляций из кодов РуСи в коды MIPS, достаточную для реализации компилятора.
2. Реализовать оптимизирующий компилятор из языка РуСи в плат­форму MIPS.
3. Провести сравнение компилятора с существующими аналогами.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В рамках данной квалификационной работы были достигнуты сле­дующие результаты.
1. Разработана документация платформы MIPS и приведены приме­ры трансляции кода на языке РуСи на платформу MIPS.
2. Реализован компилятор языка РуСи для платформы MIPS.
3. Произведено сравнение компилятора с аналогами.
Код проекта доступен на сайте:
https://github.com/CepGamer/RuC-MIPS.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

[1] Appel Andrew W. Modern compiler implementation in C.— Cambridge university press, 2004.
[2] C. Lattner. C Language Family Frontend for LLVM. — URL: http: //clang.llvm.org.
[3] D. Sweetman. See MIPS run. — Morgan Kaufmann, 2007.
[4] J. Heinrich. MIPS R4000 Microprocessor User’s manual.- MIPS technologies, 1994.
[5] Lattner C. Adve V. LLVM Language Reference Manual. — URL: http: //llvm.org/docs/LangRef.html.
[6] Lattner C. Adve V. LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation. — University of Illinois at UrbanaChampaign, 2004.
[7] Vollmar K., Sanderson P. MARS: an education-oriented MIPS assembly language simulator. — 2006. — Vol. 38, no. 1. — P. 239-243.
[8] Болотов С. Создание транслятора из РуСи в LLVM IR.— 2015.— URL: http://se.math.spbu.ru/SE/YearlyProjects/spring-2015/ list.
[9] Керниган Б., Ритчи Д. Язык программирования С. — Невский диа­лект СПб., 2001.
[10] Компиляторы: принципы, технологии и инструменты / А. Ахо, Р. Сети, Д. Ульман, М. Лам. — Вильямс, 2008.

🖼 Скриншоты

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.
Предоставляемые услуги, в том числе данные, файлы и прочие материалы, подготовленные в результате оказания услуги, помогают разобраться в теме и собрать нужную информацию, но не заменяют готовое решение.
Укажите ник или номер. После оформления заказа откройте бота @workspayservice_bot для подтверждения. Это нужно для отправки вам уведомлений.

©2026 Cервис помощи студентам в выполнении работ