Оглавление
Базовый блок
-
Определение базового блока
- Базовый блок – это прямолинейная кодовая последовательность без ответвлений на входе и выходе.
- Базовый блок удобен для анализа и является узловой точкой в графе потока управления.
-
Свойства базового блока
- Базовый блок имеет одну точку входа и одну точку выхода.
- Код в базовом блоке выполняется последовательно и ровно один раз.
- Базовый блок может быть исходным кодом, ассемблерным кодом или последовательностью инструкций.
-
Алгоритм генерации базовых блоков
- Анализатор сканирует код и отмечает границы блоков.
- Список кода “обрезается” в точках начала и конца блоков, формируя базовые блоки.
- Метод генерации не всегда создает максимальные базовые блоки, но обычно достаточно.
-
Примеры и рекомендации
- У каждого базового блока есть лидер, который является первой инструкцией.
- Инструкции, завершающие базовый блок, включают условные и безусловные переходы, возврат к вызывающей процедуре и исключения.
- Инструкции, с которых начинается новый базовый блок, включают точки входа в процедуры и функции, цели для переходов и обработчики исключений.
- Для корректной генерации базовых блоков некоторые инструкции могут быть изменены.
-
Ссылки и дополнительные ресурсы
- Статья содержит ссылки на другие ресурсы по программированию и компиляции.
- Упоминаются внешние ссылки и коллекции компиляторов GNU.