Тип работы:
Предмет:
Язык работы:


Разработка отладчика для IDE RuC

Работа №129618

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы17
Год сдачи2022
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
10
Не подходит работа?

Узнай цену на написание


Введение 4
2. Постановка задачи 6
3. Обзор 7
3.1. Существующие отладчики 7
3.2. Хранение отладочной информации 8
3.3. Debug information entity 9
3.4. Транслятор РуСи 9
4. Метод 11
4.1. Создание файла отладочной информации 11
4.2. Остановка по точке останова и трассировка 12
4.3. Поиск переменных и функций 12
5. Тестирование и апробация 14
6. Заключение 15
Список литературы 16

Язык C — один из самых широко распространенных языков программирования. Он позволяет писать высокопроизводительные программы, он универсален и применяется в совершенно разных областях. Синтаксис языка С и структура программ на нем достаточно просты для
понимания, но, несмотря на это, язык не вполне подходит для начинающих программистов: вероятность ошибки высока, а обнаружить эту
ошибку с помощью стандартных средств разработки бывает очень трудно. Выход за границы массива, обращение к недоступной памяти или
разыменование нулевого указателя - одни из наиболее частых примеров
таких ошибок.
РуСи — язык, берущий за основу язык С и решающий некоторые из
вышеописанных проблем [10]. Первоначально язык создавался как инструмент для обучения программированию, но впоследствии им заинтересовались разработчики высоконадежных систем, например, в области
военной промышленности. Помимо стандартных (английских) ключевых слов языка C, были добавлены аналогичные им ключевые слова
на русском языке, а также возможность использования кириллицы в
именах идентификаторов и русскоязычные сообщения компилятора об
ошибках. Такие изменения помогут в обучении программированию учеников младшей и средней школы, которые еще не знают английский
язык достаточно хорошо.
Помимо этого, были добавлены некоторые ограничения, значительно повышающие безопасность программ и защищающие от типичных
ошибок. Так, в языке РуСи отсутствует арифметика указателей; добавлен новый тип указателя — Never Null Pointer, защищающий пользователя от ошибочного разыменования нулевого указателя; улучшены инструменты работы с массивами и добавлена проверка на выход
за границы массивов. Все эти изменения не только делают язык более
простым для изучения начинающими программистами, но и позволяют
использовать его в системах, где высокая надежность и защищенность
от ошибок является критически важной.

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

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

Помощь в написании работ!


В ходе работы были выполнены следующие задачи:
1. Изучена архитектура транслятора и интерпретатора РуСи.
2. Внесены изменения в генератор кода и интерпретатор РуСи, необходимые для работы с отладочной информацией.
3. Реализована возможность остановки по точке останова и трассировка, а также просмотр значений переменных.
4. Выполнено тестирование отладчика.
5. Результаты работы загружены на GitHub [5] [6].


[1] Committee. DWARF Standards. The DWARF Debugging Standard. — URL: https://dwarfstd.org/ (online; accessed: 28.01.2022).
[2] Eager Michael J. Introduction to the DWARF Debugging Format. — URL:
[3] GNU. Project. GDB: The GNU Project Debugger. - URL: https: //www.gnu.org/software/gdb/ (online; accessed: 28.01.2022).
[4] LLDB. Team The. LLDB Tutorial. — URL: https://lldb.llvm.org/ use/tutorial.html (online; accessed: 28.01.2022).
[5] RuC. — URL: https://github.com/manelyset/RuC (online; accessed: 26.05.2022).
[6] RuC-VM. — URL: https://github.com/manelyset/RuC-VM (online; accessed: 26.05.2022).
[7] Shebs Richard Stallman Roland Pesch Stan. Debugging with GDB.— URL: https://ftp.gnu.org/old-gnu/Manuals/gdb/html_ node/gdb_toc.html (online; accessed: 28.01.2022).
[8] Д.А. Дмитриева. Разработка отладчика для языка РуСи. // Кафедра системного программирования СПбГУ, 2017.
[9] Терехов А.Н. Терехов М.А. Инструментальное средство обучения программированию и технике трансляции. // Компьютерные инструменты в образовании, №1.— URL: http://cte.eltech.ru/ojs/index.php/kio/article/view/1388 (online; accessed: 26.05.2022).
[10] Терехов А.Н. Терехов М.А. Проект РуСи для обучения и создания высоконадежных программных систем. — Известия высших учебных заведений. Северо¬Кавказский регион. Технические науки. // Cyber¬leninka.— URL: https://cyberleninka.ru/articleZn/ proekt-rusi-dlya-obucheniya-i-sozdaniya-vysokonadezhnyh-programr (online; accessed: 28.01.2022).
[11] Тесты для кодогенератора RuC.— URL: https://github.com/ andrey-terekhov/RuC/tree/master/tests/codegen/executable (online; accessed: 26.05.2022).


Работу высылаем на протяжении 30 минут после оплаты.




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