Языки программирования виды классификация + видео обзор

Содержание
  1. Языки программирования виды классификация
  2. Процедурные языки
  3. Готовые работы на аналогичную тему
  4. Языки программирования низкого уровня
  5. Языки программирования высокого уровня
  6. Объектно-ориентированные языки
  7. Декларативные языки программирования
  8. Функциональные языки программирования
  9. Логические языки программирования
  10. Языки сценариев (скрипты)
  11. Языки, ориентированные на данные
  12. Какие бывают языки программирования?
  13. Первый способ классификации, в котором есть доля шутки: Модные или популярные языки программирования, и вышедшие из моды или активного применения
  14. 2. Компилируемые и Интерпретируемые
  15. 3. Универсальные и специализированные
  16. 4. Алгоритмические и Языки описания данных
  17. 5. Низкоуровневые и Высокоуровневые
  18. 6. Объектно-Ориентированные и Структурные языки программирования
  19. 7. Сопутствующие Фреймворки (Frameworks), Библиотеки и Технологии
  20. Выводы
  21. Классификация языков программирования
  22. Языки программирования — основные понятия
  23. Составляющие части языка программирования
  24. Высокого уровня
  25. По принципам программирования
  26. Процедурные
  27. Непроцедурные
  28. Объектно-ориентированные
  29. По ориентации на класс задач
  30. Универсальные
  31. Специализированные
  32. Популярные языки
  33. Видео

Языки программирования виды классификация

Вы будете перенаправлены на Автор24

Классификация языков программирования по категориям связана с методами, которые используются при написании программ.

Языки программирования виды классификация

Рисунок 1. Классификация языков программирования. Автор24 — интернет-биржа студенческих работ

Процедурные языки

Процедурные языки являются языками высокого уровня, в которых используется метод разбиения программ на отдельные связанные между собой модули – подпрограммы (процедуры и функции). Компоненты языка состоят из последовательности операторов, которые используют библиотечные процедуры и функции. Первым процедурным языком был Fortran, затем появился Cobol, Algol, Pascal, C, Ada.

Готовые работы на аналогичную тему

Языки программирования низкого уровня

Программирование на первых компьютерах происходило с помощью двоичных машинных кодов. Такое программирование довольно трудоемкое и тяжелое. Для упрощения процесса программирования разрабатывались языки программирования низкого уровня, которые позволяли задавать машинные команды в понятном для человека виде. Чтобы преобразовать их в двоичный код создавались специальные программы – трансляторы.

К языкам низкого уровня относится:

Языки низкого уровня ориентировались на определенный тип процессора и учитывали его особенности, поэтому для того, чтобы перенести программу, написанную на ассемблере, на другую аппаратную платформу её нужно было почти полностью переписать. Различия присутствовали также и в синтаксисе программ под разные компиляторы.

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

Языки программирования высокого уровня

В языках высокого уровня особенности конкретных компьютерных архитектур не учитываются, поэтому написанные программы легко могут быть перенесены на другой компьютер. Зачастую достаточным является компиляция программы под определенную архитектурную и операционную систему. Разработка программ на языках высокого уровня значительно проще и ошибок намного меньше. К тому же время разработки программы значительно уменьшается, что является особенно важным фактором при работе над сложными программными проектами.

Недостаток некоторых языков высокого уровня состоит в большом размере программ по сравнению с программами на языках низкого уровня. В то же время текст программ на языке высокого уровня гораздо меньше, но в байтах код, написанный на ассемблере, будет более компактным. Поэтому языки высокого уровня преимущественно используют для создания программного обеспечения для компьютеров и вычислительных устройств с большим объемом памяти. Языки же низкого уровня используются для написания программ к устройств, для которых критичным является размер программы.

Языки высокого уровня делятся на универсальные и проблемно-ориентированные.

Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений. Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol, C и др.

Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#.

Проблемно-ориентированными языками, которые используются на Интернет-серверах и клиентских Интернет-приложениях, являются PHP, Perl, JavaScript, VBScript.

Объектно-ориентированные языки

Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основной концепцией которых есть совокупность программных объектов. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. К ним относятся из первых языков Simula и SmallTalk, далее C++, Java.

Декларативные языки программирования

В декларативном программировании задается спецификация решения задачи, то есть дается описание того, что представляет собой проблема и какой ожидается результат. Программы, созданные с помощью декларативного языка, не содержат переменные и операторы присваивания. К декларативным языкам можно отнести SQL и HTML. К подвидам декларативного программирования относится функциональное и логическое программирование.

Функциональные языки программирования

Функциональные языки являются языками искусственного интеллекта. Программа, написанная на функциональном языке, состоит из последовательности функций и выражений, которые необходимо вычислить. Основной структурой данных является связный список. Функциональное программирование принципиально отличается от процедурного. Основными функциональными языками являются Lisp, Miranda, Haskel.

Логические языки программирования

Языки, ориентированные на решение задач без описания алгоритмов, языки искусственного интеллекта. Представителем логического программирования является Prolog, которым написано большинство экспертных систем.

Языки сценариев (скрипты)

Языки относятся к объектно-ориентированным языкам, используются для написания программ, которые исполняются в определенной программной среде. Тексты программ, написанные на языке сценариев, можно включать в тело Html-документа. Первыми скриптами были Perl и Python, которые изначально были разработаны для операционной системы Unix, а уже в дальнейшем появились версии языков для операционных систем Windows и Macintosh. Для написания программ на языке сценариев необходимо знание процедур и функций системных библиотек.

Языки, ориентированные на данные

Языки ориентированы на работу с одним определенным типом данных. Например, APL работает с матрицами и векторами, Snobol обрабатывает строки, SETL выполняет операции над множествами.

Особое развитие получили языки для работы с базами данных:

Широкими возможностями обработки документов текстового процессора Microsoft Word, электронных таблиц MS Excel, баз данных MS Access и даже программ подготовки слайдовых презентаций MS PowerPoint обладает встроенный язык системы MS Office – Visual Basic for Application (VBA).

Источник

Какие бывают языки программирования?

Языки программирования виды классификация
Студенты периодически спрашивали меня какой язык программирования учить чтобы получить хорошую работу и зарплату. Конечно, я не мог сказать учите этот язык, а этот не учите и будет вам счастье. Но зато мог дать информацию о языках программирования чтобы этот выбор был легче. Проклассифицируем языки программирования с семи сторон: Модные и не модные • Компилируемые и интерпретируемые • Универсальные и специализированные • Алгоритмические и языки описания данных • Низкоуровневые и высокоуровневые • Объектно-ориентированные и языки структурного программирования • Сопутствующие Фреймворки, Библиотеки и Технологии.

Первый способ классификации, в котором есть доля шутки: Модные или популярные языки программирования, и вышедшие из моды или активного применения

Почему некоторые языки становятся модными, а о других почему-то забывают? Во-первых, смена технологий. Например, во времена операционной системы MS DOS, которая работала на 16-битных процессорах Intel, огромной популярностью пользовались языки Турбо C и Турбо Паскаль. А владеющие Ассемблером программисты считались элитой. Но, по понятным причинам, мы теперь не пользуемся ни этими устаревшими процессорами, ни системой MS DOS, так что языки отпали сами собой. Хотя мне, например, они до сих пор очень нравятся.

Другая ситуация с языком Delphi, который был продолжением Турбо Паскаля, и который был очень популярен во времена первых 32-х битных версий Windows, однако не выдержал конкуренции с другими языками программирования, в том числе от компании Microsoft, которые развивались более активно.

Это может быть и победа в конкуренции двух аналогичных языков, например, таких как JScript от Microsoft для веб-браузеров и JavaScript, первоначально представленный компанией Netscape. Популярным JavaScript стал за счет большей открытости и поддержки большим числом компаний разработчиков.

Языки С и С++ долгое время остаются популярными благодаря мнению о высокой эффективности программ, которые написаны на них. В общем, так оно и есть. Однако, постепенно другие языки программирования стали приобретать популярность не только за эффективность выполнения, но и за легкость в изучении, написании и поддержке программ, чего нельзя с уверенностью сказать о C++.

За большие возможности и гибкость С++ требует от программиста дисциплины и культуры программирования, иначе, как шутят программисты, он может превратиться из языка написания программ в язык для написания ошибок.

Несмотря на провозглашаемый стандарт языков C и C++, программы, написанные для компиляторов разных фирм редко когда бывают полностью совместимы по исходным кодам. Эту особенность тоже надо учитывать при его изучении.

А язык TypeScript получил популярность в качестве ответа на проблему сложности поддержки программ написанных на JavaScript, языке, который сам по себе достаточно популярен.

Из современных популярных языков стоит отметить Python из-за сравнительной простоты изучения, открытости, и возможности применения в различных предметных областях, таких как веб, искусственный интеллект, компьютерные игры.

Практически у каждого языка программирования есть своя группа фанатов, хотя популярность сегодня совсем не означает популярность в ближайшем будущем или что популярный язык обязательно станет полезен именно вам. В общем, выбор всегда за вами.

2. Компилируемые и Интерпретируемые

Любая программа на языке программирования это прежде всего текст. Текст понятен человеку, и сравнительно легко может быть обработан компьютером, потому что буквы и другие текстовые символы в компьютере представлены некими целыми числами, их еще называют кодами символов. Программа, которая обрабатывает текст на языке программирования и создает по нему последовательность команд микропроцессора называется компилятор. То есть компилятор переводит числа, которые человек воспринимает как текст в другие числа, которые компьютер воспринимает как команды микропроцессора.

Такая схема, конечно, не всех устраивала и программисты придумали языки, которым не требуется компилятор. Для таких языков перевод текста в команды микропроцессора происходит незаметно сразу после запуска текстовой программы. Правда, для этого текстовая программа должна запускаться под управлением другой уже готовой программы, которая называется Интерпретатор. Интерпретатор и делает эту незаметную компиляцию. Языки для которых требуется интерпретатор назвали Интерпретируемыми.

Главное отличие компилируемых языков от интерпретируемых в скорости выполнения программ. Считается, что программы написанные на компилируемых языках выполняются быстрее чем на интерпретируемых. Но сам процесс написания и тестирования интерпретируемой программы проходит проще, так как нет необходимости в промежуточном шаге компиляции.

Похожим образом, программа на TypeScript сначала компилируется в текстовую программу, или, как говорят, в код на JavaScript, который затем уже может быть выполнен интерпретатором JavaScript. Такое усложнение позволяет воспользоваться преимуществами строгой типизации данных и отловом ошибок на этапе компиляции, которые доступны в TypeScript.

3. Универсальные и специализированные

Классификация говорит сама за себя. Есть языки, на которых можно в принципе написать любую программу, но не всегда это можно сделать, например, быстро. Или такая программа не обязательно будет оптимально быстро работать. Типичный универсальный язык всех времен и народов: С++. И в этом его большой плюс. А, может, даже два плюса )).

Специализация в языках программирования касается, как правило, либо предметной области, например, математические вычисления (Fortran, F#), искусственный интеллект (LISP), веб-разработка (PERL, PHP), компьютерные игры (Unity, Lua), бухгалтерия (1С) и т.д., либо какой-то технологии программирования, например, многопоточность как в языке Cи-Омега (Cw) или способ записи операторов как в F#.

Для разных областей приложений создаются свои языки или скрипты. Особенно это относится к компьютерным играм, в которых переплетаются сразу несколько видов искусства, науки и технологии. Но системы разработки игр также используют и уже известные языки, например, Python в системе нарративных игр Ren’Py или язык Swift для устройств Apple.

Универсальные: семейство Pascal/Delphi, C/C++, C#, Java
Специализированные:
Математические вычисления: Fortran, F#
Математическое моделирование: MatLab, Wolfram (Mathematica)
Искусственный интеллект: LISP,
На основе передачи сообщений: Small Talk,
Многопоточные приложения Cw,
Веб-разработка: Perl, PHP, JavaScript
Базы данных: SQL
Компьютерные игры: Lua, Unity, Godot, Twine
Компьютерная графика: MEL (Maya), MAX Script (3ds Max)
Бухгалтерия: 1С

4. Алгоритмические и Языки описания данных

Алгоритмические: Pascal, C++, Java, C#
Языки описания данных: XML, XAML, JSON, HTML, DDL SQL

Алгоритмические языки, конечно, тоже умеют описывать данные, но в основном предназначены для создания больших и сложных программ, которые описывают действия, то есть алгоритмы.

Языки же описания данных предназначены только для описания данных для разных типов приложений. Эти языки можно считать необходимой нагрузкой к обычным алгоритмическим языкам. Например, если вы учите JavaScript для разработки веб-приложений, то скорее всего вам придется также изучить и синтаксис каскадных таблиц стилей CSS и язык описания данных JSON, в формате которого удобно передавать данные между веб-сервером и клиентом.

Или, например, язык работы с базами данных SQL, по сути является языком для обработки и получения данных, но также включает в себя раздел Data Definition Language или Язык Описания Данных.

Вообще, на способы описания и управления данными сейчас разработчикам приходится обращать внимания, пожалуй, не меньше чем на описание алгоритмов.

5. Низкоуровневые и Высокоуровневые

Низкоуровневые: Assembler, CIL,
Высокоуровневые: любой объектно-ориентированный или поддерживающий сложные типы данных язык.

Этот тип классификации, хоть и немного теряет актуальность, поскольку подавляющее большинство языков теперь можно отнести к высокоуровневым, но все еще имеет место, поскольку низкоуровневые языки существуют.

Эта классификация была актуальна на заре развития компьютеров, когда число доступных компиляторов можно было пересчитать по пальцам, а написать, например, драйвер клавиатуры на Ассемблере можно было в качестве развлечения в свободное время.

Напомню, что Ассемблер, это язык, команды которого максимально соответствуют командам самого микропроцессора, которые позволяют обрабатывать данные размером один, два или четыре байта, за счет чего представить на нем сложные типы данных очень и очень проблематично. Но зато по скорости выполнения программ языку Ассемблера просто нет равных.

6. Объектно-Ориентированные и Структурные языки программирования

Появление объектно-ориентированного программирования, сокращенно ООП, примерно со второй половины 80-х годов 20-го века стало настоящей технологической революцией. Это был буквально переворот, сейчас объясню почему. До ООП были популярны языки структурного программирования. И программисты были вполне счастливы писать программы на структурных языках высокого уровня, потому что в свое время это тоже было колоссальным шагом вперед.

Дело в том, что компьютер удалось создать только после титанических усилий таких гениев как Алан Тьюринг, который разработал свою теорию — машину Тьюринга, на основе которой и работают все числовые компьютеры в наши дни. Принцип машины Тьюринга, вкратце, состоит в том, что в оперативной памяти записана последовательность команд микропроцессора, в том числе команд условных или безусловных переходов на другие команды. Эти переходы на ассемблере называются JMP (англ.: jump — прыжок, переход), а в языках высокого уровня обозначаются командой GOTO (англ.: go to — перейти к чему-л.).

Для программирования компьютера первоначально существовал язык Ассемблер, команды которого почти один в один соответствуют командам микропроцессора. Теоретически, на Ассемблере можно написать любую программу, но практически перенос абстракций прикладных задач на него совсем не простое дело.

Для программирования прикладных задач, примерно с начала 70-х годов 20-го века и появилось структурное программирование, для создания которого потребовались усилия других гениев, таких как Никлаус Вирт, создатель языка Паскаль и Эдсгер Дейкстра, который первым написал о необходимости избавляться от оператора GOTO в языках высокого уровня и предложил решение как это сделать с помощью трех типов операторов и функций.

На практике это вылилось в появление языков программирования, таких как Basic, С, Паскаль, Algol, Cobol, Fortran, PL1. Разработка программ методом «сверху вниз» в структурном программировании превратилась в сплошное удовольствие. Суть ее состояла в написании набора функций, содержащих подфункции, которые можно вызывать, подставляя на вход нужные данные и получая соответствующий результат.

Таким образом, в языках структурного программирования алгоритмы на основе функций стоят как бы на первом месте, а данные для них можно брать откуда угодно. Не последнюю роль в этом сыграла идея автора кибернетики Норберта Винера о функции как о черном ящике, на вход которому можно подавать любые данные и наблюдать получаемый выход.

Для небольших задач типа сортировки данных или нахождения кратчайшего пути структурное программирование подходило идеально. Были найдены решения для большинства сложных алгоритмических задач. Появились фундаментальные труды, такие как многотомник “Искусство программирования” Дональда Кнута, который до сих пор считается настольной книгой для программистов.

Однако, увеличение сложности программ в результате привело к появлению и бо́льших шансов на внесение ошибок в программы, так как возможность подставлять любые данные на вход процедурам и функциям влекло за собой побочные эффекты. Так, например, в 1999 году космический аппарат NASA «Mars Climate Orbiter» потерпел крушение в из-за ошибки в программе — подстановки неправильных данных.

В результате появилась новая концепция объектно-ориентированного программирования, в котором во главу угла ставится, как я его называю, принцип актуальности данных, а функции становятся как бы приложением к данным, которые они должны обрабатывать. Объект это, в первую очередь, набор данных со своими функциями. В ООП вводятся ограничения на доступ функций к «чужим» данным, что уменьшает возможность непреднамеренного изменения данных и резко повышает надежность программ.

После появления объектно-ориентированных языков программирования, таких как С++, Object Pascal, Java, С#, а также новых аппаратных возможностей компьютеров, объемы программ и данных для них увеличились многократно, если не на порядки, что легко оценить хотя бы по объемам дистрибутивов программ, которые перестали помещаться сначала на дискеты, а потом и на компакт диски. А программирование снова как бы встало с головы на ноги.

Update 24.02.2021
См. также видео-версию этой главы.

7. Сопутствующие Фреймворки (Frameworks), Библиотеки и Технологии

С определенным языком программирования может быть связана технологическая цепочка или целая система программирования, которые также называют термином фреймворк.

Для использования языка С++ от Microsoft для первых 32-х битных версий Windows программистам для создания оконных приложений также приходилось изучать библиотеку MFC.

Для разработки веб-приложений с помощью технологии MVC от Microsoft программистам также потребуется язык разметки веб-страниц Razor.

Для создания современных приложений на универсальной платформе Microsoft может потребоваться язык разметки XAML.

Другие примеры:
Ruby on Rails — серверная платформа разработки веб-приложений.
Для компьютерных игр, такие как Unity, Cocos, Unreal Engine.
Для 3D графики: OpenGL, DirectX.

Наверно, возможны и другие способы классификации языков программирования, например, со строгой типизацией и без. Но они интересны тем, кто уже разбирается в программировании, этот же обзор скорее для начинающих.

Выводы

В принципе, чем больше языков знает программист, тем увереннее себя чувствует как профессионал. Но в наше скоростное время возможно и такое, что версия языка может потерять свою актуальность буквально за полтора-два года. Например, у языка TypeScript c 2015 по 2019 год, то есть примерно за 5 лет, было выпущено, внимание, более 20-ти обновлений.

Если же с компанией еще не определились, то можно начать с одного из универсальных языков программирования. Из-за повсеместного проникновения интернета, для программиста желательно хотя бы в общих чертах представлять себе что такое язык HTML, а также сопутствующие языки описания данных типа XML и JSON. Желательно также иметь представление о языке управления базами данных SQL.

Прошло то время, когда работать с одной и той же версией языка программирования можно было десятилетиями. В наше время особенность работы программиста состоит в постоянном изучении новых языков и технологий. Курсы по программированию могут быть хорошим трамплином, но основной опыт программисты получают в процессе работы, как бы учась и работая одновременно.

Глядя на эти системы может сложиться впечатление, что программисты скоро окажутся не нужны. Но отгадайте, кто создает все эти системы программирования без программистов? Те же программисты с помощью все тех же обычных языков программирования.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Источник

Классификация языков программирования

Языки программирования — основные понятия

Эволюция языков программирования тесно связана с историей развития компьютерных наук, которая началась в XIV веке, вместе с изобретением первой механической вычислительной машины английским ученым Чарльзом Бэббиджем. Программа для нее, позволяющая вычислять числа Бернулли, была написана леди Адой Августой Лавлейс в 1842 году. В честь нее впоследствии был назван один из языков программирования — Ада.

В дальнейшем появились и первые ЭВМ, вместе с которыми начали развиваться языки программирования в их современном понимании.

Язык программирования — искусственный язык, созданный для разработки и записи программ, предназначенных для выполнения их определенным техническим объектом, способным быть запрограммированным (станки с ЧПУ, все виды компьютерной техники). Его назначение — представить задачу в понятной и выполнимой для ЭВМ форме.

Компьютерная программа — это последовательность определенных команд (инструкций), с помощью которых компьютер решает поставленную задачу.

Команда (инструкция) — указание процессору, какое действие (операцию) ему необходимо выполнить.

Число языков программирования постоянно растет. На сегодняшний день их рост замедлился, но общее количество (включая модификации) составляет более двух тысяч, среди которых самых популярных не больше сотни.

Программист-профессионал знает и использует в своей работе более десятка различных языков в зависимости от стоящих перед ним задач.

Их условно можно классифицировать:

Составляющие части языка программирования

Несмотря на то, что в концепции построения языков наблюдаются принципиальные различия, строение их внутренней системы формально является одинаковым. Основными составляющими частями языков программирования являются:

С помощью низкоуровневых языков чаще всего разрабатываются драйверы и системные программы. Одним из таких языков является Ассемблер, который каждую из команд машинного кода представляет в виде мнемоник — условных символьных изображений.

Недостаток состоит в том, что созданные с их помощью алгоритмы представляют трудность для чтения даже самому разработчику, а для работы с ними необходимо разбираться в архитектурных особенностях компьютера.

Высокого уровня

Наибольшее распространение приобрели языки высокого уровня (машинно-независимые), с помощью которых можно писать программы независимо от типа процессора конкретного компьютера, его архитектуры. Понятия и структура высокоуровневых языков максимально удобны для восприятия человеком. Разрабатывать программы с помощью понятных и достаточно мощных команд, используемых ими, программисту гораздо проще.

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

Транслятор — специальная программа-переводчик, являющаяся одним из инструментов среды программирования. Она считывает программу, написанную на высокоуровневом языке, и переводит ее в машинный код конкретного процессора. Все трансляторы работают либо по принципу интерпретации, либо по принципу компиляции.

Интерпретатор — программа, которая выполняет перевод (трансляцию) каждого отдельного оператора исходной программы с последующим его выполнением.

При этом сама программа остается в первоначальном виде. При ее повторном запуске процесс трансляции будет выполняться заново. Поэтому метод интерпретации считается недостаточно эффективным. Он имеет два недостатка:

Тем не менее, интерпретаторы активно используются в качестве трансляторов в процессе разработки программ и их первоначальной отладки.

Компилятор — программа, которая полностью переводит текст исходной программы с высокоуровневого на низкоуровневый (машинный) язык.

Полученный при этом машинный код сохраняется в виде исполняемого файла с расширением «.exe», который можно многократно использовать уже без повторной трансляции.

При использовании компиляции сначала происходит полная трансляция исходной программы на язык машинных кодов, и только после этого она запускается на выполнение. В процессе исполнения программы транслятор становится ненужным, освобождая оперативную память. Это позволяет повышать производительность по сравнению с методом интерпретации для одной и той же программы.

Существуют также трансляторы, которые сочетают достоинства, как интерпретатора, так и компилятора. На этапе разработки и отладки они работают как интерпретаторы, а после окончательной отладки исходная программа методом компиляции транслируется в объектный модуль, который обрабатывается редактором связей Link (специальной программой ОС) и преобразуется в загрузочный модуль.

По принципам программирования

По принципам программирования языки делятся на:

В процедурном программировании роль компьютера состоит в механическом исполнении формальных предписаний о том, как именно решить конкретную задачу. Система, в которую объединяются эти предписания, и является программой процедурного типа. В непроцедурном программировании используется противоположный принцип. Компьютер получает задачу в общем виде, проводит ее исследование и самостоятельно находит алгоритм ее решения.

Процедурные

Основой процедурных языков является описание последовательной смены состояния процессора, ячеек памяти и других устройств компьютера. На этапе процедурного программирования разработчик детально описывает процесс решения задачи, составляет его алгоритм, не вдаваясь в подробности об ожидаемых свойствах результата.

Программист работает с операторами и данными, которые являются основными понятиями этого вида языков. Комбинация различных операторов при этом называется процедурой, откуда и взялось название процедурного программирования.

Поскольку процедурные языки имеют операторный тип, то алгоритм, написанный с их помощью, является последовательностью операторов. Их характерным признаком также считается наличие оператора присваивания (Basic, Fortran, Pascal, Algol, С).

Эти языки называю еще императивными, потому что программа, написанная с их помощью, напоминает повелительное наклонение (императив) в обычной речи, приказ что-то делать. Программа является последовательностью команд для их выполнения компьютером и имеет четкую, строгую структуру.

При процедурном программировании оперируют данными в пошаговом режиме с помощью пошаговых инструкций. Используя императивный стиль программирования, разработчик подробно расписывает компьютеру, как и что он должен пошагово сделать, чтобы решить задачу.

Непроцедурные

Непроцедурные языки более эффективны для написания программ по поиску больших объемов данных, а также, когда невозможно точно описать процесс решения задачи (например, при распознавании образов или переводе). К языкам непроцедурного программирования относят декларативные и объектно-ориентированные.

При использовании декларативных языков подробно описываются критерии, которым должен соответствовать искомый результат, имеющиеся исходные структуры и связи между ними, но не указываются способы его достижения (нет готового алгоритма, схемы решения).

При декларативном типе программирования используется декларативная семантика. Вместо понятия «оператор» декларируются высказывания (объявления) с помощью символьной логики.

Декларативные языки принято делить на две группы (или семейства):

При использовании логического программирования разработчик задает совокупность определенных фактов и логических правил, отношений между ними в виде формул, создает запросы по искомой проблеме. Система же сама решает данную проблему, применяя механизмы логического вывода, основанные на математической логике.

Программа, написанная на языке PROLOG, состоит из двух частей:

Основной операцией при работе с данными является сопоставление (унификация, согласование). Программа начинается с запроса по проблеме. С помощью операции сопоставления производится доказательство истинности определенного логического утверждения в пределах заданной совокупности правил и фактов.

Алгоритм этого логического доказательства и будет определять принципы работы программы. Чаще всего этот язык используют в программировании экспертных систем.

Функциональное программирование основано на формулировании задачи в качестве совокупности определенных функций. Программа выглядит как хаотичный набор уравнений, который определяет функции и значения. Эти значения, в свою очередь, сами являются функциями от других значений.

Программист лишь описывает способ решения задачи, не определяя строгую последовательность действий при нахождении решения. Основными свойствами таких языков являются модульность, отсутствие побочных эффектов, простота и краткость.

В восьмидесятые и девяностые годы XX века декларативные языки были весьма популярны в качестве программирования искусственного интеллекта, но так и не получили широкого применения из-за отсутствия возможности создавать быстродействующие программы для решения более содержательных задач.

Объектно-ориентированные

Методика ООП появилась в конце XX века. Объектно-ориентированные языки вместо «процедур» и «данных» оперируют понятием «объект». С помощью ООП создается окружение в виде большого количества объектов. Каждый из них является независимым блоком, работая как отдельный компьютер.

Блоки используют для решения задач, не вникая в принципы их внутреннего функционирования (C++, Visual Basic, Delphi, Java, Python). На сегодняшний день среди профессиональных программистов самым популярным является язык C++, который затмил собой по популярности процедурные аналоги.

Дальнейшее развитие языков нацелено на их использование в современном «параллельном программировании» (программы представляют собой набор процессов, исполняемых одновременно). В связи с этим создаются специализированные языки ООП, одним из которых является высокоуровневый язык MC#, разработанный для платформы «.NET». Он позволяет создавать программы, работающие с асинхронными вызовами в распределенной среде.

По ориентации на класс задач

Универсальные

Универсальные языки программирования нацелены на решение широкого спектра задач. Среди них сегодня наиболее распространены C++, Visual Basic, Pascal, Java, Delphi, Python.

Специализированные

Многие языки программирования разрабатывались для решения строго очерченного круга задач, с учетом специфики конкретной области. Например, COBOL был создан для обработки информации в области экономики.

Существуют также языки:

Оба направления (универсальные и специализированные языки) продолжают активно развиваться. Выбор для изучения достаточно обширен, все зависит от целей применения их в программировании.

Популярные языки

Краткая характеристика самых популярных языков:

Источник

Видео

Классификация языков программирования

Классификация языков программирования

Урок 3. Классификация языков программирования

Урок 3. Классификация языков программирования

Типы языков программирования

Типы языков программирования

Что такое язык программирования и какие они бывают?

Что такое язык программирования и какие они бывают?

Языки и сферы их применения. Какой язык программирования выбрать?

Языки и сферы их применения. Какой язык программирования выбрать?

Классификация языков программирования по поколениям и уровням. Что такое машинный код и ассемблер

Классификация языков программирования по поколениям и уровням. Что такое машинный код и ассемблер

Языки программирования. Классификация

Языки программирования. Классификация

Языки программирования

Языки программирования

классификация языков программирования

классификация языков программирования

Какие бывают направления в программировании?

Какие бывают направления в программировании?
Поделиться или сохранить к себе:
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.