Набор инструментов для управления конфигурациями, эмуляции командной строки, анализа зависимостей Git-репозитория и работы с учебными языками и виртуальными машинами.
Для сборки и исполнения программы у вас должна быть установлена среда исполнения .net
Для исполнения программы перейдите в каталог, содержащий файл MireaConfigurationManagement.csproj
и введите следующую команду
dotnet run MireaConfigurationManagement.csproj
Команда для перехода к сценарию эмулятора CLI
scenario execute shell_emulator
Сценарий эмулирует следующие bash команды ls, cd, pwd, uptime, date
Для корректной работы сценария, необходимо, чтобы был установлен MermaidCLI
GitDependenciesScenario – это сценарий, предназначенный для анализа и визуализации зависимостей Git-репозитория. Он выполняет слудующие операции
- Построение графа зависимостей коммитов в репозитории.
- Сохранение графа в формате Mermaid.
- Генерация изображения графа в формате PNG с использованием Mermaid CLI.
- Автоматическое открытие сгенерированного изображения для просмотра.
Команда для перехода к сценарию
scenario execute git_dependencies
Инструмент командной строки для учебного конфигурационного. Этот инструмент преобразует текст из входного формата в выходной. Синтаксические ошибки выявляются с выдачей сообщений. Входной текст на языке json принимается из стандартного ввода. Выходной текст на учебном конфигурационном языке попадает в файл, путь к которому задан ключом командной строки.
Команда для перехода к сценарию
scenario execute conf_language
Пример входных данных
{
/* Это комментарий к корневому объекту */
"configName": "TestConfig", // Комментарий к полю configName
"version": 1,
"settings": {
// Комментарий внутри settings
"maxUsers": 100,
"features": [
"login",
"dashboard",
"reports"
]
}
}
Выходной файл
table(
{#
Это комментарий к корневому объекту
#}
configName => 'TestConfig',
{#
Комментарий к полю configName
#}
version => 1,
settings => table(
{#
Комментарий внутри settings
#}
maxUsers => 100,
features => ['login'; 'dashboard'; 'reports']
)
)
Ассемблер и интерпретатор для учебной виртуальной машины (УВМ). Система команд УВМ представлена далее.
Разработано читаемое представление команд УВМ. Ассемблер принимает на вход файл с текстом исходной программы, путь к которой задается из командной строки. Результатом работы ассемблера является бинарный файл в виде последовательности байт, путь к которому задается из командной строки. Дополнительный ключ командной строки задает путь к файлулогу, в котором хранятся ассемблированные инструкции в духе списков “ключ=значение”, как в приведенных далее тестах. Интерпретатор принимает на вход бинарный файл, выполняет команды УВМ и сохраняет в файле-результате значения из диапазона памяти УВМ. Диапазон также указывается из командной строки. Форматом для файла-лога и файла-результата является csv.
Команда для выполнения сценария ассемблера
scenario execute assembler
Команда для выполнения сценария интерпретатора необходима команда
scenario execute interpreter
Поддерживаемые команды
LOAD_CONST 889 2
READ_MEM 0 4 704
WRITE_MEM 1 0 688
BITREV 5 224
LOAD_CONST - Загружает константное значение в регистр. Формат: LOAD_CONST <значение> <адрес_регистра>
READ_MEM - Читает значение из памяти и загружает в регистр. Формат: READ_MEM <базовый_регистр> <целевой_регистр> <смещение>
WRITE_MEM - Записывает значение из регистра в память. Формат: WRITE_MEM <исходный_регистр> <базовый_регистр> <смещение>
BITREV - Выполняет побитовый реверс значения из памяти и сохраняет в регистр. BITREV <целевой_регистр> <адрес_памяти>
Пример программы, которая выполяет поэлементно операцию bitreverse() над вектором длины 5 и записывает результат в исходный вектор
LOAD_CONST 0 0
LOAD_CONST 10 1
LOAD_CONST 20 2
LOAD_CONST 30 3
LOAD_CONST 40 4
LOAD_CONST 50 5
WRITE_MEM 1 0 1000
WRITE_MEM 2 0 1001
WRITE_MEM 3 0 1002
WRITE_MEM 4 0 1003
WRITE_MEM 5 0 1004
BITREV 1 1000
BITREV 2 1001
BITREV 3 1002
BITREV 4 1003
BITREV 5 1004
WRITE_MEM 1 0 1000
WRITE_MEM 2 0 1001
WRITE_MEM 3 0 1002
WRITE_MEM 4 0 1003
WRITE_MEM 5 0 1004