Результат: ученик различает исходный код, программу, приложение, сборку и процесс и последовательно объясняет путь C#-кода от файла проекта до выполняемых машинных инструкций.
Содержание:
-
Сформировать точный словарь основных понятий
- инструкция, выражение, данные и вычисление;
- исходный код как текстовое описание программы;
- программа как формальная система команд;
- приложение как поставляемый программный продукт;
- процесс как запущенный экземпляр приложения с собственным состоянием.
-
Разделить язык, платформу и инструменты
C#как язык со своими синтаксическими и семантическими правилами;.NETкак платформа выполнения и набор библиотек;- компилятор, среда выполнения, стандартная библиотека,
SDK,IDEи отладчик; APIкак доступный программный контракт, а не внутренняя реализация.
-
Проследить путь от проекта до сборки
- исходные файлы
.csи файл проекта.csproj; - восстановление зависимостей, компиляция и создание сборки;
- промежуточный код
ILи метаданные; - конфигурации
DebugиReleaseи их назначение.
- исходные файлы
-
Проследить путь от сборки до выполнения
- поиск точки входа;
- загрузка сборки и необходимых библиотек;
JIT-компиляция выполняемого кода;- переход к машинным инструкциям и началу процесса;
AOTи предварительная компиляция как обзорные альтернативы.
-
Понять роль управляемого выполнения
- среда выполнения как посредник между программой и операционной системой;
- автоматическое управление памятью на обзорном уровне;
- контроль типов и диагностируемые отказы;
- различие исходного кода, промежуточного представления и машинного кода.
-
Связать выполнение с воспроизводимостью
- одинаковый алгоритм и одинаковые входные данные;
- внутреннее изменяемое состояние программы;
- внешние данные, текущее время и псевдослучайность как дополнительные входы;
- причины, по которым два запуска могут дать разные результаты.

