Файл: Обзор языков программирования высокого уровня (Характеристика инструментального программного обеспечения).pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

С конца 50-ых гг. XX ст. начали создаваться первые машинно-независимые языки программирования, но для каждого из них были разработаны компиляторы.

Примерами таких языков являются [6]:

– FORTRAN – для технических и научных расчетов;

– COBOL – для коммерческих приложений;

– BASIC – универсальный язык для начинающих.

  1. Алгоритмические языки программирования.

С конца 70-ых г. XX ст. начали создаваться такие языки программирования, что позволяли перейти программисту к структурному программированию (применение операторов выбора, ветвления, цикла и отказ от использования операторов перехода (например, goto). К таким языкам относятся:

– Pascal;

–Си.

  1. Языки объектно-ориентированного направления [11].

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

– С++ – усовершенствование алгоритмического языка Си;

– Object Pascal – создан на основе Pascal.

– Visual Basic – для создания приложений с оконным интерфейсом для ОС Windows.

  1. Языки программирования, использующиеся в компьютерных сетях [11].

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

– Java - объектно-ориентированный язык, разработан для создания сетевого ПО;

– JavaScript – язык сценариев для Web-страниц [16].

  1. Языки программирования платформы .NET.

IDE Visual Studio .Net разработана корпорацией Microsoft и позволяет создавать графические приложения на разных объектно-ориентированных языках программирования:

– Visual Basic .Net;

– C# и J;

– Visual J#.

1.4. Парадигмы языков программирования

В нынешнее время выделяют несколько классов языков программирования.

Отметим также, что одним с самых важнейших методов их подразделения является их принадлежность для одного с стилей, главными с которых являются (рисунок 2):[3]


– логические;

– процедурные;

– функциональные;

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

Рисунок 2 – Парадигмы программирования

Процедурное (или же императивное) программирование часто являются отражением архитектуры для классических ПЭВМ, которая была использована Дж. фон Нейманом.[5]

Программа на процедурном ЯП состоит из последовательности разных инструкций, операторов, что могут задавать процедуру для решения такой задачи. Основным тут также являются операторы присваивания, которые служат для изменения содержимого [2].

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

Процедурные ЯП также характеризуются основными следующими особенностями:[8]

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

– пригодностью символьных и числовых вычислений;

– отсутствием для этого математической основы;

– эффективностью в реализации некоторых традиционных ПЭВМ.

Одним из самых важнейших классификационных признаков в процедурном языке является уровень[14].

Уровень ЯП определяется его семантической и синтаксической емкостью конструкций, а также степенью ориентации на классического программиста. Стоит заметить, чем более ЯП ориентирован на обычного пользователя, тем выше его уровень.[11]

К процедурным ЯП относят:

– С;

– Basic,

– язык Ассемблера;

– Pascal.

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

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

Аппликативные ЯП включают следующие составные части:[17]

– классы констант;

– правила построения функций;

– набор некоторых базовых функций, что применяются программистом;

– правила формирования самых разных выражений на основании вызовов функций.

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

– вызовы функций могут заменяться значениями;

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


Функциональное программирование не использует концепцию секторов памяти как хранилища данных для переменных. Оператор для присваивания отсутствует, и вследствие чего такие переменные будут обозначать вовсе не области памяти – некоторые объекты программы, для соответствия понятию математической переменной. [14]

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

В результате этого функциями могут быть значениями вызова иной функции или какого-то объекта.

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

Отметим, что ЯП логического программирования, а именно Пролог, часто применяем для системы искусственного интеллекта.

Основным понятием по указанному стиле программировании является принцип отношения. Каждая программа представляется множество определений отношений с разными объектами (в определениях условий и ограничений), также цели (запроса) [13].

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

А в результате вычисление является ненужным продуктом данного процесса [14].

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

Среди таких попыток выделено направление под названием объектно-ориентированного подхода для конструирования и разработки программ. Главную роль при этом в популярности подхода и сыграла ее связь с интерфейсами разных пользователей (особенно графическими).

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

Но распространение мощнейших персональных компьютеров создало еще в 90-х гг. базу для повсеместного использования объектно-ориентированного метода на практике.


В несколько последних лет более широко начинают изучаться языки программирования, что были созданы в рамках популярной объектно-ориентированной методики, а именно С++, Smalltalk, Java,C#.

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

Самые типовые задачи, где ООП является основной перспективной, выделим следующие:[20]

– автоматизация экспериментов;

– интерфейс пользователей;

  1. анимация;
  2. медицина;
  3. связь;
  4. коммуникация;
  5. операционные системы.

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

Объектом является специальная совокупность данных (или же переменных), а также их способов работы (специальных компонентных процедур, функций).

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

Все состояние объекта также описывается при использовании его переменных.

Поведение такого объекта (или функциональность) может характеризовать только то, как объект взаимодействует именно с другими элементами, подвергается ли к взаимодействию с объектами, проявляя свою практическую индивидуальность. [6]

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

Поведение таких объектов реализуется только с использованием функций – методов. Также структура объектов доступна только через его методы, а в совокупности они формируются в интерфейс.[10]

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

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

Класс – множество объектов, что считаются связанными общностью структуры, поведением. Класс сравнивают с шаблоном, по которому могут создаваться объекты. [18]

Именно класс вначале может описываться переменными и методами для объекта, то есть структурами и его поведением, и определяет все основные механизмы создания такого реального объекта, который, представляет при создании экземпляр некоторого класса.[19]


Наведение при использовании классов порядка среди таких объектов – большое достижение, но можно пойти все же дальше, при этом определяя и некоторый порядок также и среди классов [19].

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

2.1. Язык С++

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

В последние годы господство С++ слегка пошатнулось, ведь широкое развитие получили Java, Python и C#, но маятник мнения опытных разработчиков уже качнулся в обратную сторону, большинство программистов, что оставили программировать на С++, поспешили сразу возвратится к привычному ЯП. [6]

ЯП С++ – ЯП для общего назначения, что часто применим для написания кода системного программирования, понимаемом при этом в очень широком понимании.

Кроме того, ЯП С++ успешно применяется для написания приложений, выходящих далеко за рамки классического кода. Реализации ЯП С++ также часто присутствует полностью на всех ПК, от самых малофункциональных – и для применения в супер-ПК. [20]

Б. Страуструп является самым первым создателем и разработчиком ЯП С++, а также создателем транслятора. Он является авторитетным и очень опытным сотрудником научного центра корпорации AT&T, что находится в Нью-Джерси.

Страуструп получил почетное звание почетного магистра по вычислительной техники в институте города Арус, а имеющееся у него докторское звание – в Кембридже. [16]

Он специализируется и в сфере операционных систем, разных распределенных ИС, принципов программирования, моделирования, а также является автором руководства С++.

ЯП С++ обязан безусловно языку С [17], который сохраняется в качестве некоторое его подмножество. В нем сохранены все свойственные для С средства и методы программирования низкого уровня, предназначенные для разрешения задач по системного программирования. [6]

Название С++ придумано Р. Маскитти в 1982 г. Оно имело возможность показать свой эволюционный характер для нового ЯП С++. Обозначение «++» определяет операцию инкремента.

Изначально ЯП С++ был спроектирован также для того, чтоб Б. Страуструпу и его команде не надо было выполнять программирование программы на ЯВ ассемблера или других ЯП низких уровней. [3]