Перейти к содержанию

Абстрактная машина

Posted on:4 февраля 2023 г. at 20:32

Example Dynamic OG Image link Подобно C и C++, Rust основан на абстрактной машине.

Вводит в заблуждение.

На самом деле.

За редким исключением, вы никогда не будете рассуждать о реальном процессоре. Вы пишете код для абстрактного ЦП. Rust понимает, что вы хотите, и переводит это в реальный RISC-V/x86/… машинный код.

Абстрактная машина (АМ):

Неправильные представления: Люди могут ошибочно предположить, Rust использует непосредственно центральный процессор.

Без АМС АМ
0xffff_ffff бы сделал операцию процессора.AM может переводить битовые комбинации чтобы упаковать несвязанные данные.
0xff и 0xff - один и тот же указатель.Указатели AM могут иметь присоединенный домен для оптимизации.
Любой указатель r/w на 0xff всегда в работает.AM может выдать удобные операции, построенные на доверии «не может произойти разночтения».
Чтение un-init просто дает случайное значение.AM понимает, если чтение невозможно, то может удалить все связанные битовые коды.
Гонка данных просто дает случайное значение.AM может разделить чтение-запись.
Нулевая ссылка 0x0 в каком-то регистре.Знает, что ссылка 0x0 вызовет Ошибку.

Эта таблица предназначена только для описания того, что делает AM. В отличие от C или C++, Rust никогда не позволяет вам делать неправильные вещи, если вы не заставляете его выполнять небезопасный код (unsafe).