Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования высокого уровня (Обзор современных языков программирования)

Содержание:

ВВЕДЕНИЕ

Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически перевести такую программу в машинный код пока невозможно [6. С. 319]. Современный этап развития информационных технологий требует от высококвалифицированных специалистов компетентности в области программирования. Деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать в своей профессиональной деятельности. Для свободной ориентации в информационных потоках современный специалист любого профиля должен иметь представление о существующей классификации языков программирования, уметь осуществлять выбор языка программирования для решения профессиональных задач.

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

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

Предметом исследования: изучение классификации языков программирования высокого уровня.

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

При выполнении курсовой работы пред нами были поставлены следующие задачи:

  • ознакомится с особенностями языков программирования высокого уровня;
  • рассмотреть историю развития языков программирования;
  • подготовить обзор современных языков программирования высокого уровня.

В данной курсовой работе использовались научно-исследовательские методы: анализ, сравнение, обобщение.

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

Глава1. История развития языков программирования

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

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

Язык программирования высокого уровня обеспечивает написание программного кода в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов микропроцессора любого типа. Однако с помощью высокоуровневого языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, можно этот текст автоматически перевести в машинный код с помощью компилятора и затем использовать отдельно от исходного текста. Компилятор ищет в коде программы синтаксические ошибки и затем генерирует машинный код для микропроцессора. В процессе обработки кода выполняется его оптимизация, которая позволяет повысить быстродействие программы. Основным недостатком компилятора является трудоемкость генерации машинного кода языка программирования. Если необходимо сразу выполнять команды языка, указанные в тексте программы, то нужно использовать интерпретатор. Интерпретатор берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет команду. После успешного выполнения текущего оператора интерпретатор переходит к обработке следующего. Такой подход имеет два недостатка. Во-первых, если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил его впервые. Во-вторых, для выполнения программы на другом компьютере на нем должен быть установлен интерпретатор используемого языка программирования. Для того чтобы создать программу с помощью языка программирования высокого уровня, необходимо иметь текстовый редактор, компилятор или интерпретатор, редактор связей и библиотеки функций [3. C.158-159].

С тех пор как в 50‑е гг. появились первые языки программирования высокого уровня, методы их разработки и реализации постоянно развиваются. Первые версии FORTRAN и LISP были разработаны в 50‑е гг., история языков Ada, C, Pascal, Prolog и Smalltalk начинается в 70‑х гг., в 80‑е возникли такие языки, как С++, ML, Perl, Postscript, а язык Java – самый молодой, он появился в 90‑х. В 60‑е и 70‑е гг. новые языки часто возникали при разработке больших проектов по созданию программного обеспечения как их составная часть. Когда в 70‑е гг. Министерством обороны США в рамках основного проекта разработки языка Ada был составлен отчет об используемых в то время языках программирования, выяснилось, что в различных оборонных проектах было использовано более 500 языков [5. С. 19].

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

При создании языков высокого уровня делалась попытка выразить в языке суть алгоритма решения задачи, абстрагированного от мелких деталей реализации на той или иной ЭВМ, что нашло свое отражение в названии еще одного знаменитого языка программирования – Алгол (от англ. algorithmic language – алгоритмический язык). Более того, по крайней мере в некоторой степени (поскольку все же нюансы реализации на разных платформах различались) программы на языках высокого уровня стали переносимыми. Для того чтобы программу можно было использовать на некоторой ЭВМ (с произвольной системой команд), достаточно было наличия для нее транслятора (программы-переводчика) с соответствующего языка высокого уровня в машинный код. При наличии трансляторов для разных архитектур теоретически становится возможным написать и отладить программу на одной ЭВМ, а затем перенести ее на другую и там использовать. Естественно, к минусам данной технологии можно отнести необходимость предварительной разработки транслятора. При этом он может относиться к одной из двух разновидностей: компиляторы и интерпретаторы. Разница между ними заключается в следующем. Компилятор принимает на вход всю программу на языке высокого уровня целиком и в результате процесса трансляции строит так называемый объектный модуль, содержащий машинный код, понятный процессору целевой ЭВМ.

Интерпретатор переводит программу на языке высокого уровня построчно, при этом для каждой строки исходной программы создает некоторое внутреннее представление на специальном промежуточном языке, которое направляется специальной машине времени исполнения, или виртуальной машине (Virtual Machine). Эта машина немедленно исполняет полученное предписание. И у компиляторов, и у интерпретаторов есть достоинства и недостатки. К достоинствам компилятора относится в первую очередь то, что полученный машинный код может непосредственно исполняться на данной ЭВМ, при этом наличия компилятора в момент выполнения не требуется. Выполнение же происходит на максимально возможной скорости. Однако в случае необходимости внесения в программу изменения, даже минимального, потребуется произвести перекомпиляцию исходного текста полностью, даже если он насчитывает десятки тысяч строк! Интерпретатор переводит программу построчно, поэтому он удобен для отладки программы, когда постоянно происходят уточнения и изменения и нужно быстро увидеть, как поведет себя откорректированная программа. К недостаткам интерпретатора относится то, что, поскольку программа исполняется интерпретатором, а не непосредственно процессором, вопервых, скорость выполнения программы существенно ниже, чем при компиляции (обычно в 10–20 раз), а во-вторых, требуется наличие машины времени выполнения в памяти.

В то же время скомпилированная программа в машинном коде – аналогично программе на ассемблере – может исполняться лишь на архитектурно совместимой ЭВМ. А для интерпретируемого языка (например, Java) достаточно установки на данный компьютер машины времени исполнения (в случае Java – JVM (Java Virtual Machine)), после чего на ней теоретически могут быть исполнены любые программы на данном интерпретируемом языке (лозунг Java – Write Once Run Everywhere – «написав раз, запускаешь везде!»). Среди языков программирования высокого уровня Бейсик, Лисп, Java, Питон, Форт обычно реализуются как интерпретаторы, а Фортран, Си, С++, Паскаль, Модула-2 – как компиляторы, хотя это правило не является обязательным.

Программирование на языках высокого уровня гораздо удобнее для человека, чем в терминах машины. В результате появления Фортрана и Кобола программирование стало доступным широкому кругу специалистов. Неудивительно, что языки программирования высокого уровня стали бурно развиваться. В настоящее время известно более 8000 языков программирования. Несмотря на наличие такого большого количества языков, лишь некоторые из них массово применялись, породили многочисленных потомков или оказали существенное влияние на систему понятий и дальнейшее развитие предметной области. Наиболее известными и/или оказавшими влияние на теорию и практику развития программирования языками являются (приведены язык-родоначальник и созданные затем на его основе версии и языки-потомки):

  • Фортран – Фортран IV – Фортран 77 – Фортран 90;
  • Кобол;
  • Алгол – Алгол 60 – Алгол 68;
  • Симула – Симула-67;
  • Smalltalk;
  • PL/I – PL/M;
  • BASIC – GW-Basic – Turbo Basic – Quick Basic – Visual Basic;
  • Паскаль – Модула – Модула-2 – Оберон – Active Oberon –Компонентный Паскаль – Zonnon;
  • Ада – Ада 83 – Ада 95 – Ада 2012;
  • (BCPL – B ) – С – Objective C – C++ – Java – C# – C11;
  • APL – K – J;
  • Лисп – Scheme – Common Lisp – Clojure – AutoLisp;
  • ML – Standard ML – Ocaml – F# – LazyML – Miranda – Haskell –Curry;
  • Planner – QA4 – Popler – Conniver – QLisp;
  • Пролог – Parlog – Mercury – Oz – Fril – P#;
  • Форт;
  • Клу.

Большинство известных языков программирования используют в качестве основы для наименования ключевых слов английский язык [7. С.21-24].

В конце ХХ в. с распространением Интернета расширилась возможность распределенной обработки данных, что отразилось и на развитии языков программирования. Появились языки, ориентированные на создание серверных приложений, такие как Java, C#, Perl и PHP, языки описания документов – HTML, описания данных – XML.

Язык PHP, называемый также препроцессором PHP, был разработан в 1994 г. Расмусом Лердорфом. Далее вышло несколько релизов компилятора этого языка. В настоящее время Zend Company выпустила ряд продуктов, поддерживающих разработку на языке PHP, включая среду разработки Zend Studio1 . Популярность сценариев языка PHP вызвана наличием средств работы с базами данных: для PHP-приложений поддерживается набор функций для взаимодействия с базой данных MySql.

Язык Perl – интерпретируемый, он позволяет создавать пере- носимые Web-приложения, которые могут работать на различных платформах, включая Microsoft Windows, Linux и Unix, Mac OS. Для работы под Windows следует установить интерпретатор ActivePerl, который является свободным программным обеспечением. Для редактирования сценариев на языке Perl можно использовать DzSoft Perl Editor.

Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также функциональность, обеспечиваемая библиотекой классов, предоставляемой средой программирования. Примером языка программирования, составляющего одно целое с библиотекой классов, стал язык C#, предложенный фирмой Microsoft [1. C.8].

Глава 2. Языки программирования высокого уровня

Языки высокого уровня, предназначенные для решения сходных задач сходными методами принято разделять на группы, называемые парадигмами (рис. 1). В рамках каждой парадигмы существуют свои соглашения о том, какие подходы применяются при решении различных типов задач, как оформлять код и прочее.

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

Процедурное (императивное) программирование

Процедурное или императивное программирование есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на этом языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основной командой является команда присвоения, предназначенная для определения и изменения содержимого памяти компьютера. Фундаментальная идея процедурного программирования в использование памяти компьютера для хранения данных. Функционирование программы сводится к последовательному выполнению команд с целью преобразования исходного состояния памяти, т.е. программа производит пошаговое преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Императивные (процедурные) языки - это языки, оперирующие командами, изменяющими значение элементов данных. Программа на императивном языке программирования с математической точки зрения представляет собой общее решение поставленной задачи, иными словами, ответ на вопрос «как делать?». Это последовательность команд, которые должен выполнить исполнитель. Примеры языков: Fortran, COBOL, Paskal, BASIC, Algol и др.

Структурное программирование

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

Декларативное программирование

Декларативные (непроцедурные) языки - языки, оперирующие инструкциями данных и отношениями между ними. Алгоритм скрывается семантикой языка. Программа на декларативном языке программирования является сочетанием формализованной в рамках языка программирования задачей и всех необходимых для ее решения теорем, проще говоря, ответ на вопрос «что делать?». Декларативное программирование – термин с двумя различными значениями. Согласно первому определению, программа «декларативна», если она описывает каково нечто, а не как его создать. Например, веб-страницы на HTML декларативны, так как они описывают что должна содержать страница, а не как отображать страницу на экране. Этот подход отличается от языков императивного программирования, требующих от программиста указывать алгоритм для исполнения. В типично декларативном языке программирования XSLT, последовательность исполнения зависит, как правило, от входящего XML (в случае с использованием push-модели – «проталкивание»), в случае использования pull-модели (вытягивания), XSLT вырождается в частный случай функционального программирования и легко может быть заменена на аналогичный код в XQuery. Согласно второму определению, программа «декларативна», если она написана на исключительно функциональном, логическом или языке программирования с ограничениями. Выражение «декларативный язык» иногда употребляется для описания всех таких языков программирования как группы, чтобы подчеркнуть их отличие от императивных языков.

Функциональное программирование

Суть функционального (аппликативного) программирования определена А.П. Ершовым как «способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени функции, а единственным правилом композиции - оператор суперпозиции функций. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления». Ключевым понятием в функциональных языках является выражение. К ним относятся константы, структурированные объекты, функции, их тела и вызовы функций.

Функциональный язык программирования состоит из:

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

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

Функциональные языки в какой-то мере приближаются к описанию структуры мышления человека. Первым таким языком стал LISP , созданный в 1959 г. Джоном Маккарти. Этот язык ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации. Существенная черта языка – единообразие программных структур и структур данных: все выражения записываются в виде списков. Рассматривается специалистами как основной язык программирования систем искусственного интеллекта.

Логическое программирование

Концепция логического программирования базируется на понятии отношение. Логическая программа – это совокупность аксиом правил, определяющих отношения между объектами и целью. Выполнение программы представляет собой попытку доказательства логического утверждения, построенного из программы по правилам, определенным семантикой используемого языка. Результатом вычислений является вывод следствий из аксиом. Алгоритм логической программы предполагает определение и перечень специфически свойств объектов и отношений между ними, а не определение порядка выполнения отдельных шагов. Это подтверждает декларативный характер логического языка программирования. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска. Программа на языке Prolog, в основу которой положена математическая модель теории исчисления предикатов, строится из последовательности фактов и правил, затем формулируется утверждение, которое Prolog будет пытаться доказать с помощью введенных правил. Пользователь только описывает структуру задачи, а внутренний механизм Prolog сам ищет решение с помощью методов поиска и сопоставления. Примеры языков: Prolog, Lisp, Oz, Mercury и др.

Объектно-ориентированное программирование

Также можно выделить языки, сочетающие подходы императивного и декларативного программирования, т. н. объектно-ориентированные языки - языки, в которых данные и функции, имеющие доступ к ним рассматриваются как один модуль. Пример: С++, Java, Python. Основой объектно-ориентированного программирования (ООП) является понятие объект. Его суть состоит в том, что объект объединяет в себе совокупность атрибутов (данных), методов их обработки и событий, на которые объект может реагировать. Другим фундаментальным понятием ООП является класс. Класс есть шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. В ООП класс представляет собой абстрактный тип данных и является механизмом для создания объектов. Объявление класса есть логическая абстракция, определяющая новый тип объекта, а определение объекта как экземпляра класса создает этот объект физически, т.е. размещает объект в памяти. Выделяют следующие основные понятия объектно-ориентированного программирования:

  • полиморфизм – означает свойство переопределять методы наследуемого класса и корректно их использовать в различных контекстах;
  • инкапсуляция – означает свойство скрывать внутреннюю структуру класса, в которой описываются его методы и атрибуты, значения которых в промежутках между вызовами методов класса могут меняться;
  • наследование – означает возможность создавать новые классы на основе существующих с наследованием всех их свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называют базовым [6. C.323-331];

Примеры языков: Object Pascal, C++, Java и др.

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

На практике языки программирования не являются чисто процедурными, функциональными, логическими, или объектно-ориентированными. Они содержат в себе черты различных языков. Поэтому зачастую на процедурном языке можно написать функциональную или объектно-ориентированную программу. Из-за этого вместо типа языка точнее говорить о стиле (или методе) программирования. Конечно не все языки поддерживают вышеперечисленные стили в равной степени. Miranda и Haskell, например, созданные в 1985-87 гг., определяются именно как чисто функциональные (purely functional).

В [2] языки программирования высокого уровня подразделяют на:

  • процедурно-ориентированные;
  • проблемно-ориентированные;
  • объектно-ориентированные.

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

а) язык Фортран (Fortran). Является одним из первых языков программирования высокого уровня. К его основным достоинствам относится наличие огромного числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности [3], встроенных средств обработки массивов.

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

б) язык Бейсик (Basic). Был разработан в 1964 г. в качестве языка для обучения программированию.

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

Одним из основных недостатков языка является то, что он поддерживает только операционные системы семейства Windows, DOS и Mac OS X, что значительно сужает сферы его применения. Также к недостаткам можно отнести низкую скорость работы и отсутствие механизма наследования реализации объектов.

в) язык Си (С) был создан в 1969–1973 годах в качестве языка системного программирования и первоначально предназначался для написания ОС UNIX [4,6]. В 1980-е гг. язык С был дополнен инструментами объектно-ориентированного программирования и на основе него был создан язык C++.

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

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

г) язык Паскаль (Pascal). Был создан математиком Н. Виртом специально для обучения программированию. Однако со временем стал широко применяться для разработки программных средств в профессиональном программировании.

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

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

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

В отличие от языка С (С++) в при использовании Паскаль сведены к минимуму возможные синтаксические неоднозначности [1,2], синтаксис языка является интуитивно понятным и доступным, поскольку, как уже было отмечено выше, язык изначально разрабатывался для обучения студентов программированию.

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

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

Рассмотрим особенности языков другого класса. Основным достоинством проблемно-ориентированных языков программирования является минимизация трудозатрат программиста при решении задач принадлежащих некоторому четко выделяемому классу [3]. К проблемно-ориентированным относят следующие языки программирования:

а) язык Лисп. Считается вторым после Фортрана старейшим высокоуровневым языком программирования. Данный язык наиболее часто применяется при разработке экспертных систем и систем аналитических вычислений. Существуют современные версии этого языка, которые активно применяются при разработке новейших web-технологий. Также модификации данного языка используются в качестве встроенных языков программирования в САПР. Примером может послужить AutoLISP – язык для разработки надстроек в продуктах компании AutoDesk.

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

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

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

Большинство объектно-ориентированных языков являются версиями процедурно-ориентированных и проблемно-ориентированных.

В настоящий момент наиболее активно используются и развиваются следующие среды программирования:

а) Delphi (Lazarus некоммерческая – версия для ОС семейства Linux) – основана на Object Pascal;

б) C++, С# (~ C);

в) Visual Basic (~ Basic);

г) Visual Fortran (~ Fortran);

д) Prolog++ (~ Prolog).

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

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

Глава 3. Обзор современных языков программирования

Компания TIOBE Software (http://www.tiobe.com) ежемесячно публикует рейтинг языков программирования, который строится по данным популярных поисковых систем о количестве разработчиков и компаний, использующих язык, а также о количестве обучающих курсов по нему. Несмотря на бурные дискуссии относительно качества и достоверности этого рейтинга, его значимость велика, так как позволяет прогнозировать тенденции развития языков программирования и грамотно выбирать средства реализации долгосрочных программных проектов. На первом месте в данном рейтинге находится язык программирования Java, однако видно, что с каждым годом он неуклонно теряет свои позиции и в скором времени будет потеснен языком C, имеющим более стабильное положение. Также имеет тенденции к снижению популярности язык программирования C++, рейтинг которого сравним с рейтингом PHP, активно применяемого в программировании приложений для глобальной сети Интернет. Язык программирования Visual Basic тоже за последние годы неуклонно сдает свои позиции, хотя и находится в пятерке самых популярных языков. Наиболее динамично развиваются языки программирования C# и Python, которые за последний год обошли в данном рейтинге язык Perl. Язык Delphi имеет довольно стабильные позиции, так как требуется обслуживать ранее разработанное программное обеспечение, хотя никаких предпосылок для увеличения рейтинга нет, так как малое количество современных программ разрабатываются с его помощью. Стремительными темпами развивается язык программирования Objective-C, что в основном связано с ростом популярности мобильных платформ, приложения для которых разрабатываются именно на этом языке. Дадим краткую характеристику каждому из этих популярных языков программирования.

Язык программирования C является процедурным языком, который был создан для высокоэффективной работы с операционной системой UNIX. Хорошо зарекомендовав себя, этот язык был перенесен и на другие платформы и стал одним из самых популярных языков программирования в мире. С помощью этого языка создается большинство операционных систем, системного программного обеспечения и прикладных программ. Для языка программирования C характерны лаконичность, современный набор конструкций управления потоком выполнения, структур данных и большой набор операций. Многие языки взяли за основу синтаксис языка C.

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

Язык программирования C# также относится к семье объектно- ориентированных языков программирования с С-подобным синтаксисом. Данный язык является основным инструментом разработки приложений для платформы Microsoft.NET. Этот факт предопределил выбор программистов, рабо тающих над созданием проектов для платформы Microsoft.NET.

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

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

Язык программирования PHP представляет собой скриптовый язык программирования, используемый для создания Интернет-сайтов. В настоящее время этот язык поддерживается практически на всех серверах в глобальной сети Интернет. Он является лидером среди языков программирования, применяющихся для создания динамических сайтов. Это связано с тем, что в PHP реализовано множество встроенных средств для разработки Интернет-сайтов: взаимодействие с базами данных, работа с удаленными файлами, поддержка сессий и авторизации, обработка переменных окружения сервера.

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

Язык программирования Visual Basic сочетает в себе процедурный и объектно-ориентированный подход к программированию, разработанный корпорацией Microsoft. На сегодняшний день очень популярен диалект этого языка программирования Visual Basic for Application, представляющий собой общую языковую платформу для приложений Microsoft Office, что позволяет повысить производительность выполнения многих команд в этих приложениях. Достоинством языка Visual Basic for Application является то, что среда разработки включает инструменты для визуального конструирования программ.

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

Язык программирования Python ориентирован на производительность создания программ и читаемость кода. Функциональные возможности этого языка очень велики, так как стандартная библиотека включает большое количество полезных функций, и сторонние производители дополнительно разрабатывают модули расширений данного языка программирования. Поэтому с каждым годом увеличивается количество программистов, отдающих предпочтение при создании проектов именно языку программирования Python [3. C.161-164].

ЗАКЛЮЧЕНИЕ

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

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

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

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

БИБЛИОГРАФИЯ

1. Баженова, И.Ю. Языки программирования: учебник для студ. учреждений высш. проф. образования / И.Ю.Баженова; под ред. проф. В.А.Сухомлина. – М.: Издательский центр «Академия», 2012. – 368 с.

  1. Вирт, Н. Алгоритмы и структуры данных. – М.: Мир, 1989. – 360 с.
  2. Зрюмова, А.Г. Информатика: Учебное пособие / А.Г. Зрюмова, Е.А. Зрюмов, С.П. Пронин. – Барнаул: Изд-во АлтГТУ, 2011. – 177 с.
  3. Павловская, Т.А. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. – СПб.: Питер, 2003. –461 с
  4. Пратт, Т. Зелковиц, М.. Языки программирования: разработка и реализация. 4-е изд. СПб.:Питер, 2003, – 683 с.
  5. Соболь, Б.В. Информатика / Б.В. Соболь, А.Б. Галин, Ю.В. Панов, Е.В. Рашидова, Н.Н. Садовой. – 3-е изд., доп. и перераб. – Ростов н/Д: Феникс, 2007. – 446 с.
  6. Тюгашев, А.А. Основы программирования. Часть I. – СПб: Университет ИТМО, 2016. – 160 с.