Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ. ( Процедурные языки программирования ).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

Данное требование появляется, когда программа разрабатывается для встраиваемых систем, мобильных платформ, микроконтроллеров и так далее. В данных случаях, чем меньше памяти расходует программа на данном языке – тем лучше. К таким языкам, опять же, относятся ассемблер, С/С++, Objective-C и другие. Список языков подобен списку пункта 1, так как чем меньше функциональных блоков в схеме исполнения, тем меньше занимается и памяти компьютера. Если данное требование некритично, то можно использовать «истинно высокоуровневые языки».

  • Скорость разработки программы.

Данное требование возникает тогда, когда начальник говорит «программа нужна не позже, чем вчера!» или еще какая срочность. Тогда выбор падает на высокоуровневые языки с максимально человеколюбивым синтаксисом. Это, например, Java, Flash и подобные. На данных языках время разработки может существенно сокращаться из-за обилия сторонних библиотек, максимально «очеловеченного» синтаксиса, и подобных вещей. Скорость выполнения программ, написанных на данных языках страдает, причем порой весьма ощутимо. Схема выполнения на примере Java:

Программа в виде байт-кода -> виртуальная машина-анализатор -> системные библиотеки -> драйвера -> железо.

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

  • Ориентированность на компьютер или человека

С кем будет работать программа в первую очередь? С человеком, или с компьютером? В пером случае программа должна обладать мощной графической частью, отвечающей требованиям дизайна и юзабилити. Разработка графической части зачастую требует достаточно много времени, т.к. отличается немалой сложностью. Здесь сложность возникает в том, что вывод графики – это немало математики, а значит присутствует требовательность к скорости исполнения, а из-за сложности разработки присутствует необходимость в высокоуровневом языке. В данном случае, на мой взгляд, очень хорошо подходит С++/C# с их одновременной и высокоуровневостью, и скоростью выполнения программ на них. Однако, если ГИП не очень сложный, но красивый, возможно использование Java и Flash, на которых создание красивых интерфейс гораздо проще, нежели на С++ и, тем более, С. Если программа ориентирована в первую очередь на «скрытую работу» с минимумом взаимодействия с пользователем, тогда выбор должен ложиться в сторону быстрых языков (ASM, C)


  • Кроссплатформенность.

Кроссплатформенность – возможность работы программы на различных платформах, в различных ОС с минимальными изменениями. В этой сфере можно выделить такие языки: Java, C#,Flash,C++ с различными библиотеками и другие, менее используемые, языки.

Java создавался с тем условием, что программы на данном языке должны работать на любой платформе, где есть JVM – Java Virtual Machine. Программы на Java вообще не требуют никаких изменений – после компиляции получается .jar файл, который будет работать и на Windows, и на Mac OS, и на Linux и еще немало где. Аналогичная ситуация и с Flash, только список платформ гораздо менее обширный. С С++ дело обстоит труднее. На чистом С++ написать кроссплатформенную программу довольно трудно, у кода возникает обширная избыточность, теряется достоинство в скорости выполнения. Облегчают задачу кроссплатформенные библиотеки, например, Qt, которые позволяют добиться принципа «один код на все платформы», однако на каждую платформу нужно программу собирать отдельно (при этом разными компиляторами).

В этот раздел так же можно включить интерпретируемые, скриптовые языки – для их работы нужно наличие интерпретатора языка в системе. Данные языки очень удобны в плане разработки, но достаточно медлительны. Схема их работы напоминает схему работы Java/Flash, только анализатор стал еще медленнее – полумашинный байт код анализировать «на лету» гораздо проще, чем человеческий код. Так же, это влечет к большему потреблению памяти.

  • Скорость внесения изменений, скорость тестирования

Проект стремительно развивается, в него постоянно вносятся изменения, порой немало? Тогда выбор должен падать на высокоуровневые языки, где любой функциональный блок можно быстро переписать. Для подтверждения – я думаю, гораздо проще дебажить тот же С++, чем ассемблер. А еще проще Java. Но тут очень много тонкостей, которые таятся даже не сколько в языке, сколько в разработчике с его стилем программирования и компиляторах. Тем не менее, язык вносит свою долю в это дело, так или иначе упрощая/осложняя работу программиста.

Заключение

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

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


  • процедурные;
  • непроцедурные.

Среди данных двух категорий языки также разбиваются на несколько крупных классов:

  • машинно-зависимые;
  • машинно-независисмые;
  • декларативные;
  • объектно-ориентированные.

Были рассмотрены некоторые представители данных языков, в частности:

  • C#;
  • Java;
  • Assembler;
  • Fortran;
  • C;
  • JavaScript;
  • C++.

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

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

Список используемых источников

1.Казанский А.А. Объектно-ориентированное программирование на языке Microsoft Visual С# в среде разработки Microsoft Visual Studio 2008 и .NET Framework. 4.3 [Электронный ресурс]: учебное пособие и практикум/ Казанский А.А.— Электрон. текстовые данные.— М.: Московский государственный строительный университет, ЭБС АСВ, 2011.— 180 c.— Режим доступа: http://www.iprbookshop.ru/19258.html.— ЭБС «IPRbooks»

2.Васильев В.Н. Основы программирования на языке C+ [Электронный ресурс]: учебное пособие/ Васильев В.Н.— Электрон. текстовые данные.— Волгоград: Волгоградский институт бизнеса, Вузовское образование, 2010.— 72 c.— Режим доступа: http://www.iprbookshop.ru/11341.html.— ЭБС «IPRbooks»

3.Кирнос В.Н. Введение в вычислительную технику. Основы организации ЭВМ и программирование на Ассемблере [Электронный ресурс]: учебное пособие/ Кирнос В.Н.— Электрон. текстовые данные.— Томск: Томский государственный университет систем управления и радиоэлектроники, Эль Контент, 2011.— 172 c.— Режим доступа: http://www.iprbookshop.ru/13921.html.— ЭБС «IPRbooks»