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

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

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

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

Добавлен: 25.04.2023

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

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

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

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

Их также удобно использовать для программистов и они не требуют знаний особенностей архитектуры ПК. [12]

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

2. ВЫСОКОУРОВНЕВЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

2.1. Обзор С++

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

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

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

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

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

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

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

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


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

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

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

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

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

Организация AT&T внесла также свой вклад в рассматриваемый этап работы. Больше 90 представителей выполняли приемы для изучения и комментировали аспекты языка, что стали современной версией для руководства по С++.

В процессе разработки ЯП С++ самым важным этапом была его простота и при возникновении вопросов, что именно надо упростить: руководство или документацию, то всегда выбирали первое. Огромное значение также разработчики придавали совместимости ЯП С++ с С, что мешало в корне изменить весь синтаксис.[9]

Пример кода на С++ показан на рисунке 4:[10]

Рисунок 4 – Пример кода С++

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

Хотя иногда пользователю понадобится самому создать некоторый тип, то он может его определить с легкостью посредством самого языка. Написание программ на языке С++ также сводится и к определению зависящих параметров для типов или области программирования. [9]

Язык С++ создавался и для использования в традиционной сфере, а именно в системах для программирования С на ОС UNIX. Но этот ЯП вполне может быть использован и в другой программной среде. Например, динамическая загрузка, развитые системы трансляции и БД для хранения определений типов, можно успешно использовать без ущерба для С++. [16]


2.2. Обзор Java

ЯП Java является кроссплатформенным языком программирования, следующим принципам ООП, который был создан корпорацией Sun Microsystems и впоследствии приобретен Oracle.

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

Особенность языка в том, что все имеющиеся приложения для Java транслируется в специально созданный байт-код на специальной программе, именуемой виртуальной машиной (ВМ) и отправляющей инструкции железу. Это и служит основой для обеспечения кроссплатформенного выполнения кода, написанного на JAVA. Но это выступает и основным недостатком данного языка, так как впоследствии это приводит к большему потреблению памяти и потере скорости выполнения кода по сравнению с ЯП С++. Поэтому Java редко используется в тех сценариях, когда во главу угла ставится производительность. Скорее на JAVA предпочитают те, кто больше ценит удобство и широкие возможности. Например, разработчики сайтов, приложений под Android и специализированное ПО для бизнеса.

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

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

Java – не просто язык программирования, это также и специальная платформа проектирования приложений. Изначально указанный язык назывался Oak, и был разработан Джеймсном Гослингтом с целью программирования разных бытовых электронных устройств.

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

Чтобы не связывать разработку программного обеспечения с конкретно применяемой платформой, Д. Гослингт начал использовать разные расширения компилятора С++.


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

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

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

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

Пример кода показан на рисунке 5:

Рисунок 5 – Пример кода Java

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

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

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

Такие идеи нашли выражение в структуре CLI.[20]

2.3. Обзор C#

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

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


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

Традиционным средством для выполнения отладки программных продуктов на стадиях выполнения этапов разработки C++ является маркировка частей кода программ директивами #ifdef.

В языке C#, применив такие атрибуты с ориентацией на условные слова, программисты могут быстрее написать программный код и протестировать его.

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

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

Архитектура.NET продиктовала ему перспективную объектно-ориентированную направленность. [6] Разработчики ценят C# в первую очередь за удобочитаемость кода и ускорение темпов разработки ПО за счет использования готовых синтаксических конструкций (шаблонов) и большого количества библиотек, что позволяет сразу приступить к работе над проектом без необходимости сначала изобретать велосипед.

Ниже приведена таблица из зарубежного сайта https://tiobe.com, посвященному исследованию востребованности языков программирования.

Эти данные не только отражают высокую востребованность рассмотренных выше ЯП высокого уровня С++, С# и JAVA, но и стабильный интерес, проявляемый к этим языкам, так как рейтинги TIOBE собираются с июня 2001 года.

Рисунок 6 – 10 наиболее востребованных языков программирования по версии TIOBE-Index. [21]

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