Delphi — императивный, структурированный, объектно-ориентированный, высокоуровневый язык программирования со строгой статической типизацией переменных. Основная область использования — написание прикладного программного обеспечения.
Система типов — совокупность правил в языках программирования, назначающих свойства, именуемые типами, различным конструкциям, составляющим программу — таким как переменные, выражения, функции или модули. Основная роль системы типов заключается в уменьшении числа багов в программах посредством определения интерфейсов между различными частями программы и последующей проверки согласованности взаимодействия этих частей. Эта проверка может происходить статически или динамически, а также быть комбинацией обоих видов.
Standard ML (SML) — компилируемый язык программирования общего назначения высшего порядка, основанный на системе типов Хиндли — Милнера.
Сборка мусора в программировании — одна из форм автоматического управления памятью. Специальный процесс, называемый сборщиком мусора, периодически освобождает память, удаляя из неё ставшие ненужными объекты.
Класс — в объектно-ориентированном программировании, модель для создания объектов определённого типа, описывающая их структуру и определяющая алгоритмы для работы с этими объектами.
Одиночка — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.
Стати́ческий ана́лиз ко́да — анализ программного обеспечения, производимый без реального выполнения исследуемых программ. В большинстве случаев анализ производится над исходным кодом, хотя, иногда анализу подвергается объектный код, например P-код или код на MSIL. Термин обычно применяют к анализу, производимому специальным программным обеспечением (ПО), тогда как ручной анализ называют «program understanding», «program comprehension».
В теории компиляторов удалением мёртвого кода называется оптимизация, удаляющая мёртвый код. Мёртвым кодом называют код, исполнение которого не влияет на вывод программы, все результаты вычисления такого кода являются мёртвыми переменными, то есть переменными, значения которых в дальнейшем в программе не используются.
Оптимизирующий компилятор — компилятор, в котором используются различные методы получения более оптимального программного кода при сохранении его функциональных возможностей. Наиболее распространённые цели оптимизации: сокращение времени выполнения программы, повышение производительности, компактификация программного кода, экономия памяти, минимизация энергозатрат, уменьшение количества операций ввода-вывода.
Javac — оптимизирующий компилятор языка java, включенный в состав многих Java Development Kit (JDK).

Go — компилируемый многопоточный язык программирования, разработанный внутри компании Google. Разработка Go началась в сентябре 2007 года, его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон, занимавшиеся до этого проектом разработки операционной системы Inferno. Официально язык был представлен в ноябре 2009 года. На данный момент поддержка официального компилятора, разрабатываемого создателями языка, осуществляется для операционных систем FreeBSD, OpenBSD, Linux, macOS, Windows, DragonFly BSD, Plan 9, Solaris, Android, AIX.. Также Go поддерживается набором компиляторов gcc, существует несколько независимых реализаций.
SSA — промежуточное представление, используемое компиляторами, в котором каждой переменной значение присваивается лишь единожды. Переменные исходной программы разбиваются на версии, обычно с помощью добавления суффикса, таким образом, что каждое присваивание осуществляется уникальной версии переменной. В SSA-представлении DU-цепи заданы явно и содержат единственный элемент.

Граф потока управления — в теории компиляции — множество всех возможных путей исполнения программы, представленное в виде графa.
Свёртка констант и распространение констант — часто используемые в современных компиляторах оптимизации, уменьшающие избыточные вычисления, путём замены константных выражений и переменных на их значения. Так же часто применяется расширенный алгоритм sparse conditional constant propagation, выполняющий одновременно распространение констант и удаление некоторого мёртвого кода.
В теории компиляторов, мёртвым кодом называют код, который может быть исполнен, но результаты его вычислений не влияют на дальнейшую программу. Другими словами это код, определяющий только мёртвые переменные или вообще не определяющий никакие переменные.
В программировании и теории компиляторов, недостижимым кодом называют часть кода программы, которая ни при каких условиях не может быть исполнена, поскольку является недостижимой в графе потока управления.
Удаление общих подвыражений — оптимизация компилятора, которая ищет в программе вычисления, выполняемые более одного раза на рассматриваемом участке, и удаляет вторую и последующие одинаковые операции, если это возможно и эффективно. Данная оптимизация требует проведения анализа потока данных для нахождения избыточных вычислений и практически всегда улучшает время выполнения программы в случае применения.
Стратегия вычисления — правила семантики языка программирования, определяющие, когда следует вычислять аргументы функции, и какие значения следует передавать. Например, стратегия «вызов-при-упоминании/передача-по-ссылке» диктует, что аргументы должны быть вычислены перед выполнением тела вызываемой функции, и что ей должны быть предоставлены две возможности в отношении каждого аргумента: чтение текущего значения и его изменение посредством операции присваивания. На эту стратегию похожа стратегия редукции в лямбда-исчислении, но есть отличия.
MLton — кроссплатформенный полнопрограммно-оптимизирующий компилятор языка программирования Standard ML (SML). Как и большинство остальных реализаций Standard ML, написан на самом Standard ML и распространяется с открытыми исходными кодами под лицензией в стиле BSD.
Несовместимость Си и C++ — особенности языков программирования C++ и Си, затрудняющие перенос кода на языке Си на C++.