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

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

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

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

Добавлен: 19.06.2023

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  • Низкоуровневые - языки программирования, близкие к программированию в машинных кодах, на базе использования виртуального или реального вычислительного процессора. При обозначении низкоуровневых команд часто используется мнемонические методы и механизмы. Это делает возможным оперировать командами не в виде последовательностей единиц и нулей, а в форме смысловых сокращений слов, используемых в естественных языках. Примером языка такого типа является ассемблер, представляющий собой целый спектр групп языков, реализованных для разных архитектур, т.к. для одного процессора может существовать несколько видов ассемблера. Они могут быть идентичными в машинных командах, однако, часто различаются макросами и директивами.
  • Высокоуровневые (C#, Java)– языки, которые разработаны для обеспечения платформенной независимости создаваемых алгоритмов. В данном случае имеется в вижу, что различные платформенные зависимости перекладываются на программы-трансляторы, которые осуществляют компиляцию текста, который создан на высокоуровневом языке, к виду машинных инструкции (команд). С этим связана необходимость разработки уникальных трансляторов высокоуровневого языка для каждой платформы.
  • Сверх высокоуровневые (Алгол-68) — языки, обладающие еще большим уровнем абстракции, чем высокоуровневые языки программирования, в связи с чем их используют для разработки и решения специфических предметно-ориентированных приложений и задач. В таких языках программирования часто реализован синтаксис, не используемый в других языках. В сверх высокоуровневых языках не описывают детали реализации («как делать»), реализуется концепция (принцип «что делать»).

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

– первое поколение: применение на ЭВМ первого поколения с машинно–ориентированным использованием и ручным процессом управлением памятью;

– второе поколение: применение автокодов или мнемонических символов для представления команд программы;

– третье поколение: языки программирования высокого уровня общего типа и назначения, которые использовались в первую очередь для разработки и реализации пакетов прикладных программ в нужной предметной области (Паскаль, Бейсик, Си);

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


– пятое поколение: объектно–ориентированные, декларативные и визуальные высокоуровневые языки программирования. Данные языки применяются в настоящее время и используются для разработки клиент-серверных приложений, мобильных систем и распределенных веб-сайтов. Примерами таких языков являются Си++, Java, C#, Visual Basic, Delphi.

Обобщенная схема классификации программирования [18] приведена на рис.4.

Рисунок 4 – Схема классификации языков программирования

Выводы по главе 1

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

ГЛАВА 2 АНАЛИЗ ЯЗЫКОВ НАПИСАНИЯ ПРОГРАММНОГО КОДА

2.1. Особенности классификации высокоуровневых языков программирования

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

1.Фортран, использовался преимущественно для написания программ, которые выполняли научные и математические расчеты.

2. Алгол – один из первых коммерческих языков программирования, применялся для решения различных экономических задач).

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

4. Си – язык разработки первых сетевых протоколов и операционных систем, популярных в ряде отраслей и в настоящее время.

5. Пролог – язык, используемый в области искусственного интеллекта, в силу поддержки гибкого аппарата математической логики и предикатов [5].

Согласно специфике использования высокоуровневых языков программирования используется три типа трансляторов [2]: 

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


2. Компилятор – это транслятор, который осуществляет преобразование всей программы в отдельный модуль машинного языка, а затем программа записывается непосредственно в оперативную или постоянную память ЭВМ и выполняется.

3. Ассемблер, предназначенный для корректного перевода разработанной программы, которая записана на языке ассемблера, в соответствующую программу машинного языка.

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

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

Среди таких языков выделяют структурные и операционные языки. В структурных языках запись целых алгоритмических структур (ветвление, циклы и др.) выполняются одним оператором. В операционных языках для решения данной задачи применяется уже несколько операций. Исторически, структурными языками являются Паскаль, Ада, Си. Операционными являются Фортран, Фокал, Бейсик.

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

В логических языках программирования код программы не описывает никаких действий. Программа лишь задает данные и взаимосвязи (соотношения) между ними. Затем, поддерживается возможность задания системе различные вопросы. ЭВМ осуществляет перебор доступных и заданных в программе данные, после чего находит нужный ответ и выводит его. Таким образом, непосредственный порядок перебора команд не описывается явно в программе, а задается синтаксисом самого языка. Классическим языком такого типа программирования является Пролог [12].

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

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


В настоящее время наиболее востребованными языками программирования высокого уровня являются Java, C#, Python. Данные высокоуровневые языки программирования являлись машинно–независимыми, в силу их ориентации на систему операндов, которые являются характерными для формализации записей имплементированных алгоритмов [20]. Статистика по состоянию на январь 2017 года приведена на рис.5.

Рисунок 5 – Статистика популярности языков программирования высокого уровня

2.2. Специфические черты и особенности ряда языков программирования

2.2.1. Язык программирования C#

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

  • язык создавался параллельно с технологией .Net, что позволило разработчикам интегрировать все необходимые механизмы обеспечение функциональных взаимосвязей фреймворка, в том числе FCL и CLR;
  • это полноценный объектно-ориентированным язык, причем даже примитивные типы данных языка представлены в качестве отдельных классов [4];
  • поддержка механизмов наследования, инкапсуляции и полиморфизма;
  • разработан на базе использования C и C ++, что позволило интегрировать наиболее функциональные возможности этих высокоуровневых языков программирования;
  • с помощью поддержки ряда фреймворков, выступающих в виде некой надстройки над операционной системой пользователя, разработчики C# могут использовать механизмы создания и работы с виртуальной машиной, аналогично существующим технологиям языка Java [10].

При этом существенно повышается эффективность и используемость программного кода.

Это связано с тем, что исполнительная среда CLR позволяет обеспечить работу компилятора промежуточного уровня, что является более эффективным по сравнению с интерпретатором байт-кода в Java Virtual Machine.

В настоящее время весьма популярен среди разработчиков программного обеспечения (ПО) набор продуктов компании Microsoft, включающих, в частности, интегрированную среду разработки (IDE) программ - Microsoft Visual Studio [2].


В настоящее время актуальной версией является Microsoft Visual Studio 2017.

Предлагаемые средства разработки ПО продукты позволяют оперативно и гибко разрабатывать различные типы приложений, в частности, согласно [10]:

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

Состав проекта на языке C# в рамках фрейморка .NET приведена на рис. 6 [4].

Рисунок 6 - Структура проекта на языке C# в Visual Studio

IDE Visual Studio включает в себя гибкий и современный редактор исходного программного кода, интегрируя поддержку технологии IntelliSense, а также средства оперативного профилирования и рефакторинга кода. Имеющийся в среде разработки отладчик способен функционировать в качестве отладчика на уровне исходного программного кода, а также имеются возможности его использования в качестве отладчика на машинном уровне. К другим встроенным средствам и инструментам среды следует отнести интуитивно понятный редактор форм, который способствует ускорению процесса создания и конфигурирования компонентов графического интерфейса программного приложения, дизайнеры классов, объектов и схем баз данных [14].

IDE Visual Studio, также, позволяет разрабатывать и интегрировать в проект сторонние плагины и функциональные расширения, которые обеспечивают новые возможности разработки приложений на различных уровнях. В частности, широко используются плагины добавления функций использования современных систем контроля версий (Subversion, Git), интеграции новых пакетов инструментов для визуального редактирования проектирования кода на UML-языке, создания диаграмм сценариев использования, разработки алгоритмов.

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

Python это современный объектно-ориентированный язык с поддержкой динамической типизации, автоматического процесса управления памятью, высокоуровневых гибких структур данных (словари, кортежи, списки). Python поддерживает создание классов, связи модулей, гибкую и удобную обработку исключительных ситуаций и многопоточные методы вычислений. Кроме ООП данный язык структурное, функциональное и аспектно-ориентированное программирование [15].

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