Приведе́ние (преобразование) ти́па — в информатике преобразование значения одного типа в значение другого типа.
Оптимизация — модификация системы для улучшения её эффективности. Система может быть одиночной компьютерной программой, цифровым устройством, набором компьютеров или даже целой сетью.
Nemerle — гибридный язык высокого уровня со статической типизацией, сочетающий в себе возможности функционального и объектно-ориентированного программирования, для платформ .NET и Mono. Главная особенность языка — развитая система метапрограммирования.
В теории компиляторов удалением мёртвого кода называется оптимизация, удаляющая мёртвый код. Мёртвым кодом называют код, исполнение которого не влияет на вывод программы, все результаты вычисления такого кода являются мёртвыми переменными, то есть переменными, значения которых в дальнейшем в программе не используются.
Оптимизирующий компилятор — компилятор, в котором используются различные методы получения более оптимального программного кода при сохранении его функциональных возможностей. Наиболее распространённые цели оптимизации: сокращение времени выполнения программы, повышение производительности, компактификация программного кода, экономия памяти, минимизация энергозатрат, уменьшение количества операций ввода-вывода.
C++11 или ISO/IEC 14882:2011 — новая версия стандарта языка C++, вместо ранее действовавшего ISO/IEC 14882:2003. Новый стандарт включает дополнения в ядре языка и расширение стандартной библиотеки, в том числе большую часть TR1 — кроме, вероятно, библиотеки специальных математических функций. Несмотря на то, что работа над стандартом уже завершена — данная статья, возможно, не будет точно соответствовать конечному варианту стандарта. Разные версии черновика будущего стандарта наряду с некоторыми другими документами, посвящёнными стандартизации C++, публикуются на сайте комитета ISO C++.
Прототипом функции в языке Си или C++ называется объявление функции, не содержащее тела функции, но указывающее имя функции, арность, типы аргументов и возвращаемый тип данных. В то время как определение функции описывает, что именно делает функция, прототип функции может восприниматься как описание её интерфейса.
Межпроцедурная оптимизация, или полнопрограммная оптимизация программ — оптимизация компилятора, которая использует глобальный анализ потока управления и затрагивает множество процедур, даже находящихся в разных модулях, за счёт чего может достигаться существенный прирост быстродействия.
SSA — промежуточное представление, используемое компиляторами, в котором каждой переменной значение присваивается лишь единожды. Переменные исходной программы разбиваются на версии, обычно с помощью добавления суффикса, таким образом, что каждое присваивание осуществляется уникальной версии переменной. В SSA-представлении DU-цепи заданы явно и содержат единственный элемент.
Граф потока управления — в теории компиляции — множество всех возможных путей исполнения программы, представленное в виде графa.
В теории компиляторов, мёртвым кодом называют код, который может быть исполнен, но результаты его вычислений не влияют на дальнейшую программу. Другими словами это код, определяющий только мёртвые переменные или вообще не определяющий никакие переменные.
В теории компиляторов удалением недостижимого кода называется оптимизация, удаляющая недостижимый код, то есть код, который содержится в программе, но по каким-то причинам никогда не исполняется. В графе потока управления программы этот код содержится в узлах, недостижимых из начального узла. Само преобразование напрямую не влияет на скорость исполнения программы, ведь удаляемые инструкции всё равно никогда не исполняются и не занимают процессорного времени; но оно оказывает косвенный положительный эффект, снижая давление на кэш инструкций и расширяя возможности последующих оптимизаций, работающих с графом потока управления.
В программировании и теории компиляторов, недостижимым кодом называют часть кода программы, которая ни при каких условиях не может быть исполнена, поскольку является недостижимой в графе потока управления.
Удаление общих подвыражений — оптимизация компилятора, которая ищет в программе вычисления, выполняемые более одного раза на рассматриваемом участке, и удаляет вторую и последующие одинаковые операции, если это возможно и эффективно. Данная оптимизация требует проведения анализа потока данных для нахождения избыточных вычислений и практически всегда улучшает время выполнения программы в случае применения.
Индуктивная переменная — переменная в циклах, последовательные значения которой образуют арифметическую прогрессию. Наиболее распространенный пример — счётчик цикла. Индуктивные переменные часто используются в индексных выражениях массивов.
Перестановка циклов — оптимизация компилятора при которой меняется порядок итерационных переменных, относящихся к группе вложенных циклов. Итерационная переменная, используемая во внутреннем цикле, перемещается во внешний цикл, и наоборот. Это часто делается, чтобы гарантировать, что элементы многомерных массивов доступны в том порядке, в котором они хранятся в памяти, т.е. для улучшения локальности ссылок.
C++14 — неофициальное название версии стандарта C++ ISO/IEC JTC1. C++14 можно рассматривать как небольшое расширение над C++11, содержащее в основном исправления ошибок и небольшие улучшения. Комитет разработки нового стандарта опубликовал черновик N3690 15 мая 2013. Рабочая версия черновика N3936 была опубликована 2 марта 2014 года, заключительный период голосования закрыт 15 августа 2014 года, а результат был объявлен 18 августа 2014 года.
В языках программирования C, C++, и D const является квалификатором типа: ключевое слово применяется к типу данных, показывая, что данные константны (неизменяемы). Это может быть использовано при объявлении (декларировании) констант. Отличительная особенность const
в C-подобных языках программирования проявляется при его комбинировании с типами данных, что дает сложное поведение в сочетании с указателями, ссылками, составными типами данных и при проверке типов.
В вычислительной технике встраивание функций — способ оптимизации, при котором вызов функции заменяется непосредственно её телом. Встраивание функций аналогично по сути подстановке из макроса, но в отличие от неё не изменяет исходный код и происходит во время компиляции, в то время как макросы изменяют исходный код перед компиляцией.