Я разрабатываю язык программирования, который компилируется в промежуточный байт-код. Тем не менее, у меня много проблем при проектировании структуры байткода. У кого-нибудь есть указатели на то, как представлять программу в двоичном формате? В качестве альтернативы, есть ли какие-либо ресурсы (желательно бесплатно) о том, как это сделать? Самое близкое, что я нашел, это описание байт-кода интерпретатора Lua.
EDIT: немного больше информации: я реализую свою собственную схему сбора мусора, которая сильно оптимизирована для неизменности и concurrency. Для эффективности я нуждаюсь в некоторых уникальных инструкциях байткода, которые позволяют программам взаимодействовать с схемой сбора мусора.