
Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических и синтаксических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.
Языки программирования низкого уровня (машинно-ориентированные) — языки, в которых команды и данные учитывают архитектуру компьютера. Такие языки ориентированы на конкретный тип компьютера и учитывают его аппаратные особенности. Практически каждый тип компьютера имел собственный язык программирования низкого уровня. Одна и та же программа не могла выполняться на компьютере другого типа, что существенно ограничивало возможность обмена программами. Программы для первых ЭВМ разрабатывали именно на «машинных» языках. Это был сложный процесс, поэтому вскоре появились языка символьного кодирования. Команды подавались уже не двоичным кодом, а символами. Преобразование символьного кода в машинные команды осуществляется автоматически.
Программы, которые представлены совокупностью 0 и 1, называют машинными или машинным кодом. Он указывает, какое именно действие следует выполнить процессору.

Языки программирования делятся на универсальные и специализированные.
Универсальные языки предназначены для решения широкого класса задач. К таким языкам относятся Algol, Pascal, С и другие. Особым классом универсальных языков является визуальные среды программирования: VisualBasic, Delphi и другие.
Специализированные языки учитывают специфику предметной области. В настоящее время существуют десятки специализированных языков программирования, например, языки веб-программирования, языки скриптов и др. Язык скриптов используется для создания небольших вспомогательных программ, например Javascript — для создания динамических объектов на веб-страницах. Языки разметки содержат шаблоны и средства описания содержания, структуры и формата электронных документов, например язык HTML обеспечивает разметку гипертекстового документа. Языка для работы с базами данных обеспечивают создание и сопровождение баз данных. Отметим, что не все из перечисленных языков в классическом понимании являются языками программирования. Так, язык HTML является языком разметки гипертекста, но его также часто называют языком программирования.

По принципам программирования различают процедурные, непроцедурные языки и языки объектно-ориентированного программирования.
Процедурные языки основаны на описании последовательной смены значения ячеек памяти. Они манипулируют данными в пошаговом режиме, используя пошаговые инструкции, которые задаёт программист. В процедурных языках выдерживают четкую структуризацию программ, поэтому их еще называют языками структурного программирования. К таким языкам относятся Fortran, Algol, Pascal, BASIC и другие. Процедурные языки полностью удовлетворяют потребности разработки небольших программ и программ средней сложности.
В начале 80-х годов XX века объем и сложность программ достигли уровня, который требовал новых подходов к программированию. Непроцедурные языки эффективны для программирования поиска данных в больших объемах, а также для программирования задач, процесс решения которых невозможно описать точно (перевод, распознавание образов). В этих языках сама процедура поиска решения встроена в интерпретатор языка. К таким языкам относятся Prolog, Langin и другие.
В конце XX в. была презентована новая методика программирования, получила название объектно-ориентированного программирования (ООП). То есть, начали развиваться языки, содержащие конструкции, позволяющие определять объекты, принадлежащие к классам и имеющие средства для работы с абстрактными типами данных. К таким языкам относятся C ++, Java, C #, Python и другие. Сегодня языки ООП практически вытеснили с рынка профессионального программирования процедурные языки.

Проектная работа учащегося муниципального бюджетно-общеобразовательного учреждения города Костромы «Средняя общеобразовательная школа №37 имени выдающегося земляка Тартышева Андрея Михайловича» Зачёсова Дмитрия.
