Файл: Классификация языков программирования высокого уровня (Классификация языков программирования высокого уровня).pdf
Добавлен: 18.05.2023
Просмотров: 298
Скачиваний: 3
СОДЕРЖАНИЕ
1. ОСНОВНЫЕ ПОНЯТИЯ, СОСТАВНЫЕ ЭЛЕМЕНТЫ И КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Языки программирования высокого уровня
1.2. Классификация языков программирования высокого уровня
3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ САМЫХ ВОСТРЕБОВАННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
3.1. Рейтинг популярных языков программирования в России и США
ВВЕДЕНИЕ
Целью данной курсовой работы является изучение такого вопроса, как классификация языков программирования высокого уровня, а также тенденции их развития. Данная тема была выбрана потому, что языки программирования это основа прграммирования, без которой не возможно было бы с легкостью создавать записи компьютерных программ. Чем выше уровень языка, тем легче на нем писать программу. Такой язык более понятен человеку, так как позволяет с помощью простых смысловых конструкций задавать необходимую последовательность действий. После создания программы происходит ее компиляция- то есть автоматический перевод в понятный процессору язык машинных кодов. Поэтому основными задачами курсовой работы является:
- изучение основных понятий, составных элементов и классификации языков программирования
- исследовать тенденции развития языков программирования
- проанализировать наиболее востребованные языки программирования в России и США
Предметом исследования данной курсовой работы является изучение процедур, функции и подпрограмм в языках программирования высокого уровня, а также основных подходов к их созданию.
Актуальность данной темы в том, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Языки программирования высокого уровня были созданы для того, чтобы преодолеть недостатки низкоуровневого программирования. Они позволяют использовать различные операции, не заботясь о деталях их реализации на конкретной архитектуре. Программы при этом оказываются более короткими, надежными и универсальными, а процесс их составления проще разобраться.
В первой главе курсовой работы была использована информация из учебных пособий, таких как «Начальный курс программирования» Б.И. Березина и С.Б.Березина, а так же Н.В. Макаровой «Информатика», и др.. С помощью учебного пособия А.И. Бочкина и Т. Пратт, была произведена классификация языков программирования, благодоря информации взятой в учебнике Ваграменко, были рассмотрены сферы их применения, вкратце изложены их основные особенности, достоинства и недостатки.
Тенденции развития языков программирования во второй главе курсовой работы, были проанализированы при помощи данных взятых из учебников А.В. Могилевой «Методы программирования. Компьютерные вычисления», И.Г. Семакина «Основы программирования», в котором рассмотрен язык программирования Ада, В.П. Дьяконова «Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ», который помог разобраться в основах языка Бейсик, С.А. Орлова «Теория и практика языков программирования» пояснил для чего был основан язык Java, а так же и другие издания. Обзор и анализ особенностей применения языков программирования удалось изучить благодаря такой литературе как : В.Р. Фазылов «Руководство по основам программирования», А.Ю. Бураго «Язык для микропроцессоров», А.О. Коцюбинский «Хрестоматия работы на компьютере», Г.И. Светозарова «Программирование: Практикум по программированию на языке Бейсик» и др. учебных пособий, при помощи которых был проведен анализ достоинств и недостатков языков прграммирования высокого уровня, и рассмотрены примеры программ на данных языках.
В третьей главе при использовании данных из электронных ресурсов – «Cамые высокооплачиваемые языки программирования по мнению издания Quartz» URL: http://itmentor.by/articles/top-12-samyh-vysokooplachivaemyh-yazykov-programmirovaniya-po-mneniyu-izdaniya-quartz и «Рейтинг языков программирования 2017 года» URL: http://itmozg.ru/news/1286/ был проведен анализ спроса на язков программирования в России и США, и определены самые востребованные из них.
1. ОСНОВНЫЕ ПОНЯТИЯ, СОСТАВНЫЕ ЭЛЕМЕНТЫ И КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Языки программирования высокого уровня
Язык программирования - формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит компьютер под её управлением. Данное определение было представлено в учебнике Н.В. Макаровой «Информатика», которое явно раскрывает сущность самого понятия. [1]
Высокоуровневый язык программирования – язык программирования, разработан для быстроты и удобства использования. Термин «высокоуровневый» здесь означает, что язык предназначен для решения абстрактных высокоуровневых задач и оперирует не инструкциями к оборудованию, а логическими понятиями и абстракцией данный. Это позволяет быстрее программировать сложные задачи и обеспечивает относительную независимость от оборудования.[2]
Основные требования, предъявляемые к языкам программирования:
а) наглядность - использование в языке уже существующих символов, хорошо известных и понятных как программистам, так и пользователям ЭВМ;
б) единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть по возможности минимальным;
в) гибкость - возможность относительно удобного, несложного описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств;
г) модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые могут быть составлены отдельно и использованы в различных сложных алгоритмах;
д) однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач.
В настоящее время в мире существует несколько сотен уже используемых языков программирования. Для каждого есть своя область применения.[3]
Важным преимуществом языков высокого уровня является их универсальность, независимость от ЭВМ. Программа, написанная на таком языке, может выполняться на разных машинах. Разработчику программы не нужно знать систему команд ЭВМ, на которой он предполагает проводить вычисления. При переходе на другую ЭВМ программа не требует переделки. Такие языки – не только средство общения человека с машиной, но и людей между собой. Программа, написанная на языке высокого уровня, легко может быть понята любым специалистом, который знает язык и характер задачи.
Исходя из этого, можно сформулировать основные преимущества языков высокого уровня перед машинными:
а) алфавит языка высокого уровня значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;
б) набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
в) формат предложений достаточно гибок и удобен для использования, что позволяет с помощью одного предложения задать достаточно содержательный этап обработки данных;
г) требуемые операции задаются с помощью общепринятых математических обозначений;
д) данным в языках высокого уровня присваиваются индивидуальные имена, выбираемые программистом;
е) в языке может быть предусмотрен значительно более широкий набор типов данных по сравнению с набором машинных типов данных.
Высокоуровневые языки в по своей специфике являются машинно-независимыми. Они облегчают работу программиста и повышают надежность создаваемых программ.
Основные компоненты алгоритмического языка:
а) алфавит,
б) синтаксис,
в)семантика.
Алфавит — это фиксированный для данного языка набор основных символов, "букв алфавита", из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза. По правде говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются рациональными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика указывает, какие последовательности действий описываются теми или иными фразами языка и, какой алгоритм определен данным текстом на алгоритмическом языке.
Семантику каждого языка программирования можно условно поделить на "область пересечения" (общие для всех языков конструкции) и "область объединения" (нестандартные для данного языка конструкции).
Из учебника «Основы информатики и вычислительной техники» В.В. Гедрановича и Ю.В. Змеевой стало известно, что использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и различным аппаратным оборудованием, в то время как их исходный текст остаётся, в большей части, неизменным.[4]
Высокоуровневый язык не даёт возможности создания точных инструкций оборудованию. Таким образом, программы, написанные на языках высокого уровня, проще для понимания программистом, но гораздо менее эффективны, чем их аналоги, написанные при помощи низкоуровневых языков. В частности, поэтому в большинство профессиональных высокоуровневых языков программирования сегодня встроена поддержка того или иного языка низкого уровня – языка ассемблера.
Большинство современных компиляторов позволяют комбинировать в одной программе, код написанный на разных языках программирования. Что позволяет быстро писать сложные программы, используя язык высокого уровня, не теряя скорости действий в критических ко времени задачах, применяя для них части написанные на языке ассемблера.
Вставка фрагментов на языке ассемблера в текст программы или написание процедур на языке ассемблера, способ хороший для несложных изменений данных, но полноценного ассемблерного кода - с данными и подпрограммами, включая подпрограммы с множеством входов и выходов, не поддерживаемых языками высокого уровня, с его помощью сделать нельзя.
Многие современные компиляторы работают в два этапа. На первом этапе каждый файл программы компилируется в объектный модуль. А на втором объектные модули соединяются в готовую программу. Прелесть модульной компиляции состоит в том, что каждый объектный модуль будущей программы может быть полноценно написан на своем языке программирования и скомпилирован своим компилятором.[5]
1.2. Классификация языков программирования высокого уровня
Высокоуровневые языки программирования могут быть классифицированы по разным основаниям, к примеру, как это представлено на схеме:
Языки программирования высокого уровня
объектно-ориентированные
процедурно-ориентированные
проблемно-ориентированные
C++
Ada
Visual Basik
Java
Delphi
Prolog ++
Basic
Pascal
Fortran
Cobol
LISP
GPSS
Prolog
Схема. Классификация языков программирования
а) Процедурно-ориентированные (императивные) - испльзуются в качестве инструмента при обработке информации на любом этапе вычислений.
Императивное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».
Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, а именно в результаты. То есть, имеются программа и память, причем первая последовательно обновляет содержимое последней. [6]
Процедурные языки характеризуются следующими особенностями:
а) необходимостью явного управления памятью, в частности, описанием переменных;
б) малой пригодностью для символьных вычислений;
в) отсутствием строгой математической основы;
г) высокой эффективностью реализации па традиционных ЭВМ.
Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической емкостью его конструкций и степенью его ориентации на программиста. Язык программирования частично ликвидирует разрыв между методами решения различного рода задач человеком и вычислительной машиной. Чем более язык ориентирован на человека, тем выше его уровень. [7]