// Алгоритмизация #8 // Виртуальная машина //
HTML-код
- Опубликовано: 29 июл 2024
- Исходники: github.com/Number571/CVM
О виртуальных машинах:
habr.com/ru/company/intel/blo...
www.sternkn.com/stack-based-vs...
Минимальные интерпретаторы байт-кодов:
tech.badoo.com/ru/article/579...
Вики:
Байт-код: ru.wikipedia.org/wiki/%D0%91%...
JVM: ru.wikipedia.org/wiki/Java_Vi...
JIT: ru.wikipedia.org/wiki/JIT-%D0...
AOT: ru.wikipedia.org/wiki/AOT-%D0...
Таймкоды:
00:00:00 - Введение
00:06:16 - Интерфейс программы
00:13:25 - Библиотека для работы со стэком
00:30:30 - Инструкции виртуальной машины
00:38:50 - Функция readvm_src. Установка меток
00:49:17 - Функция readvm_src. Компиляция
01:05:05 - Написание функции факториала
01:13:30 - Проверка работы компиляции
01:26:21 - Функция readvm_exc. Интерпретация
01:43:47 - Проверка работы интерпретации
01:47:49 - Завершение - Наука
В видео были допущены некоторые ошибки, обнаружил две (в прилагаемом исходном коде все приведённые ошибки исправлены):
1. Файл main.c, функция compilevm_src - неправильная проверка открытия файла outputf, проверка стоит на дескриптор input.
2. Файл stack.c, функция push_stack - необходима проверка на ошибку функции _input_stack и если такая ошибка существует, тогда не инкрементировать stack->index.
Здорова Братан давно ждал!Спасибо отдуши)))Ждёмс
когда ожидаешь реализацию реалистичной виртуальной машины, а там появляются не только опкоды прыжка к функции и назад, но и опкод коммента)
Ничего не понятно, но очень интересно. Хотелось бы все понимать, но выглядит ультра сложно 😑
Лайк
Черт ты гений! И даже не потому, что делаешь Виртуальную Машину, а потому, что ты можешь спокойно снимать видео, а не писать книги, например, причем ты пишешь в Sublime, WTF?
Спасибо Вам за труд, если возможно прошу снимать видео по Питону!)
а собственно всё равно на каком языке, делай то же самое на любом своём
Сделай компилятор lvm или gcc в твой байт код
Отличное видео. Ток я думал что в виртуалку передаем свою написанную программу, а она его уже обжимает и портит сигнатуру, что б реверсы не взломали например новую игру, или вир туда прячут. А как эту использовать, чет не до конца вьехал.
Скоро ОС будем писать
Неа)
На асемблере тоже почти написали
5e LLL есть ролик?
От куда ты берёшь информацию для себя ? Как продвигаються в знаниях ?
Гугли любые книжки по алгоритмам, архитектуре компьютеров и разработке компиляторов, общие вопросы раскрываются везде примерно одинаково
Сделаешь мини ОС на fasm??)
Вряд-ли. Для реализации ОС, даже минимальной версии, необходимо потратить достаточно много часов, как со стороны изучения теории, так и со стороны практики. К сожалению, пока я не могу выделить столько времени.
@@CryptoFunIT хорошо
@@CryptoFunIT немного дописать, переписать и сделать интерпретатор языка forth. А forth это и интерпретатор, и компилятор, и шелл, и вм и ос в одном флаконе
Вдохновился тобой,написал схожий код.И не работает.А именно функция readvm_exec.Главное в очередь закидывает две десятки ,то есть все как бы должно работать .Но после двух десяток идут не понятные значения в добавлении в кучу.И все повторяется... .Буду рад если кто то поможет).Но главное, простые арифметические действия выполняет .
Хочу программу, которая вырезает в твоих видео "в данном случае". Очень хорошая подача и материал, но это прям бесит уже.