User Tools

Site Tools


sys:start

This is an old revision of the document!


Системное программное обеспечение (СПО)

Данная страница предназначена для организации курса “Системное программное обеспечение (СПО)” для групп АСУ (ИРНИТУ), ИрГУПС

Лабы сдавать в свою телеграм-группу в виде ссылки на единый проект всех лабораторных работ на github или ему подобный сервис. Лабы можно делать в любом порядке, можно в виде единого проекта (по согласованию с преподавателем).

Слайды курса OCW.MIT.EDU Computer Language Engineering! Все сразу в одном файле.

Лабораторные по СПО

  1. Исследование компилятора gcc, язык ассемблера. Связь процесса и операционной системы. Makefile, git.
    • Нужно написать программу на С, С++, PASCAL/FPC и др. компилируемом языке, странслировать его в Assembler с разными опциями оптимизации
       gcc -S -o <>.s <>.c -O[0123s]
    • Разобраться с одним из вариантов [оптимизации] ассемблерной программой (добавить комментарии в сгенерированный ассемберный код) - найти циклы, переменные и т.п.
  2. Программу усовершенствовать: добавить параллельный процесс средствами Linux/Windows. Синхронизация доступа к общему ресурсу (файл, канал, pipe, очередь, mmap, smmem). Язык С или другой, но на С проще, есть куча примеров.
  3. Конечный детерминированный автомат, распознающий регулярное выражение. Реализация автомата на языке программирования и/или при помощи flex или antlr4. Лучше запрограммировать два варианта (ничего сложного там нет):
    • Программу на любимом языке программирования;
    • Программу на flex + С или на подобной связке.
  4. Реализация контекстно-свободной грамматики (оператора языка). Тут как душа пожелает flex+bison, antlr4, ….
  5. Реализация генератор кода - текст на языке ассемблера или, что круче, на llvm (llvmlite/Python, и т.п.).

Оценка = количество сданных лаб, минимум 4 (1234, тройки мне нужны). 😉 Кому трудно - делайте вдвоем.

Для 4 и 5 лабораторных можно дописать мой компилятор oberon7 (на стадии обновления исходников). https://github.com/stud-labs/oberon7-cpp, например, реализовать операции и тип bool, cardinal, В конце readme есть примеры задач.

Доступ к Виртуальной машине

Из командной строки (powershell) Windows 8.0-11.0

 ssh stud@sys.iscnet.ru 

Пароль здесь не публикую по понятным причинам.

sys/start.1679623915.txt.gz · Last modified: by eugeneai