Существует множество типов языков программирования. Большинство языков программирования не следуют одному типу, поэтому трудно назначить тип для каждого языка. Примеры каждого типа приведены в каждом разделе ниже, так как они являются наиболее известными примерами этого типа.
Высокий уровень по сравнению с низким уровнем
| ![[icon]](https://www.alegsaonline.com/image/20px-Wiki_letter_w_cropped.svg.png) | Этот раздел нуждается в дополнительной информации. (август 2018) |
Языки программирования высокого уровня требуют меньших знаний об оборудовании по сравнению с языками программирования низкого уровня. Языки программирования высокого уровня требуют наличия интерпретатора для преобразования исходного кода в низкоуровневые языки программирования.
Декларативное и императивное программирование.
Языки декларативного программирования описывают "проблему", но обычно не говорят, как ее решать. Описание проблемы использует логику, и "решение" проблемы часто выглядит как автоматическое доказательство системы логических аксиом. Примерами таких языков программирования являются Prolog, XSLT, LISP и SQL.
Императивные языки программирования описывают систему изменения состояния. При запуске программа находится в определенном состоянии, и компьютеру дается инструкция по выполнению действия. Выполнение этих шагов приводит к "изменению состояния" программы.
В целом, декларативные языки программирования более безопасны и короче. Императивные языки программирования более распространены, так как они просты в использовании.
Функциональный против процедурного
Функциональное программирование смотрит на программирование как на функцию в математике. Программа получает ввод вместе с некоторой информацией и использует эту информацию для создания вывода. Она не будет иметь состояния между ними, а также не будет изменять вещи, не связанные с вычислениями.
Процедурные программы задают или описывают наборы шагов или изменения состояния.
на основе стека
Языки, основанные на стеке, выглядят в некоторой части памяти программы, как стек карт. Есть очень мало вещей, которые можно сделать со стеком. Элемент данных можно поместить в верхнюю часть стека. Эта операция обычно называется "push". Элемент данных может быть удален из верхней части стека. Это называется "pop". Вы можете посмотреть на элемент, находящийся в верхней части стека, не удаляя его. Это называется "подглядыванием".
Если программа написана как "push 5; push 3; add; pop", то она поставит 5 на вершину стека, поставит 3 на вершину 5, добавит два верхних значения (3 + 5 = 8), заменит 3 и 5 на 8 и распечатает вершину (8). Примерами языков программирования, основанных на стеке, являются языки Postscript и Forth.
Объектно-ориентированный
Объектно-ориентированные языки программирования размещают данные и функции, которые превращают данные в единое целое. Эта единица называется "объектом". Объекты могут взаимодействовать друг с другом и изменять данные другого объекта. Обычно это называется инкапсуляцией или сокрытием информации. Большинство современных языков программирования ориентированы на объект или, по крайней мере, допускают такой стиль программирования. Примерами этого являются Java, Python, Ruby, C++, C# и другие языки Си.
Потоковый
Потоковое программирование рассматривает программирование как соединение различных компонентов. Эти компоненты посылают сообщения туда и обратно. Один компонент может быть частью различных "программ", без необходимости внутренних изменений.