Язы́к программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.

Лисп — семейство языков программирования, программы и данные в которых представляются системами линейных списков символов. Лисп был создан Джоном Маккарти для работ по искусственному интеллекту и до сих пор остаётся одним из основных инструментальных средств в данной области. Применяется он и как средство обычного промышленного программирования, от встроенных скриптов до веб-приложений массового использования, хотя популярным его назвать нельзя.
Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних.
Интерпрета́тор — программа, выполняющая интерпретацию.
Форт — один из первых конкатенативных языков программирования, в котором программы записываются последовательностью лексем. Математические выражения представляются постфиксной записью при использовании стековой нотации. Поддерживает механизмы метарасширения семантики и синтаксиса языка для адаптации к нужной предметной области. Синтаксис базового уровня в Форте прост и состоит из единственного правила: «все определения разделяются пробелами». Определения Форта могут иметь любое сочетание символов.

Scheme [] — функциональный язык программирования, один из трёх наиболее популярных диалектов Лиспа. Создан в середине 1970-х годов исследователями Массачусетского технологического института Гаем Стилом и Джеральдом Сассменом.
Препроцессор — это компьютерная программа, принимающая данные на входе и выдающая данные, предназначенные для входа другой программы. О данных на выходе препроцессора говорят, что они находятся в препроцессированной форме, пригодной для обработки последующими программами (компилятор). Результат и вид обработки зависят от вида препроцессора; так, некоторые препроцессоры могут только выполнить простую текстовую подстановку, другие способны по возможностям сравниться с языками программирования. Наиболее частый случай использования препроцессора — обработка исходного кода перед передачей его на следующий шаг компиляции. Языки программирования C/C++ и система компьютерной вёрстки TeX используют препроцессоры, значительно расширяющие их возможности.
Предметно-ориентированный язык — компьютерный язык, специализированный для конкретной области применения. Построение такого языка и/или его структура данных отражают специфику решаемых с его помощью задач. Является ключевым понятием языково-ориентированного программирования.
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC и Паскаль. Из разработанного для обучения языка ABC вырос Python. Популярным языком, разработанным специально для образования является LOGO. Специально для российских школ разработана языковая среда КуМир. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования.
Common Lisp — диалект языка программирования Лисп, стандартизированный ANSI. Был разработан с целью объединения разрозненных на момент начала 1980-х годов диалектов Лиспа; доступно несколько реализаций Common Lisp, как коммерческих, так и свободно распространяемых.

Emacs Lisp — диалект языка программирования Lisp, используемый в текстовых редакторах GNU Emacs и XEmacs. Бо́льшая часть Emacs реализована на Emacs Lisp. Иногда также сокращённо называется elisp, хотя может возникнуть путаница со старым диалектом, имеющим такое же название и никак не связанным с Emacs Lisp.
MACLISP — диалект языка программирования Lisp, разработанный в лаборатории искусственного интеллекта MIT, которая в то время называлась Project MAC
Раскрутка компилятора — метод создания транслятора для некоторого языка программирования, при котором транслятор пишется на том же языке программирования; создание транслятором исполняемых файлов из исходного кода самого транслятора. Используется для переноса трансляторов на новые платформы. Появился в середине 1950-х годов. Позволяет создать транслятор, который генерирует сам себя. Применялся для создания трансляторов многих языков программирования, включая языки «Бейсик», «Алгол», «Си», «Паскаль», ПЛ/1, Factor, Haskell, «Модула-2», «Оберон», OCaml, Common Lisp, Scheme, Java, Python, Scala, Nemerle и другие.

Racket — мультипарадигменный язык программирования общего назначения, принадлежащий семейству Lisp/Scheme. Предоставляет среду языково-ориентированное программирование — одно из предназначений racket — создание, разработка и реализация языков программирования. Язык используется в различных контекстах: как скриптовый язык, как язык общего назначения, в обучении информатике, в научных исследованиях.
Языково-ориентированное программирование (ЯОП), также Расходящаяся разработка, также метаязыковая абстракция, также Разработка, опирающаяся на предметно-специфичный язык — парадигма программирования, заключающаяся в разбиении процесса разработки программного обеспечения на стадии разработки предметно-ориентированных языков (DSL) и описания собственно решения задачи с их использованием. Стадии могут вестись последовательно или параллельно, однократно или рекурсивно; DSL могут быть реализованы зависимо или независимо от базового языка и иметь одну или множество реализаций.
Типобезопасность — свойство языка программирования, характеризующее безопасность и надёжность в применении его системы типов.

NewLISP— диалект лиспа, созданный в качестве скриптового языка.
ISLISP язык программирования из семейства языков LISP, спецификация которого была разработана рабочей группой ISO/IEC JTC 1/SC 22/WG 16. Целью разработки было определение компактного языка, который объединял бы в себе общие черты реально используемых в промышленных целях диалектов Лиспа и мог бы помочь преодолеть различия между ними.
Спецификация (стандарт, определение) языка программирования — это предмет документации, который определяет язык программирования, чтобы пользователи и разработчики языка могли согласовывать, что означают программы на данном языке. Спецификации обычно являются подробными и формальными и в основном используются разработчиками языка, в то время как пользователи обращаются к ним в случае двусмысленности: например, спецификация языка C++ часто цитируется пользователями из-за сложности. Сопутствующая документация включает справочник по языку программирования, который специально предназначен для пользователей, и логическое обоснование языка программирования, которое объясняет, почему спецификация написана именно так; последние обычно более неформальны, чем спецификации.