Классификация языков программирования:
Язык программирования — формальная знаковая система, которая состоит из набора лексических, синтаксических и семантических правил и предназначенная для записи компьютерных программ.
По мере развития компьютерной техники, создавались и развивались языки программирования. На данный момент известно более восьми тысяч языков программирования, включая нестандартные, которыми могут пользоваться только их разработчики.
Перечислим и кратко рассмотрим существующие классификации языков программирования.
Классификация по уровням:
1) Низкий уровень – языки данного уровня ориентированы на конкретный тип процессора и учитывают его особенности, то есть являются машинно-зависимыми. Используются для написания системных программ, драйверов, с возможностью прямого доступа к аппаратным ресурсам. К данному классу относятся такие языки как: Автокод, Ассемблер. Операторы языка – это машинные команды, которые записаны символьным обозначением. Для их преобразования в двоичный код были созданы специальные программы – трансляторы. Транслятор состоит из компилятора, превращающего текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (исполняемые файлы *. exe) и интерпретатора – который интерпретирует исходный текст программы без предварительного перевода, программа остаётся на своём языке, но для запуска нужен только этот интерпретатор.
2) Высокий уровень - языки представленного уровня разработаны для повышения эффективности работы программиста, являются машинно-независимыми. Отличительная черта данных языков– это введение смысловых конструкций, которые описывают структуры данных и операции над ними. Программа, написанная на языках высокого уровня, недоступна для понимания ЭВМ, поэтому для перевода кода программы в машинный код также как и в языках низкого уровня, используются трансляторы. К языкам высокого уровня относятся: C++, C#, Java, JavaScript, Python, PHP, Ruby, Perl, Паскаль, Лисп.
По функциональному назначению:
1) Проблемно-ориентированные: FORTRAN (FORmula TRANslator) – научные и инженерные задачи; COBOL (Common Business Oriented Language) – экономические и коммерческие задачи
2) Универсальные: PASCAL (Philips Automatic Sequence CALculator), BASIC (Beginner ALL-purpose Symbolic Instruction Code), C,С++, Java и др.
По типам решаемых задач:
1) Вычислительного характера – Algol, Fortran, COBOL, BASIC, PASCAL, Ada и др.
2) Разработка программ-оболочек, систем, интерфейса – Ассемблер, С, С++, Java, Smalltalk, Forth.
3) Оформление документов, обработка больших текстовых файлов, разработка баз данных – HTML, Perl, SQL, QBE.
4) Задачи искусственного интеллекта – Lisp, Prolog, Рефал и др.
Процедурные, непроцедурные, объектно-ориентированные:
1. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. Процедурные языки делятся на:
• Структурные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1.
• Операционные языки. В операционных языках для этого используются несколько операций.Среди операционных известны Фортран, Бейсик, Фокал.
2. Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века. К непроцедурному программированию относятся:
• Функциональные языки, где программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь делятся на еще более простые задачи и т.д. Один из основных элементов функциональных языков – рекурсия. Оператора присваивания и циклов в классических функциональных языках нет.
• В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Программа на Прологе содержит, набор предикатов–утверждений, которые образуют проблемно–ориентированную базу данных и правила, имеющие вид условий.
3. Объектно–ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно–ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Первым языком, поддерживающим технологию объектно-ориентированного программирования, является язык Simula, разработанный в 1960-х годах на основных идеях языка ALGOL и дополненный новыми концепциями инкапсуляции (пакетирования) и наследования. Также к объектно-ориентированным относятся такие языки как: Smaltalk, Object Pascal,C++, Java, C# и др.