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

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

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

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

Добавлен: 28.03.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

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

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

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


Объект исследования – языки программирования высокого уровня.

Предмет исследования – характеристики и области применения языков программирования высокого уровня.

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

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

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

В качестве основных методов исследования использованы эмпирические, теоретические и количественные методы исследования.

Курсовая работа на тему «Обзор языков программирования высокого уровня» состоит из введения, двух глав, двух параграфов, заключения и списка литературы.

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

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

Чарльз Бэббидж (1791–1871 гг.) – английский математик, философ, инженер. Одним из изобретений ученого была разностная машина. В 1822 году Бэббидж построил модель разностной машины, состоящей из валиков и шестерней, которые необходимо было вращать вручную при помощи рычага. Получив финансирование от правительства Великобритании, Чарльз Бэббидж приступил к созданию машины. Но эта задача оказалась сложнее, чем предполагал ученый и машина так и не была создана при его жизни.

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

Стоит отметить, что перфокарты использовались до начала 1980-ых годов, а начало их использования зафиксировано в 1808 году в ткацких станках Жаккарда. То есть перфокарты, как технология, использовались на протяжении 175 лет.

Следующей персоной, оказавшей сильное влияние на развитие компьютеров, можно считать Аду Лавлейс (1815-1852 гг.). Ада перевела мемуары итальянского математика Луиджи Менабреа, которые были посвящены аналитической машине Чарльза Бэббиджа. В процессе перевода, Ада предположила, что применение аналитической машины не ограничивается только лишь арифметическими вычислениями и вместе с переводом Ада создала алгоритм вычисления чисел Бернулли. Считается, что этот алгоритм является первой компьютерной программой.[1] Но это сложно назвать языком программирования, потому как многие люди ожидают от этого понятия некоторую силу выражения и читаемость кода. Ни машина Жаккарда, ни аналитическая машина Бэббиджа не обладали такими свойствами.


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

Язык программирования Ассемблер – это любой низкоуровневый язык программирования, инструкции которого тесно связаны с машинным кодом конкретной архитектуры. Также его можно называть “символический машинный код”. Ассемблер (не путать с языком программирования Ассемблер) – это программа, которая конвертирует программу, написанную на языке Ассемблер непосредственно в машинный код. Каждый язык Ассемблер создан для конкретной архитектуры и не может быть использован для нескольких архитектур процессоров. Но при этом он не зависит от операционной системы, потому как обращается напрямую к процессору без участия операционной системы. В этом и заключается основное отличие от языков программирования высокого уровня, которые, наоборот, не требуют определенной архитектуры процессора, но сильно зависят от операционной системы, на которой выполняются.

Первым языком программирования высокого уровня считается Plankalkül, разработанный пионером компьютерной науки, немецким инженером, Конрадом Зюсом в промежутке между 1942-м и 1945-м гг. Но эта разработка так и осталась на бумаге и не дошла до практического использования. Чуть позже Конрад Зюс будет очень сожалеть, что разработчики популярного языка ALGOL 58 так и не признались, что их язык был создан под влиянием Plankalkül.

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

В 1949-м был написал первый язык программирования высокого уровня Short Code. Его создатель, американский физик Джон Мокли, впервые использовал математические выражения в понятной для человека форме. Тем не менее инженер сразу же столкнулся с тем, что каждый раз при запуске код программы на Short Code интерпретировался в машинный код, что сильно замедляло выполнение программ. Что, в принципе, не отличается от ситуации с языками программирования высокого уровня в наши дни.

Первый компилируемый язык программирования Autocode был разработан британским ученым Аликом Гленном в Университете Манчестера. Вторая итерация языка, известная как Mark 1 Autocode была разработана британским ученым Ральфом Брукером для известного компьютера Mark 1, который во время Второй Мировой Войны помог Великобритании и ее союзникам получить большое количество военных разведданных. Впоследствии, было разработано еще несколько версий Autocode для различных компьютеров.


В 1954-м году на свет появился легендарный язык программирования FORTRAN, использование которого можно встретить в научных исследованиях и в наши дни. Язык был создан в компании IBM под руководством Джона Бэкуса. Это первый высокоуровневый язык общего применения, который действительно использовался на практике, в отличие от прошлых наработок на бумаге. Первые версии FORTRAN были встречены со скептицизмом. Наличие багов, задержек в разработке языка и низкая скорость по сравнению с программами, написанными на языке Ассемблер, не внушали доверие. Тем не менее, ввиду бурного развития рынка вычислительных устройств, FORTRAN был признан за свою эффективность и универсальность. Интересным фактом является то, что бенчмарками скорости современных суперкомпьютеров все еще являются программы, написанные на FORTRAN.

Соединенные Штаты Америки не сильно отставали в развитии компьютерной науки – ученый Грейс Хоппер с 1955-го по 1959-ый разрабатывала язык программирования под названием FLOW-MATIC. Язык был разработан специально для компьютера UNIVAC I – первого коммерческого компьютера общего предназначения, созданного в США. Предпосылкой к созданию языка стало осознание Грейс Хоппер и ее команды, что людям, обрабатывающим коммерческие данные, было некомфортно использовать строгие математические выражения, и они написали спецификацию англоязычного языка программирования. Впоследствии, этот язык сильно повлияет на разработку языка COBOL.

В 1958-м году появляется язык LISP, который занимает вторую строчку после FORTRAN в рейтинге самых старых языков программирования высокого уровня, до сих пор используемых. Его созданием занимался американский ученый Джон МакКарти. В дальнейшем, LISP будет меняться и появится много диалектов. Наиболее известными диалектами языка LISP станут Clojure, Common Lisp и Scheme. Основным предназначением этого языка были работы с искусственным интеллектом и до сих пор он является одним из основных инструментальных средств в данной области, но также им пользуются для разработки бизнес-приложений, и даже для веб-приложений, но это скорее считается экзотикой в наши дни.

Следующим значимым событием для компьютерной науки стало появление языка COBOL в 1959-м г. Это компилируемый язык программирования, очень похожий на английский язык. Само название языка расшифровывается как “COmmon Business-Oriented Language”. Этот язык в основном использовался в финансовых и административных системах коммерческих компаний и государственных учреждениях. Но, к сожалению, из-за ухода на пенсию опытных программистов на COBOL, программы постепенно переносятся на новые платформы и новые языки программирования, что неукоснительно ведет к уменьшению его популярности. Большая часть программирования на COBOL сейчас ведется исключительно в целях поддержания существующих приложений. Как упоминалось ранее, COBOL базируется на разработках Грейс Хоппер, создателя FLOW-MATIC, которую иногда считают “Матерью COBOL’а”.


И, наконец, завершающим событием этапа становления языков программирования можно считать публикацию американских и европейских ученых в 1960-м г. о “новом языке программирования для алгоритмов” – ALGOL 60. В этом отчете было собрано множество идей, витающих в воздухе и представлено три ключевые инновации в языках программирования:

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

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

Обзор современных языков программирования высокого уровня

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

Появление языков программирования высокого уровня (FORTRAN, ALGOL) позволило снизить уровень детализации операций.[2] Большим достижением этих языков стала возможность использования подпрограмм. Были созданы большие библиотеки различных подпрограмм. Теперь структура программы состояла из основной программы, области глобальных данных и набора подпрограмм. Появилась возможность совместной разработки ПО несколькими программистами.

Согласно исследованию крупнейшего в мире сервиса, предоставляющего услуги “Version Control System” для коллективной разработки программного обеспечения, как коммерческой, так и “Open source” разработки, на конец 2019-го года топ-лист языков разработки выглядит следующим образом[3]:

Результаты исследования основываются на анализе 44 миллионов открытых репозиториев на платформе GitHub. Для определения актуальной базы кода были взяты “активные” репозитории, в которых происходило любое изменение кода за 2019-ый год.