Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Языки Символического Кодирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 233

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Языки высокого уровня машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.[14]

Большинство программистов пользуется для составления программ языками высокого уровня. Как и обычный человеческий язык, такой язык имеет свой алфавит – множество символов, используемых в языке. Из этих символов составляются так называемые ключевые слова языка. Каждое из ключевых слов выполняет свою функцию. Так же как и в привычном для нас языке, слова, составленные из букв алфавита данного языка, могут выполнять функции разных частей речи. Ключевые слова связываются друг с другом в предложения по определенным синтаксическим правилам языка.[15]

Синтаксис — совокупность правил образования языковых конст­рукций, или предложений ЯП — блоков, процедур, составных операто­ров, условных операторов, операторов цикла и пр. Особенностью син­таксиса является принцип вложенности (рекурсивность) правил построения конструкций. Это значит, что элемент синтаксиса языка в своем определении прямо или косвенно в одной из его частей содержит сам себя. Например, в определении оператора цикла телом цикла явля­ется оператор, частным случаем которого является все тот же опера­тор цикла. [16]

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

  • Императивные (процедурные)
  • Функциональные
  • Логические
  • Объекто-ориентированные[17]

Императивные (процедурные) языки программирования манипулируют данными в пошаговом режиме, используя последовательные инструкции и применяя их к разнообразным данным. Считается, что первым алгоритмическим языком программирования был язык Plankalkuel (от plan calculus), разработанный в 1945-1946 годах Конрадом Цузе.

Наиболее известные и распространенные императивные языки программирования, большинство из которых было соpдано в конце 50-х – середине 70-х годов XX века, представлены на рис. 1. Обратим внимание на пустое место на рисунке, соответствующее 80-м и 90-м годам прошлого века. Это период увлечения новыми парадигмами, и императивных языков в это время практически не появлялось.


Рисунок 1

Создание процедурных языков программирования

Источник: «программирование и основы алгоритмизации» В.К. Золотников, П.Р. Машевич, В.И. Анциферова, Н.Н. Литвинов, Уч.издание, Воронеж, 2011, с. 19

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

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

Языки логического программирования основываются на определении набора правил, при выполнении которых возможно выполнение определенных действий. Примером такого языка является Prolog.

Объектно-ориентированные языки объединяют и расширяют возможности, присущие процедурным и аппликативным языкам. Они основаны на построении объектов как набора данных и операций над ними. К таким языкам относятся С++, Java. [19]

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

Рисунок 2

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

Источник: Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с.

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

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


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

При выборе языка программирования необходимо учитывать разные факторы. Для разных людей, оптимальным может быть разный язык программирования. Например, если при разработке динамической Web-страницы в качестве наилучшего варианта одни выберут JavaServer Pages, другие могут предпочесть PHP, Perl или аналогичный язык сценариев.

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

  • Целевая платформа разработки.
  • Гибкость языка программирования.
  • Время, отведенное на исполнение проекта.
  • Производительность.

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

LISP

LISP (от англ. LISt Processing language — «язык обработки списков»)  был предложен Дж. Маккарти в работе в 1960 году и ориентирован на разработку программ для решения задач не численного характера. Английское название этого языка – LISP является аббревиатурой выражения LISt Processing (обработка списков) и хорошо подчеркивает основную область его применения. Понятие “список” оказалось очень емким. В виде списков удобно представлять алгебраические выражения, графы, элементы конечных групп, множества, правила вывода и многие другие сложные объекты. Списки являются наиболее гибкой формой представления информации в памяти компьютеров.[20]

Lisp - это целое множество языков программирования, код программ в которых, также как и данные, представляются системами линейных списков символов. Lisp считается вторым в истории высокоуровневым языком программирования после Фортрана и применяется до сих пор. Как и Фортран, Lisp претерпевал большие изменения в течение своей жизни и имел несколько диалектов. На сегодняшний день наиболее широкую известность приобрели диалекты «Common Lisp» и «Scheme».

Система типов в Lisp'е имеет динамическую структуру. Будучи функциональным языком, Lisp в своих последних версиях обладает признаками императивности, а также, имея возможности символьной обработки, делает возможным реализовать объектно-ориентированность.[21]


LISP наравне с Prolog и C++ в настоящее время считаются основными языкам ИИ. LISP является узкоспециализированным языком, разработанным специально для ИИ. Применение LISP и Prolog позволяет сосредоточиться на логике решения задачи, в то время как C++ помогает добиться высокой скорости работы программы. Реализовать нестандартные процедуры обработки.[22]

Prolog

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

Это один из старейших и все еще один из наиболее популярных языков логического программирования, хотя он значительно менее популярен, чем основные императивные языки. Он используется в системах обработки естественных языков, исследованиях искусственного интеллекта, экспертных системах, онтологиях и других предметных областях, для которых естественно использование логической парадигмы. [23]

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

Одна из самых развитых реализаций языка Prolog – Visual Prolog. Система программирования Visual Prolog обладает всеми средствами для быстрой разработки современных приложений. Она предоставляет возможность сочетать логическое, функциональное и объектно-ориентированное программирование. [25]

Наравне с Lisp Prolog в настоящее время считается одним из основных языков искусственного интеллекта.

COBOL

В 1959 году группа производителей и потребителей ЭВМ по инициативе Грейс Хоппер стала искать независимого спонсора, для финансирования создания нового стандартного языка, специально рассчитанного на задачи обработки экономических данных. Она нашла поддержку в Министерстве обороны США.[26]


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

Перечисляя минусы, нельзя не вспомнить о том, что на Коболе можно запрограммировать лишь простейшие алгебраические вычисления. Для сложных инженерных расчетов этот язык не годится.[27]

JAVA

Java — объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems с 1991 года и официально выпущенный 23 мая 1995 года. Изначально новый язык программирования назывался Oak (James Gosling) и разрабатывался для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания апплетов, приложений и серверного программного обеспечения.

Большинство архитектурных решений, принятых при создании Java, было продиктовано желанием предоставить синтаксис, сходный с C и C++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнением кода. В Java добавлены все хорошие черты C++. [28]

Visual Basic

Язык Basic разработан преподавателями Дартмутского колледжа Джоном Кемени и Томасом Куртцом в 1964 году как средство обучения и работы начинающих программистов. Предназначение языка определено в самом его названии «Beginner’s All-purpose Symbolic Instruction Code» (многоцелевой язык символических инструкций для начинающих). [29]

Вторую жизнь Бейсик получил с появлением в 1991 году Visual Basic от Microsoft. Этот язык напоминал оригинальный только синтаксисом, но был значительно более современным. Visual Basic и его варианты стали одним из наиболее часто используемых языков на платформе Windows.[30]

Visual Basic может создать исполняемые программы (EXE файлы), элементы управления ActiveX, библиотеки DLL, но, прежде всего, используется для разработки Windows приложений.[31]

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

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