Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом.
В теории компиляторов удалением мёртвого кода называется оптимизация, удаляющая мёртвый код. Мёртвым кодом называют код, исполнение которого не влияет на вывод программы, все результаты вычисления такого кода являются мёртвыми переменными, то есть переменными, значения которых в дальнейшем в программе не используются.
Размотка цикла — техника оптимизации компьютерных программ, состоящая в искусственном увеличении количества инструкций, исполняемых в течение одной итерации цикла. Позволяет во многих случаях увеличить количество параллельно исполняемых блоков инструкций и более интенсивно использовать регистры процессора, кэш данных и исполнительных устройств.
Оптимизирующий компилятор — компилятор, в котором используются различные методы получения более оптимального программного кода при сохранении его функциональных возможностей. Наиболее распространённые цели оптимизации: сокращение времени выполнения программы, повышение производительности, компактификация программного кода, экономия памяти, минимизация энергозатрат, уменьшение количества операций ввода-вывода.
SSA — промежуточное представление, используемое компиляторами, в котором каждой переменной значение присваивается лишь единожды. Переменные исходной программы разбиваются на версии, обычно с помощью добавления суффикса, таким образом, что каждое присваивание осуществляется уникальной версии переменной. В SSA-представлении DU-цепи заданы явно и содержат единственный элемент.
GCC Inline Assembly — Встроенный ассемблер компилятора GCC, представляющий собой язык макроописания интерфейса компилируемого высокоуровнего кода с ассемблерной вставкой.
Программная конвейеризация циклов — это техника, используемая компиляторами, для оптимизации циклов, по аналогии с вычислительным конвейером в микропроцессорах. Является формой внеочередного исполнения с той разницей, что переупорядочивание выполняется не процессором, а компилятором. Некоторые компьютерные архитектуры, например Intel IA-64, имеют явную аппаратную поддержку для упрощения программной конвейеризации циклов.

Граф потока управления — в теории компиляции — множество всех возможных путей исполнения программы, представленное в виде графa.
Свёртка констант и распространение констант — часто используемые в современных компиляторах оптимизации, уменьшающие избыточные вычисления, путём замены константных выражений и переменных на их значения. Так же часто применяется расширенный алгоритм sparse conditional constant propagation, выполняющий одновременно распространение констант и удаление некоторого мёртвого кода.
В теории компиляторов, мёртвым кодом называют код, который может быть исполнен, но результаты его вычислений не влияют на дальнейшую программу. Другими словами это код, определяющий только мёртвые переменные или вообще не определяющий никакие переменные.
В теории компиляторов удалением недостижимого кода называется оптимизация, удаляющая недостижимый код, то есть код, который содержится в программе, но по каким-то причинам никогда не исполняется. В графе потока управления программы этот код содержится в узлах, недостижимых из начального узла. Само преобразование напрямую не влияет на скорость исполнения программы, ведь удаляемые инструкции всё равно никогда не исполняются и не занимают процессорного времени; но оно оказывает косвенный положительный эффект, снижая давление на кэш инструкций и расширяя возможности последующих оптимизаций, работающих с графом потока управления.
В программировании и теории компиляторов, недостижимым кодом называют часть кода программы, которая ни при каких условиях не может быть исполнена, поскольку является недостижимой в графе потока управления.
Удаление общих подвыражений — оптимизация компилятора, которая ищет в программе вычисления, выполняемые более одного раза на рассматриваемом участке, и удаляет вторую и последующие одинаковые операции, если это возможно и эффективно. Данная оптимизация требует проведения анализа потока данных для нахождения избыточных вычислений и практически всегда улучшает время выполнения программы в случае применения.
Индуктивная переменная — переменная в циклах, последовательные значения которой образуют арифметическую прогрессию. Наиболее распространенный пример — счётчик цикла. Индуктивные переменные часто используются в индексных выражениях массивов.
Слияние циклов — оптимизация компилятора, выполняющая объединение нескольких циклов, смежных в дереве циклов, в один. Преобразование возможно, если циклы имеют одинаковое количество итераций и не зависят друг от друга по данным. Слияние циклов может повысить локальность данных, что повышает эффективность работы кэша.
Расщепление тела цикла — оптимизация компилятора, которая разбивает цикл в программе на несколько циклов, каждый из которых имеет те же индексные границы, однако содержит только часть тела исходного цикла.
Инверсия цикла — оптимизация компилятора и трансформация цикла, в ходе которой While-цикл заменяется на оператор ветвления, содержащий Do-While-цикл. При правильном использовании данная оптимизация повышает производительность за счет конвейеризации.
Перестановка циклов — оптимизация компилятора при которой меняется порядок итерационных переменных, относящихся к группе вложенных циклов. Итерационная переменная, используемая во внутреннем цикле, перемещается во внешний цикл, и наоборот. Это часто делается, чтобы гарантировать, что элементы многомерных массивов доступны в том порядке, в котором они хранятся в памяти, т.е. для улучшения локальности ссылок.

Кривая Гильберта — это непрерывная фрактальная заполняющая пространство кривая, впервые описанная немецким математиком Давидом Гильбертом в 1891 году, как вариант заполняющих пространство кривых Пеано, открытых итальянским математиком Джузеппе Пеано в 1890 году.
Control-flow integrity (CFI) — общее название методов в компьютерной безопасности, направленных на то, чтобы ограничить возможные пути исполнения программы в пределах заранее предсказанного графа потока управления для повышения её безопасности. CFI усложняет для злоумышленника захват контроля над исполнением программы, делая невозможными некоторые способы переиспользования уже существующих частей машинного кода. К похожим техникам относятся code-pointer separation (CPS) и code-pointer integrity (CPI).