Инструменты: линкер, компилятор, интерпретатор, отладчик, ПО для тестирования
Статья объясняет ключевые концепции toolchain с примерами, контрольными вопросами и основными компонентами.
В двух словах
- Компилятор преобразует исходный код в машиноориентированное представление.
- Линкер объединяет объектные файлы и библиотеки в программу.
- Интерпретатор выполняет код напрямую или через bytecode/VM.
- Отладчик инспектирует и управляет процессом выполнения.
- ПО для тестирования автоматизирует проверку поведения.
Краткое описание
Цепочка сборки
Типичный порядок:
- Препроцессор
- Компилятор (AST/IR → объектный код)
- Ассемблер
- Линкер (разрешение символов, перемещение, создание исполняемого файла, например ELF)
Связывание:
- Статическое: библиотека встраивается в программу
- Динамическое: библиотека загружается во время выполнения
Интерпретатор и VM
- Интерпретация синтаксического дерева (AST)
- Bytecode и виртуальная машина
- JIT (Just-in-Time) для повышения пропускной способности
Отладчик
Точки останова, пошаговое выполнение, мониторинг переменных, стек вызовов, анализ памяти, анализ core dump.
ПО для тестирования
Фреймворк для тестов, runner, assertions, mocks, покрытие кода и отчеты. Интегрируется в CI/CD.
Контрольные вопросы
- Поток артефактов: исходный код → объектный файл → бинарник
- Различия статического и динамического связывания
- Как работают bytecode, VM и JIT
- Отладчик: символы, точки останова, стек вызовов
- Пирамида тестирования: unit/интеграционные/системные/приёмочные
- Документирование: версии инструментов, скрипты сборки, отчеты о тестах
Основные компоненты
- Препроцессор
- Компилятор (парсер/AST/IR)
- Ассемблер
- Линкер
- Загрузчик и динамический связыватель
- Интерпретатор/VM
- Отладчик
- Фреймворк для тестов и runner
- Автоматизация CI/CD
- Отчеты, логи, покрытие кода
Практический пример (последовательность операций)
1) Компиляция: summe.c -> summe.o
2) Связывание: summe.o + main.o -> programm
3) Отладка: точка останова в addiere(), мониторинг a,b
4) Тесты: unit-тест addiere(2,3)=5, интеграционный тест вывода CLI
Преимущества и недостатки
- Компилятор: быстрое выполнение, хорошая оптимизация; минусы: время сборки и проблемы портируемости
- Интерпретатор: быстрая итерация; минус: overhead во время выполнения
- ПО для тестирования: раннее обнаружение ошибок; минус: затраты на поддержку
Типичные вопросы к экзамену (с кратким ответом)
- Компилятор или интерпретатор? Компилятор работает заранее, интерпретатор во время выполнения.
- Что делает линкер? Разрешает символы и создаёт исполняемый файл.
- Какие уровни тестирования? Unit, интеграционные, системные, приёмочные.
- Как отладчик помогает? Точки останова, пошаговое выполнение, анализ стека.



