Файл: Обзор языков программирования высокого уровня.pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

Языки программирования высокого уровня подразделяют на [3]:

        • процедурно-ориентированные (ПОП);
        • предметно-ориентированные;
        • объектно-ориентированные (ООП).

Рассмотрим подробнее каждый из этих типов.

1. Процедурно-ориентированный.

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

Проблема при применении ПОП заключается в обработке данных. В ПОП данным не придается никакого значения. Под данными мы понимаем информацию, полученную от пользователя, новые результаты, полученные после вычислений, и т.д. Например, в языке C используются классы памяти (storage classes) языка. В C элемент данных (переменная) должен быть объявлен как GLOBAL для того, чтобы он мог быть доступен двум или более функциям программы. Если в программе насчитывается 10 функций, то все эти 10 функций могут получить доступ к глобальной переменной. Вполне возможно, что одна функция может случайно изменить значение этой глобальной переменной. И если она является ключевым элементом программы, любые такие случайные манипуляции повлияют на всю программу. Тогда будет слишком трудно отлаживать и выявлять функцию, вызывающую проблемы, особенно если программа очень большая.

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

2. Предметно-ориентированный.

Рассмотрим особенности языков другого класса. Предметно-ориентированные языки широко применяются в современной разработке программных приложений. Им можно дать следующее определение: «языки программирования, выводящие уровень абстракции за рамки программирования, задавая решение, в котором непосредственно используются концепции и правила из конкретной предметной области». Хотя языки общего назначения (General Purpose Language, GPL), такие как Java или Kotlin, широко применяются в самых разных предметных областях, предметно-ориентированные языки адаптированы к конкретной предметной области, что обеспечивает им чрезвычайно высокую эффективность в этой области. Такие языки предоставляют абстракции, адекватные решаемой проблеме, и позволяют выражать решения кратко и емко, причем для использования таких решений зачастую не требуется квалификация программиста.


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

Об ООП можно говорить очень много, но мы укажем только основные его отличия и особенности. Концептуальная база методологии объектно–ориентированного моделирования включает в себя четыре главных взаимосвязанных понятия: абстрагирование, иерархия, инкапсуляция и модульность. Дадим определения данным понятиям.

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

Иерархия – способ упорядочения абстракций (классов) по уровням.

Инкапсуляция – способ отделения элементов объекта (класса), определяющих его устройство, от элементов, определяющих его поведение (т.е. отделение реализации от интерфейса).

Модульность – способ разложения системы на связанные, но относительно самостоятельные части (модули).

Большинство объектно-ориентированных языков являются версиями процедурно-ориентированных и предметно-ориентированных.

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

2.2 Процедурно-ориентированные языки

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

1) Язык Фортран (Fortran).

Является одним из первых языков программирования высокого уровня. Был создан в период с 1954 по 1957 года группой программистов под руководством Джона Бэкуса в корпорации IBM и это стало следующим этапом развития языков программирования.  К его основным достоинствам относится наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности, встроенных средств обработки массивов. Он используется и по сей день, однако, не столько по причине удачного дизайна, сколько в силу большого количества написанных на нём программ, изменять и, тем более, переписывать которые нет смысла. Его структура способствует тому, что компилятор может очень хорошо оптимизировать вычисления.

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


2) Язык Бейсик (Basic). Был разработан в 1964 г. в качестве языка для обучения программированию.

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

Одним из основных недостатков языка является то, что он поддерживает только операционные системы семейства Windows, DOS и Mac OS X, что значительно сужает сферы его применения. Также к недостаткам можно отнести низкую скорость работы и отсутствие механизма наследования реализации объектов. С 1964 язык совершенствовался и претерпевал существенные изменения, появилось множество его диалектов.

Язык BASIC на данный момент устарел и практически нигде не используется. Тем не менее, BASIC сыграл весьма важную роль в развитии вычислительной техники и языков программирования в частности. Диалекты BASIC являются достаточно структурированными языками, они сопоставимы по возможностям с такими языками, как Си, Паскаль. В настоящее время довольно популярна обновлённая версия языка - Visual Basic

3) Язык Си (С) был создан в 1969—1973 годах в качестве языка системного программирования и первоначально предназначался для написания ОС UNIX.

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

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

Язык Си имеет свои существенные особенности, перечислим некоторые из них.

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

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


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

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

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

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

4) Язык Паскаль (Pascal). Был создан математиком Н. Виртом специально для обучения программированию в 1969. Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Один из первых языков, для которых была создана реализация «на самом себе» -- компилятор Паскаля был написан на самом Паскале.

В начале 1970-х годов для переноса Паскаль-систем на различные аппаратные платформы была создана система Pascal-P, в которой был единый компилятор Паскаля в промежуточный язык (P-код) и для каждой платформы создавался быстрый интерпретатор P-кода. Заимствование этой системы привело к созданию системы UCSD-Pascal в Университете Сан-Диего (Калифорния, США), намного позже её идеи были заимствованы создателями языка Java (байт-код, компиляция в байт-код, интерпретатор байт-кода).


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

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

Наиболее известной реализацией Паскаля является система Turbo Pascal (выросшая затем в Borland Pascal и далее в Delphi) фирмы Borland, в которой язык был значительно расширен, были устранены некоторые недостатки языка, добавлены новые возможности. Язык стал богаче, но в отсутствие отраслевой стандартизации, потерял переносимость и общность (до появления в 1998 году Kylix -- Delphi для Linux, продукты Borland работали только на платформе DOS/Windows, в настоящее время Kylix фактически заморожена).

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

2.3 Предметно-ориентированные языки

Следующими в классификации являются предметно-ориентированные языки, практически все из которых активно используются в данный момент. Рассмотрим некоторые из них.

1) Язык Лисп был предложен Дж. Маккарти в работе в 1960 году и ориентирован на разработку программ для решения задач не численного характера. Английское название этого языка - LISP является аббревиатурой выражения LIStProcessing (обработка списков) и хорошо подчеркивает основную область его применения. Понятие “список” оказалось очень емким.

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

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