Ниже следуют рассуждения о сущности виртуальной машины для диалектического языка, которая должна диалектически отражать все теги на уровень исполнения. Такая виртуальная машина, которая снимает противоречие различных аппаратных архитектур. Какими свойствами должна обладать такая виртуальная машина чтобы диалектично отражать язык prolet на свои возможности?
Виртуальная машина отражает стык бытия и сознания, границу между языком как описанием реальности и машиной реализующей это описание реальности, к диалектике абстрактного и конкретного.
Какова должна быть виртуальная машина (ВМ), чтобы диалектически воплощать prolet в железе?
Ответ — не технический, а философско-материалистический:
IL для ВМ (и сама ВМ) в такой постановке вопроса неизбежен, но не как технический костыль, а как необходимый этап отрицания отрицания в развитии вычислительной формы.
Противоречие: язык vs аппаратура
Без посредника, отрицающего переход от абстрактного к конкретному — нет единства, нет перехода от идеи к действию.
Решение: IL как отрицание языка и отрицание железа
-- IL не есть prolet, но порождён им. -- IL не есть машинный код, но ведёт к нему.
Он — синтез:
Это — отрицание отрицания:
prolet (как идея) → IL (форма-посредник) → машинный код (реализация) → но на новом уровне — с сохранением смысла prolet.
IL должен быть не просто набором инструкций, а отражением онтологии prolet иными средствами, от философского созерцания и описания к практическому действию.
Каждый атомарный тег имеет однозначное, минимальное отражение в IL
IL-инструкции — атомарны в рамках ВМ, не могут быть прерваны
IL не зависит от архитектуры, ОС, компилятора
IL может расширяться, но только через синтез атомарных смыслов, а не хаос интегрированного движения
IL должен быть понятен человеку — как чертёж завода
По IL можно понять, как работает prolet
Каждый тег prolet → одна или несколько IL-инструкций, но без потери смысла.
( -> @фикс x)
(асм.НаСтек x)
(// Поместить значение в стек)
(если (Сравнить c == e)
тогда (...))
(асм.ИдтиЕслиНе рег0)
(// Порядок инструкций — порядок времени)
(n -> @фикс v)
(асм.Сохр рег0 v)
(// Организация стекового кадра)
(f a)
(асм.НаСтек а)
(асм.Вызов f)
(асм.Загр рег0)(// Извлечение результат)
(// Передача управления)
(авария m)
(асм.ВызовВектор m) (// Немаскируемое прерывание)
IL — не потеря смысла, а его трансляция в форму, пригодную для машинной практики.
ВМ — не имитация, не "виртуальность" в идеалистическом смысле, а материальная система, созданная человеком, чтобы преодолеть противоречие между разными формами бытия железа.
Диалектические задачи ВМ -- снять противоречие между:
Поддерживает множество архитектур, но через единую модель исполнения
ВМ — не абстракция, а процесс в памяти и на процессоре
IL — отражение сознания, машинный код — его материализация
Новые инструкции IL добавляются не по воле, а по необходимости практики
Реализует принципы владения prolet: нет случайного доступа
Поддерживает точный учёт времени выполнения — как в диалектике, развитие — через время
Не маскирует сбои, а фиксирует их как нарушение законов бытия
Мы выбираем стековую модель — не потому что она "популярна", а потому что она диалектически отражает структуру prolet:
(() -> переменная ...).Контроль потока — через метки и переходы, как в (если ...).
(асм.Сохр [х] сп) (// На стэк отправить ссылку на х)
(асм.Сохр рег0 сп) (// На стэк значение регистра)
(асм.Сохр у сп)(// На стэк содержимое значения)
(асм.Загр сп рег0)(// Со стека -- значение у)
(асм.Дек сп)(// Вытолкнуть с стека)
(асм.Загр сп рег1)(// Со стека -- значение х)
(асм.Дек сп)
(асм.Слож рег1 рег0)(// Сложить рег1 и рег0 с результатом в рег0)
(асм.Возврат) (// Возврат из функции)
Это — не ассемблер, это — чертёж диалектического процесса, выраженный иными средствами.
ВМ — не анархия, а организованная система:
Это — не идеалистическая "свобода", где текущий процесс эксплуатирует ресурсы процесса-неудачника, это — плановая экономика вычислений.
(если (Сравнить x > 0)
тогда (Напечатать "положительно")
иначе (Напечатать "не положительно"))
компилируется в IL:
(асм.Загр сп [x])(// Загрузить значение с вершины стэка, по ссылке в х)
(асм.Дек сп)
(асм.Сохр 0 сп)
(асм.Срав сп 0) (// РЕзультат сравнения в рег0)
(асм.ЕслиЛожь МеткаЕслиНет)
(асм.Вызов МеткаЕслиДа)
(асм.Метка МеткаЕслиНет)
(асм.Вызов ПечатьЕслиНет)
(асм.Возврат)
(асм.Метка МеткаЕслиДа)
(асм.Вызов ПечатьЕслиДа)
(асм.Возврат)
→ ВМ интерпретирует или JIT-компилирует в машинный код.
На каждом этапе — сохраняется смысл, но форма меняется в соответствии с условиями бытия.
prolet требует вв иде среды действия IL и ВМ, но не как технические утилиты, а как необходимые формы развития:
Это — не компромисс, это — синтез, где:
ВМ — это не замена железа, это — его диалектическое преодоление, как социализм преодолевает капитализм, сохраняя его производительные силы.