На странице расположены определения (понятия), относительно которых далее будут идти рассуждения и описания. Они могут существенно не совпадать с существующими определениями (понятиями), на что следует обратить самое пристальное внимание.
Комплексное решение, как единое целое "язык → аппаратура → ОС → прикладное ПО". Проектирование платформы должно проходить именно в таком порядке. Если выпадает хотя бы один компонент – фактически, такое техническое решение не является платформой.
Язык высокого уровня (ЯВУ) предлагает высокоуровневые абстракции для выражения алгоритмов и структур данных. Такой язык предлагает достаточное число абстракций, чтобы полностью избегать обращения непосредственно к аппаратным средствам.
Подвал – это нештатные средства ЯВУ, которые приходится вводить в ЯВУ по причине наличия семантического разрыва между аппаратными средствами и ЯВУ. Подвал тем больше, чем хуже:
Любой язык, который явно разграничивает безопасные возможности от небезопасных обладает контролируемым подвалом. Такие языки как:
полностью или вполне удовлетворяют определению контролируемого подвала.
Неконтролируемым подвалом обладают языки:
Их возможности по бесконтрольному доступу к аппаратуре (либо непредсказуемому поведению) приводят к невозможности построения безопасной языковой среды.
Программно-реализованная виртуальная машина, правильность которой протестирована с высоким покрытием тестами (95% и более). Необходима для проверки правильности работы кода на других архитектурах. Если сторонние архитектуры исполняют код с тем же результатом, что и референсная ВМ – значит портирование кода выполнено верно.
Специальный процессор, который исполняет команды ЯВУ. Он изолирует системные и пользовательские процессы от аппаратуры. Транслирует команды ЯВУ в инструкции бэк-процессора. Если фронт-процессор аппаратно недоступен, то его функции исполняет модуль ядра.
(Возможно) процессор общего назначения, который исполняет инструкции от фронт-процессора. В зависимости от типа бэк-процессора инструкции могут относиться как к семейству CISC, так и к семейству RISC.
Способность языка наиболее полно отражаться на аппаратную часть. Если в ЯВУ удаётся избежать нештатных средств языка (например, псевдомодуль SYSTEM в Oberon-7 или пакет unsafe в Go) – такой язык полностью герметичен (т. е. подвал отсутствует).
Достижение такого показателя крайне сложная задача, поэтому на практике следует принять правило 20/80 – "20% усилий дают 80% результата".
Классификация языков по степени герметичности:
Единая система архитектуры процессоров (ЕСАП) – набор архитектурных решений, для построения максимально совместимой сери процессоров различного применения. Подробно ЕСАП описан на соответствующей странице.
— p78su 2023-10-25 10:49:08