// Алгоритмизация #8 // Виртуальная машина //

Поделиться
HTML-код
  • Опубликовано: 10 июл 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 - Завершение
  • НаукаНаука

Комментарии • 21

  • @CryptoFunIT
    @CryptoFunIT  4 года назад +5

    В видео были допущены некоторые ошибки, обнаружил две (в прилагаемом исходном коде все приведённые ошибки исправлены):
    1. Файл main.c, функция compilevm_src - неправильная проверка открытия файла outputf, проверка стоит на дескриптор input.
    2. Файл stack.c, функция push_stack - необходима проверка на ошибку функции _input_stack и если такая ошибка существует, тогда не инкрементировать stack->index.

  • @QwertyQwerty-en3fb
    @QwertyQwerty-en3fb 4 года назад +6

    Здорова Братан давно ждал!Спасибо отдуши)))Ждёмс

  • @cicik57
    @cicik57 2 года назад +1

    когда ожидаешь реализацию реалистичной виртуальной машины, а там появляются не только опкоды прыжка к функции и назад, но и опкод коммента)

  • @user-qt4gz1dl6w
    @user-qt4gz1dl6w 3 года назад +1

    Черт ты гений! И даже не потому, что делаешь Виртуальную Машину, а потому, что ты можешь спокойно снимать видео, а не писать книги, например, причем ты пишешь в Sublime, WTF?

  • @kisakot6264
    @kisakot6264 4 года назад +4

    Ничего не понятно, но очень интересно. Хотелось бы все понимать, но выглядит ультра сложно 😑

  • @user-ft9jm8iu7b
    @user-ft9jm8iu7b 4 года назад

    Лайк

  • @Pumba053
    @Pumba053 4 года назад

    Спасибо Вам за труд, если возможно прошу снимать видео по Питону!)

    • @cicik57
      @cicik57 2 года назад

      а собственно всё равно на каком языке, делай то же самое на любом своём

  • @alexlyt9104
    @alexlyt9104 3 года назад

    Отличное видео. Ток я думал что в виртуалку передаем свою написанную программу, а она его уже обжимает и портит сигнатуру, что б реверсы не взломали например новую игру, или вир туда прячут. А как эту использовать, чет не до конца вьехал.

  • @volodymyrpalamar5515
    @volodymyrpalamar5515 4 года назад +2

    Сделай компилятор lvm или gcc в твой байт код

  • @nullpointer4200
    @nullpointer4200 4 года назад +3

    Скоро ОС будем писать

    • @5elll960
      @5elll960 4 года назад +1

      Неа)
      На асемблере тоже почти написали

    • @nullpointer4200
      @nullpointer4200 4 года назад +1

      5e LLL есть ролик?

  • @helloworld-fv8kx
    @helloworld-fv8kx Год назад

    От куда ты берёшь информацию для себя ? Как продвигаються в знаниях ?

    • @hedgehogsch.7270
      @hedgehogsch.7270 Год назад

      Гугли любые книжки по алгоритмам, архитектуре компьютеров и разработке компиляторов, общие вопросы раскрываются везде примерно одинаково

  • @drimgo_yt
    @drimgo_yt 4 года назад +1

    Сделаешь мини ОС на fasm??)

    • @CryptoFunIT
      @CryptoFunIT  4 года назад +1

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

    • @drimgo_yt
      @drimgo_yt 4 года назад

      @@CryptoFunIT хорошо

    • @0din0chka
      @0din0chka 4 года назад

      @@CryptoFunIT немного дописать, переписать и сделать интерпретатор языка forth. А forth это и интерпретатор, и компилятор, и шелл, и вм и ос в одном флаконе

  • @nurbekss2729
    @nurbekss2729 2 года назад

    Вдохновился тобой,написал схожий код.И не работает.А именно функция readvm_exec.Главное в очередь закидывает две десятки ,то есть все как бы должно работать .Но после двух десяток идут не понятные значения в добавлении в кучу.И все повторяется... .Буду рад если кто то поможет).Но главное, простые арифметические действия выполняет .

  • @aycon2488
    @aycon2488 Год назад

    Хочу программу, которая вырезает в твоих видео "в данном случае". Очень хорошая подача и материал, но это прям бесит уже.