JavaScript

Как указать интерпретатору, что я хочу объявить регистровую переменную?

Интерпретатору никак, да и компилятору в большинстве современных версий языков никак, да и в старину это носило рекомендательный характер. Хорошая статья на эту тему -
https://msdn.microsoft.com/ru-ru/magazine/dn973015.aspx
Да и вообще регистры в данной программисту архитектуре процессора - это совсем не то, что внутри процессора на самом деле, это только модель для простоты программирования.
"При отображении регистров происходит преобразование программных ссылок на архитектурные регистры в ссылки на больший набор физических регистров. (Р6 в действительности содержит 40 физических регистров, реализованных в виде буфера восстановления последовательности). По существу, процессор "размножает клонированием" ограниченное число программируемых, архитектурных регистров и отслеживает, какие клоны содержат наиболее поздние значения. Это предотвращает задержки, которые в противном случае были бы внесены в процесс обработки команд ложными взаимодействиями в результате конфликтующих обращений к регистрам. "
Устройство процессора гораздо сложнее, чем его модель в описаниях для программиста, недаром в современных процессорах миллиарды транзисторов. Там и многоуровневые кэши, и, например, устройства предсказания вероятных в будущем команд, чтобы, если нужные для их выполнения устройства сейчас свободны, заготовить впрок их результаты - не понадобятся, так и нет, зато если понадобятся, уже будут готовы :) И т. п.
Виталий Маевский
Виталий Маевский
53 781
Лучший ответ
Никак. В языках, работающих в виртуальных машинах, понятие "регистровая переменная" не имеет смысла. Впрочем, и в большинстве языков, компилируемых в машинные коды, это понятие отсутствует.

Регистровая переменная - это атавизм C/C++ оставшийся с тех времён, когда компиляторы ещё не умели качественно оптимизировать код.
Хочешь делать низкоуровневые оптимизации - пиши на C++.
AV
Aleksey Volovin
2 223