мои 3 выполненных дз ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
условия ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Вариант №16
Задание №1
Разработать эмулятор для языка оболочки ОС. Необходимо сделать работу эмулятора как можно более похожей на сеанс shell в UNIX-подобной ОС. Эмулятор должен запускаться из реальной командной строки, а файл с виртуальной файловой системой не нужно распаковывать у пользователя. Эмулятор принимает образ виртуальной файловой системы в виде файла формата tar. Эмулятор должен работать в режиме GUI. Ключами командной строки задаются: • Имя пользователя для показа в приглашении к вводу. • Путь к архиву виртуальной файловой системы. • Путь к стартовому скрипту. Стартовый скрипт служит для начального выполнения заданного списка команд из файла. Необходимо поддержать в эмуляторе команды ls, cd и exit, а также следующие команды:
- touch.
- chmod.
Все функции эмулятора должны быть покрыты тестами, а для каждой из поддерживаемых команд необходимо написать 3 теста.
Задание №2
Разработать инструмент командной строки для визуализации графа зависимостей, включая транзитивные зависимости. Сторонние средства для получения зависимостей использовать нельзя. Зависимости определяются для git-репозитория. Для описания графа зависимостей используется представление Graphviz. Визуализатор должен выводить результат в виде сообщения об успешном выполнении и сохранять граф в файле формата png. Построить граф зависимостей для коммитов, в узлах которого содержатся хеш-значения. Ключами командной строки задаются: • Путь к программе для визуализации графов. • Путь к анализируемому репозиторию. • Путь к файлу с изображением графа зависимостей. Все функции визуализатора зависимостей должны быть покрыты тестами.
Задание №3
Разработать инструмент командной строки для учебного конфигурационного языка, синтаксис которого приведен далее. Этот инструмент преобразует текст из входного формата в выходной. Синтаксические ошибки выявляются с выдачей сообщений. Входной текст на учебном конфигурационном языке принимается из файла, путь к которому задан ключом командной строки. Выходной текст на языке toml попадает в файл, путь к которому задан ключом командной строки. Словари: struct { имя = значение, имя = значение, имя = значение, ... } Имена: [a-zA-Z][_a-zA-Z0-9]* Значения: • Числа. • Строки. • Словари. Строки: "Это строка" 80 Объявление константы на этапе трансляции: set имя = значение; Вычисление константы на этапе трансляции: ?(имя) Результатом вычисления константного выражения является значение. Все конструкции учебного конфигурационного языка (с учетом их возможной вложенности) должны быть покрыты тестами. Необходимо показать 3 примера описания конфигураций из разных предметных областей.