Язык программирования (programming language) — формализованный язык для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными; в них синтаксис и семантика строго определены, они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня:
Язык высокого уровня (high-level language) — язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1, Бейсик, Паскаль, Си, Ада. Язык низкого уровня (low-level language) — язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код.
Различают также следующие виды языков программирования:
Алгоритмический язык (algorithmic language) — совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования;
Неалгоритмический язык (nonalgorithmic language) — язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;
Автономный язык (freestanding language) — специализированный язык высокого уровня, в замкнутых СУБД (СУБД с автономным языком);
Базовый язык (base language) — машинный язык, общий для семейства ЭВМ, а также язык программирования в СУБД с автономным языком;
Гибридный (комбинированный) язык (hybrid language) — язык программирования, использующий также средства другого языка;
Графический язык (graphic language) — язык программирования, предназначенный для написания программ машинной графики и пользования ими;
Декларативный (непроцедурный) язык (declarative (nonprocedural) language) — язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);
Императивный (процедурный) язык (imperative language) — язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;
Исходный язык (source language) — язык программирования, на котором написана программа, в отличие от машинного языка, на котором программы выполняются компьютером. Исходные языки классифицируются на языки высокого уровня и языки низкого уровня;
Машинно-зависимый язык (машинно-ориентированный язык; computer-sensitive language, computer-oriented language) — язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ;
Машинно-независимый язык (machine-independent language) — язык программирования, структура и средства которого не связаны с конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами с этого языка;
Машинный язык (абсолютный язык, computer machine language) — язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами;
Общесетевой командный язык (CNCL, Common Network-Command language) — стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;
Общий язык (common language) — машинный язык, общий для группы ЭВМ и используемых ими внешних устройств;
Проблемно-ориентированный язык (problem-oriented language) — язык программирования, предназначенный для решения определенного класса задач (проблем);
Процедурный язык (процедурно-ориентированный язык, procedure-oriented language) — проблемно-ориентированный язык программирования, который облегчает выражение процедуры, как точного алгоритма;
Символический язык (язык символического кодирования, symbolic language) — язык программирования, ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов;
Системный язык (system language) — язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;
Специализированный язык (special language) — язык программирования, ориентированный на решение определенного круга задач;
Сценарный язык (script language) — язык, предназначенный для написания скриптов: программ, управляющих несколькими другими программами, в том числе написанными на разных языках программирования. Сценарные языки применяют для реализации системной интеграции разнородных программных компонентов и сред. К сценарным языкам относятся PHP, Python, Perl, Tcl, Lua, Rep, Ruby, Pike. Формальный язык (formal language) — язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики (formal grammar), представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;
Эталонный язык (reference language) — язык программирования, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;
Язык ассемблера (assembler language) — универсальный язык программирования, относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Язык ассемблера используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах.
Язык конструирования интерактивных технологий — в СУБД язык программирования, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;
Язык манипулирования данными (Data Manipulation Language, DML) — в СУБД язык программирования, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;
Язык меню (menu language) — язык диалога пользователя с системой, основанный на использовании меню;
Язык обработки списков (list language) — специализированный язык программирования, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;
Язык общего назначения (универсальный язык, universal programming language) — язык программирования, ориентированный на решение задач из любой области и объединяющий на единой методической основе существенные свойства и средства машинно- и проблемно-ориентированных языков программирования (например, язык ассемблера, ПЛ/1);
Язык ориентированный на пользователя (user-oriented language) — слабоформализованный язык программирования, близкий к естественному языку;
Язык описания данных (Data Description Language, DDL) — язык программирования, предназначенный для описания «концептуальной схемы» базы данных, создавался под большим влиянием XML Schema Language и RDF (Resource Description Framework);
Язык описания хранения данных (Data Storage Description Language, DSDL) — язык программирования, предназначенный для описания физической структуры (схемы) базы данных;
Язык описания страниц (Page Description Language, PDL) — специализированный язык программирования, предназначенный для печатающих устройств. Он предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript. Языком описания страниц называют также систему для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц;
Язык представления знаний (Knowledge Representation Language, KRL) — декларативный или декларативно-процедурный язык программирования, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);
Язык публикаций (publication language) — язык программирования, используемый для публикации алгоритмов и программ;
Язык реального времени (real-time language) — язык программирования, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);
Язык спецификаций (specification language) — декларативный язык программирования для задания спецификаций программ;
Язык управления заданиями (job-control language) — язык программирования, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями объектами являются целые программы и выходные потоки данных, обработанных этими программами;
Язык управления пакетом (batch control language) — набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;
Язык функционального программирования, функциональный язык (functional language) — декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений.
Алгоритмический язык (algorithmic language) — совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования;
Неалгоритмический язык (nonalgorithmic language) — язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;
Автономный язык (freestanding language) — специализированный язык высокого уровня, в замкнутых СУБД (СУБД с автономным языком);
Базовый язык (base language) — машинный язык, общий для семейства ЭВМ, а также язык программирования в СУБД с автономным языком;
Гибридный (комбинированный) язык (hybrid language) — язык программирования, использующий также средства другого языка;
Графический язык (graphic language) — язык программирования, предназначенный для написания программ машинной графики и пользования ими;
Декларативный (непроцедурный) язык (declarative (nonprocedural) language) — язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);
Императивный (процедурный) язык (imperative language) — язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения;
Исходный язык (source language) — язык программирования, на котором написана программа, в отличие от машинного языка, на котором программы выполняются компьютером. Исходные языки классифицируются на языки высокого уровня и языки низкого уровня;
Машинно-зависимый язык (машинно-ориентированный язык; computer-sensitive language, computer-oriented language) — язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ;
Машинно-независимый язык (machine-independent language) — язык программирования, структура и средства которого не связаны с конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами с этого языка;
Машинный язык (абсолютный язык, computer machine language) — язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами;
Общесетевой командный язык (CNCL, Common Network-Command language) — стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;
Общий язык (common language) — машинный язык, общий для группы ЭВМ и используемых ими внешних устройств;
Проблемно-ориентированный язык (problem-oriented language) — язык программирования, предназначенный для решения определенного класса задач (проблем);
Процедурный язык (процедурно-ориентированный язык, procedure-oriented language) — проблемно-ориентированный язык программирования, который облегчает выражение процедуры, как точного алгоритма;
Символический язык (язык символического кодирования, symbolic language) — язык программирования, ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов;
Системный язык (system language) — язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;
Специализированный язык (special language) — язык программирования, ориентированный на решение определенного круга задач;
Сценарный язык (script language) — язык, предназначенный для написания скриптов: программ, управляющих несколькими другими программами, в том числе написанными на разных языках программирования. Сценарные языки применяют для реализации системной интеграции разнородных программных компонентов и сред. К сценарным языкам относятся PHP, Python, Perl, Tcl, Lua, Rep, Ruby, Pike. Формальный язык (formal language) — язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики (formal grammar), представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;
Эталонный язык (reference language) — язык программирования, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;
Язык ассемблера (assembler language) — универсальный язык программирования, относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Язык ассемблера используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах.
Язык конструирования интерактивных технологий — в СУБД язык программирования, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;
Язык манипулирования данными (Data Manipulation Language, DML) — в СУБД язык программирования, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;
Язык меню (menu language) — язык диалога пользователя с системой, основанный на использовании меню;
Язык обработки списков (list language) — специализированный язык программирования, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;
Язык общего назначения (универсальный язык, universal programming language) — язык программирования, ориентированный на решение задач из любой области и объединяющий на единой методической основе существенные свойства и средства машинно- и проблемно-ориентированных языков программирования (например, язык ассемблера, ПЛ/1);
Язык ориентированный на пользователя (user-oriented language) — слабоформализованный язык программирования, близкий к естественному языку;
Язык описания данных (Data Description Language, DDL) — язык программирования, предназначенный для описания «концептуальной схемы» базы данных, создавался под большим влиянием XML Schema Language и RDF (Resource Description Framework);
Язык описания хранения данных (Data Storage Description Language, DSDL) — язык программирования, предназначенный для описания физической структуры (схемы) базы данных;
Язык описания страниц (Page Description Language, PDL) — специализированный язык программирования, предназначенный для печатающих устройств. Он предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript. Языком описания страниц называют также систему для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц;
Язык представления знаний (Knowledge Representation Language, KRL) — декларативный или декларативно-процедурный язык программирования, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);
Язык публикаций (publication language) — язык программирования, используемый для публикации алгоритмов и программ;
Язык реального времени (real-time language) — язык программирования, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);
Язык спецификаций (specification language) — декларативный язык программирования для задания спецификаций программ;
Язык управления заданиями (job-control language) — язык программирования, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями объектами являются целые программы и выходные потоки данных, обработанных этими программами;
Язык управления пакетом (batch control language) — набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;
Язык функционального программирования, функциональный язык (functional language) — декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений.