====== Определения ====== На странице расположены определения (понятия), относительно которых далее будут идти рассуждения и описания. Они могут существенно не совпадать с существующими определениями (понятиями), на что следует обратить самое пристальное внимание. ===== Платформа ===== Комплексное решение, как единое целое "язык -> аппаратура -> ОС -> прикладное ПО". Проектирование платформы должно проходить именно в таком порядке. Если выпадает хотя бы один компонент -- фактически, такое техническое решение не является платформой. ===== Язык высокого уровня ===== Язык высокого уровня (ЯВУ) предлагает высокоуровневые абстракции для выражения алгоритмов и структур данных. Такой язык предлагает достаточное число абстракций, чтобы полностью избегать обращения непосредственно к аппаратным средствам. ===== Подвал ЯВУ ===== Подвал -- это нештатные средства ЯВУ, которые приходится вводить в ЯВУ по причине наличия семантического разрыва между аппаратными средствами и ЯВУ. Подвал тем больше, чем хуже: * спроектирован ЯВУ; * ЯВУ не соответствует аппаратной архитектуре; * ЯВУ не соответствует программной архитектуре. ===== Контролируемый подвал ===== Любой язык, который явно разграничивает безопасные возможности от небезопасных обладает контролируемым подвалом. Такие языки как: * Oberon-7 * Modula-2 * Go * Rust * C# полностью или вполне удовлетворяют определению контролируемого подвала. Неконтролируемым подвалом обладают языки: * ассемблер * Си * С++ Их возможности по бесконтрольному доступу к аппаратуре (либо непредсказуемому поведению) приводят к невозможности построения безопасной языковой среды. ===== Референсная виртуальная машина ===== Программно-реализованная виртуальная машина, правильность которой протестирована с высоким покрытием тестами (95% и более). Необходима для проверки правильности работы кода на других архитектурах. Если сторонние архитектуры исполняют код с тем же результатом, что и референсная ВМ -- значит портирование кода выполнено верно. ===== Фронт-процессор ===== Специальный процессор, который исполняет команды ЯВУ. Он изолирует системные и пользовательские процессы от аппаратуры. Транслирует команды ЯВУ в инструкции бэк-процессора. Если фронт-процессор аппаратно недоступен, то его функции исполняет модуль ядра. ===== Бэк-процессор ===== (Возможно) процессор общего назначения, который исполняет инструкции от фронт-процессора. В зависимости от типа бэк-процессора инструкции могут относиться как к семейству CISC, так и к семейству RISC. ===== Герметичность ЯВУ ===== Способность языка наиболее полно отражаться на аппаратную часть. Если в ЯВУ удаётся избежать нештатных средств языка (например, псевдомодуль SYSTEM в Oberon-7 или пакет unsafe в Go) -- такой язык полностью герметичен (т. е. подвал отсутствует). Достижение такого показателя крайне сложная задача, поэтому на практике следует принять правило 20/80 -- "20% усилий дают 80% результата". Классификация языков по степени герметичности: * 100% -- герметичен; сверх-критичные сферы применения; * 95% -- высоко-герметичный; критичные сферы применения (военпром, авионика. медицина); * 82% -- практическая герметичность; промышленное применение (роботы общего назначения, массовая автоматизация, носимая элктроника); * 66% -- низкая герметичность; широкое потребление (игрушки, световая реклама и т.п. -- всё, что не имеет критического влияния). ===== Единая система архитектуры процессоров ===== Единая система архитектуры процессоров (ЕСАП) -- набор архитектурных решений, для построения максимально совместимой сери процессоров различного применения. Подробно ЕСАП описан на [[плоскость:есап|соответствующей странице]]. --- //[[robo.help@yandex.ru|p78su]] 2023-10-25 10:49:08//