Файл: ОБЗОР ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ (Язык программирования. История, понятие).pdf

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

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

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

Добавлен: 01.04.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

Цель работы – осуществить обзор языков программирования высокого уровня.

Для достижения данной цели необходимо выполнить следующие задачи:

  • рассмотреть понятие и историю развития языков программирования;
  • классифицировать языки программирования;
  • осуществить обзор наиболее распространенных языков программирования высокого уровня: C++, Python и Delphi;
  • подвести итоги исследования.

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


Методологической основой исследования выступили научные труды таких отечественных исследователей проблемы, как Герман О., Павловская Т. А., Хабибуллин И. и др. Структура работы содержит две главы, каждая из которых, в свою очередь, включает два и три параграфа соответственно. В исследование также включены такие структурные элементы, как введение, заключение и список использованных источников. Общий объем работы составляет 31 страницу.

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

1.1. Язык программирования. История, понятие

Язык программирования – искусственный (формальный) язык, предназначенный для записи программ для исполнителя (например, компьютера или станка с числовым управлением). Язык программирования задается своим описанием. Описание языка программирования – это документ, специфицирующий возможности алгоритмического языка [4]. Обычно описание содержит:

  • алфавит допустимых символов и служебных (ключевых) слов;
  • синтаксические правила построения из алфавита допустимых конструкций языка;
  • семантику, объясняющую смысл и назначение конструкций языка [4].

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

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

Первые программы писались на машинном языке, т.к. для ЭВМ того времени еще не существовало развитого программного обеспечения, а машинный язык – это единственный способ взаимодействия с аппаратным обеспечением компьютера, так называемым «железом». Каждую команду машинного языка напрямую выполняет то или иное электронное устройство. Данные и команды записывали в цифровом виде (например, в шестнадцатеричной или двоичной системах счисления). Понять программу на таком языке очень сложно; кроме того, даже небольшая программа получалась состоящей из множества строк кода. Ситуация осложнялась еще и тем, что каждая вычислительная машина понимает лишь свой машинный язык [11].


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

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

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

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

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

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


1.2. Классификация языков программирования

За 60 с лишним лет развития ЭВМ были разработаны сотни языков программирования, многие из которых используются и сейчас (например Бейсик и Фортран были впервые применены уже в конце 1950–х годов), ежегодно появляется несколько новых языков промышленного применения (не считая десятков экспериментальных). Для того чтобы разобраться в них, языки классифицируют по важнейшим признакам:

  • эволюционным – поколения языков (1GL, 2GL, 3GL, 4GL, 5GL...);
  • функциональным – по назначению, исполняемым функциям (описательные, логические, математические);
  • уровню языка – то есть уровню обобщения в словах–операторах языка (низкого, среднего, высокого...);
  • области применения – то есть где применяется язык (системные, сетевые, встроенные и пр.

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

Рассмотрим классификацию относительно поколений языков программирования

Поколение 1GL.

Машинные языки, языки низкого уровня – двоичные языки процессоров, представляющие собой набор (алфавит) команд, записанных в двоичном коде (0,1), которые данный процессор может выполнить непосредственно, если эти команды ввести в его память в виде последовательности или сразу подать в арифметическо–логическое устройство процессора. Примеры: язык процессора IBM–PC, язык ARM–процессора [19].

Поколение 2GL.

Ассемблеры, автокоды, системные языки, языки среднего уровня – текстовые языки, понятные человеку и однозначно переводимые (транслируемые) в языки низкого уровня, то есть машинный двоичный код. Программирование на 2GL на порядок производительнее, чем на 1GL, так как более удобны для человеческого восприятия. Примеры: Макроссемблер, С, PL/1.

Поколение 3GL.

Языки высокого уровня – текстовые языки, приближенные по словарю и синтаксису к человеческому языку (обычно утрированному английскому, пиндосу), позволяющие записывать программные конструкции в форме, удобной для человеческого мышления и подобные обычному тексту – конспекту, стенограмме. Программирование на 3GL на порядок производительнее, чем на 2GL, так как более удобны для человеческого восприятия и на порядок короче ассемблерных. Примеры: бейсик, фортран, PHP и практически все сетевые языки.


Поколение 4GL.

Языки визуального программирования – языки блок–схем, позволяющие отображать алгоритмы в программных проектах, что облегчает создание и анализ алгоритмов. Программирование на 4GL на порядок производительнее, чем на 3GL. Примеры: RAD–системы, CAD–пакеты, OLAP–системы.

Поколение 5GL.

Интеллектуальные языки программирования – позволяют передать функцию создания алгоритмов компьютеру, а за человеком оставить лишь постановку задачи. Программирование на 5GL на порядок производительнее, чем на 4GL. Примеры: система MatCAD, экспертные системы [19].

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

Хотя поколения языков, естественно, сложились исторически, это не означает, что ранние поколения себя изжили. Они применяются в своих нишах, например, для программирования простейших устройств, имеющих минимум памяти, типа банковских карт, микроконтроллеров бытовых и промышленных устройств применим только машинный код, ибо языкам высоких уровней там «не развернуться». В системном программировании наилучшие результаты дают языки 2GL, ибо в этой сфере важна скорость выполнения и компактность кода. Для обработки текста и сетевых задач оптимальными являются языки 3GL.

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

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

Декларативные языки программирования – это языки объявлений и построения структур. К ним относятся функциональные и логические языки программирования. В этих языках не производится алгоритмических действий явно, то есть алгоритм не задается прграммистом, а строится самой программой. В декларативных языках задается, производится построение какой–либо структуры или системы, то есть декларируются (объявляются) какие–то свойства создаваемого объекта. Эти языки получили широкое применение в системах автоматизированного проектирования (САПР), в так называемых CAD–пакетах, в моделировнии, системах исккусственного интеллекта [16].