Проекты

Разработка С-компилятора для 16-разрядной виртуальной машины

Работа призёра открытой городской научно-практической конференции «Инженеры будущего» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10−11 классов

Направление работы: Программирование
Авторы работы: ГБОУ Школа № 1557
Предметы: Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» 2020 года

Актуальность

В настоящее время используется только один язык программирования специализированного контроллера – ассемблер. Существует необходимость написания пользовательских программ на языках высокого уровня. В нашей работе была решена задача создания компилятора с языка С без использования сложных структур данных и указателей.

Цель

Исследовать 16-разрядную виртуальную машину (специализированный контроллер) со своей системой команд (ассемблерные инструкции) и разработать С-компилятор для реализации возможности написания пользовательских программ на языках высокого уровня.

Задачи

1. Исследовать систему команд 16-разрядной виртуальной машины.

2. Придумать структуру и дать описание компилятора.

3. Провести анализ различных сред разработки и выбрать оптимальный вариант.

4. Освоить среду разработки PyCharm и установить её.

5. Разработать С-компилятор.

6. Сделать выводы по проекту и подготовить описание проекта к представлению.

Оснащение и оборудование, использованное при создании работы

  • Ноутбук
  • Язык программирования Python3

Описание

Работа была проведена в три этапа. На первом этапе были изучены система команд 16-разрядной виртуальной машины и принципы записи информации в существующие регистры. Система команд контроллера серии КТМУ-50 «Амадин» основана на системе команд микроконтроллеров AVR фирмы Atmel, но значительно переработана под конкретные задачи. На втором этапе была разработана структура компилятора, дано его описание и сформулированы основные требования. На третьем этапе был разработан компилятор и собран в файл .exe.

Результаты работы/выводы

Результатом работы над проектом было создание С-компилятора без использования сложных структур данных и указателей для написания пользовательских программ на языках высокого уровня.

Перспективы использования результатов работы

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