
Си — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.

Turbo Pascal — интегрированная среда разработки программного обеспечения для платформ DOS и Windows 3.x и язык программирования в этой среде, диалект языка Паскаль от фирмы Borland.
Сборка мусора в программировании — одна из форм автоматического управления памятью. Специальный процесс, называемый сборщиком мусора, периодически освобождает память, удаляя из неё ставшие ненужными объекты.

Проце́сс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.
Переполнение буфера — явление, возникающее, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера.
Обрабо́тка исключи́тельных ситуа́ций — механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы и приводят к невозможности (бессмысленности) дальнейшей отработки программой её базового алгоритма. В русском языке также применяется более короткая форма термина: «обработка исключений».

Отла́дка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится:
- узнавать текущие значения переменных;
- выяснять, по какому пути выполнялась программа.
Динамический анализ кода — анализ программного обеспечения, производящийся при помощи выполнения программ на реальном или виртуальном процессоре. Утилиты динамического анализа могут требовать загрузки специальных библиотек, перекомпиляцию программного кода. Некоторые утилиты могут инструментировать исполняемый код в процессе исполнения или перед ним. Для большей эффективности динамического анализа требуется подача тестируемой программе достаточного количества входных данных, чтобы получить более полное покрытие кода. Также следует позаботиться о минимизации воздействия инструментирования на исполнение тестируемой программы.
Ку́ча в информатике и программировании — название структуры данных, с помощью которой реализована динамически распределяемая память приложения.
Атрибут (бит) NX-Bit или XD-Bit — бит запрета исполнения, добавленный в страницы для реализации возможности предотвращения выполнения данных как кода. Используется для предотвращения уязвимости типа «переполнение буфера», позволяющей выполнять произвольный код на атакуемой системе локально или удалённо. Технология требует программной поддержки со стороны ядра операционной системы.

Орель БК-08 — бытовой компьютер производства Днепровского Машиностроительного Завода.
Безопасность доступа к памяти — концепция в разработке программного обеспечения, целью которой является избежание программных ошибок, которые ведут к уязвимостям, связанным с доступом к оперативной памяти компьютера, таким как переполнения буфера и висячие указатели.

Динамическим называется массив, размер которого, при необходимости, может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. В отличие от динамических массивов существуют статические массивы и массивы переменной длины. Размер статического массива определяется на момент компиляции программы. Размер массива переменной длины определяется во время выполнения программы. Отличием динамического массива от массива переменной длины является автоматическое изменение размеров, что не трудно реализуется в случаях его отсутствия, поэтому часто не различают массивы переменной длины с динамическими массивами.
Valgrind — инструментальное программное обеспечение, предназначенное для отладки использования памяти, обнаружения утечек памяти, а также профилирования. Название valgrind взято из германо-скандинавской мифологии, где является названием главного входа в Вальгаллу.
Отладчик использования памяти — инструментальное программное обеспечение для обнаружения утечек памяти и переполнений буфера. Это происходит из-за ошибок, связанных с выделением и освобождением динамической памяти. Программы, написанные на языках, обладающих поддержкой сборки мусора, как например, управляемый код, могут также нуждаться в отладчиках использования памяти, например, для выявления утечек памяти из-за «живых» ссылок в сборках.
Dmalloc — библиотека языка Си для отладки использования памяти, написанная Греем Уотсоном. Библиотека призвана помочь программистам в обнаружении множества ошибок выделения памяти, допущенных при написании кода, работающего с динамически распределяемой памятью. Она подменяет некоторые части стандартной программной библиотеки, поддерживаемой операционной системой для выделения памяти (malloc), и другого программного обеспечения своими собственными версиями, помогающими программисту обнаруживать переполнения буфера и другие критические проблемы программирования.
new
— оператор языка программирования C++, обеспечивающий выделение динамической памяти в куче. За исключением формы, называемой «размещающей формой new», new
пытается выделить достаточно памяти в куче для размещения новых данных и, в случае успеха, возвращает адрес свежевыделенной памяти. Однако, если new не может выделить память в куче, то он передаст (throw) исключение типа std::bad_alloc
. Это устраняет необходимость явной проверки результата выделения. После встречи компилятором ключевого слова new им генерируется вызов конструктора класса.
В программном обеспечении переполнение стека возникает, когда в стеке вызовов хранится больше информации, чем он может вместить. Обычно ёмкость стека задаётся при старте программы/потока. Когда указатель стека выходит за границы, программа аварийно завершает работу.
Heap spraying в информационной безопасности — это атака, использующая ошибки в работе с памятью приложения. Атакуя при помощи heap spraying, хакер заставляет приложение выделить память под большое количество объектов, содержащих вредоносный код. При этом повышается вероятность успеха эксплойта, который переносит поток исполнения на некоторую позицию внутри кучи. Важно понимать, что без эксплойта, позволяющего изменять поток исполнения, heap spraying не нанесёт какого-либо вреда. Атака основана на предсказуемости положения кучи в адресном пространстве процесса. Помимо этого, выделение памяти в куче — это детерминированная операция, которая и позволяет с успехом применять эту технику. Heap spraying особенно эффективна в браузерах, где хакер может выделять память, используя несколько строк JavaScript на веб-странице. Важную роль играет сходство выделения памяти в различных операционных системах, что делает эту атаку кроссплатформенной. В результате можно внести определённую последовательность байт в заранее предсказанный адрес в памяти целевого процесса.

IBM HandShaker — файловый менеджер для операционной системы DOS, разработанный в 1991 году. Имел русский и английский пользовательский интерфейс, встроенный скринсейвер, использовался как замена DOS Shell профессиональными программистами, ввиду многочисленных дополнительных возможностей программы.