Язы́к программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.
Пролог — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Лисп — семейство языков программирования, программы и данные в которых представляются системами линейных списков символов. Лисп был создан Джоном Маккарти для работ по искусственному интеллекту и до сих пор остаётся одним из основных инструментальных средств в данной области. Применяется он и как средство обычного промышленного программирования, от встроенных скриптов до веб-приложений массового использования, хотя популярным его назвать нельзя.
Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних.
Паради́гма программи́рования — это совокупность идей и понятий, определяющих стиль написания компьютерных программ. Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.
Логи́ческое программи́рование — парадигма программирования, основанная на математической логике — программы в ней задаются в форме логических утверждений и правил вывода. Наиболее известный язык логического программирования — Пролог.
Алго́л — название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ. Разработан комитетом по языку высокого уровня IFIP в 1958-1960 годах. Кардинально переработан в 1964-1968 годах. Один из первых языков высокого уровня. Был популярен в Европе, в том числе в СССР, в качестве языка как практического программирования, так и академического языка, но в США и Канаде не смог превзойти распространённый там Фортран. Оказал заметное влияние на все разработанные позднее императивные языки программирования — в частности, на язык Pascal.
Экспе́ртная систе́ма — компьютерная система, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. Современные экспертные системы начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х годах получили коммерческое подкрепление. Предшественники экспертных систем были предложены в 1832 году С. Н. Корсаковым, создавшим механические устройства, так называемые «интеллектуальные машины», позволявшие находить решения по заданным условиям, например, определять наиболее подходящие лекарства по наблюдаемым у пациента симптомам заболевания.
Комбинаторная оптимизация — область теории оптимизации в прикладной математике, связанная с исследованием операций, теорией алгоритмов и теорией вычислительной сложности. Комбинаторная оптимизация заключается в поиске оптимального объекта в конечном множестве объектов, чем очень похожа на дискретное программирование. Некоторые источники под дискретным программированием понимают целочисленное программирование, противопоставляя ему комбинаторную оптимизацию, имеющую дело с графами, матроидами и похожими структурами. Однако оба термина очень близко связаны и в литературе часто переплетаются. Комбинаторная оптимизация часто сводится к определению эффективного распределения ресурсов, используемых для поиска оптимального решения.
Предметно-ориентированный язык — компьютерный язык, специализированный для конкретной области применения. Построение такого языка и/или его структура данных отражают специфику решаемых с его помощью задач. Является ключевым понятием языково-ориентированного программирования.
Структура данных — программная единица, позволяющая хранить и обрабатывать (машиной) однотипные и/или логически связанные данные. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс.
Комбина́торная ло́гика — направление математической логики, занимающееся фундаментальными понятиями и методами формальных логических систем или исчислений. В дискретной математике комбинаторная логика тесно связана с лямбда-исчислением, так как описывает вычислительные процессы.
AMPL — язык программирования высокого уровня, разработанный в Bell Laboratories в 1985 году для того, чтобы описывать и решать сложные задачи оптимизации и теории расписаний. AMPL не решает задачи непосредственно, а вызывает соответствующие внешние «решатели» для получения решения.
Комбина́торное программирование — парадигма программирования, использующая принципы комбина́торной логики, то есть не требующая явного упоминания аргументов определяемой функции (программы) и использующая вместо переменных комбинаторы и композиции. Является особой разновидностью функционального программирования, но, в отличие от основного его направления, комбинаторное программирование не использует λ-абстракцию.
Аркадий Дмитриевич Закревский — советский и белорусский кибернетик, специалист в области дискретной математики, алгоритмического и логического проектирования. Свой жизненный путь окончил в качестве главного научного сотрудника Объединённого института проблем информатики. Был членом-корреспондентом НАН Беларуси, академиком Международной академии информации, информационных процессов и технологий, доктором технических наук, профессором. Аркадий Дмитриевич, стоявший у истоков рождения кибернетики в Советском Союзе, являлся основателем одной из самых известных школ логического проектирования в Советском Союзе и в мире.
Тип данных (тип) — множество значений и операций над этими значениями.
Методология разработки программного обеспечения — совокупность методов, применяемых на различных стадиях жизненного цикла программного обеспечения и имеющих общий философский подход.
Программирование наборов ответов — форма декларативного программирования, ориентированная на сложные задачи поиска, основывающееся на свойствах стабильной семантики логического программирования. Задача поиска сводится к вычислению устойчивой модели и наборов решателей — программ для генерации устойчивых моделей, которые используются для поиска. Вычислительный процесс, включённый в конструкцию набора решателей, — это надстройка над DPLL-алгоритмом, который всегда конечен.
Программирование графами — метод создания реальных работающих программ с использованием ориентированных графов, на горизонтальных дугах которых записываются логические выражения, формулы, функции, простейшие операции типа ⟸, :=, ∑, ∍ и т. д.