Базовый CS с нуля
От машинного кода к языку: свободное припоминание
Припоминание сильнее перечитывания. На каждый промпт проговори или запиши полный ответ по памяти, прежде чем открыть модельный — именно усилие припоминания закрепляет материал.
Восстанови костяк юнита, не подглядывая: правило один-к-одному у assembler, зачем нужны высокоуровневые языки, compile vs interpret vs JIT, что даёт runtime и полный путь от исходника до исполнения.
- 01Что делает assembler и в чём правило один-к-одному?
- 02Assembly уже даёт machine code читаемые имена. Зачем поверх него изобретать высокоуровневые языки?
- 03Сравни compiler и interpreter по тому, что они производят и когда транслируют.
- 04Что такое JIT-компиляция и какую проблему отражает период прогрева?
- 05Что такое runtime и какие четыре сервиса он обычно предоставляет?
- 06Проследи шесть стадий от текста исходника до исполнения программы на CPU.
Если ты смог восстановить каждый ответ по памяти, ты держишь костяк юнита: assembler переводит assembly один-к-одному в machine code; высокоуровневые языки добавляют продуктивность и переносимость через абстракцию; compiler транслирует всё заранее, а interpreter — оператор за оператором во время работы, JIT же компилирует hot spot’ы на лету после прогрева; runtime даёт управление памятью, call stack, стандартную библиотеку и VM под твоим кодом; а шестистадийный конвейер доносит каждую программу от текста исходника до цикла CPU fetch-decode-execute.