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

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

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

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

Добавлен: 28.03.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

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

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

Предметом исследования стало нахождение и выработка критериев выбора средств разработки программ.

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

- рассмотреть все многообразие языков программирования и их классификацию;

- изучить основные этапы развития языков программирования;

- проанализировать теоретический опыт выбора сред и языков программирования при разработке программ;

- выделить ключевые факторы, влияющие на выбор среды разработки программ;

- выработать критерии выбора среды и языка разработки программ.

Теоретической основой рассматриваемой темы послужили работы таких авторов, как В.В. Беспалов, С. Орлов, А.А. Тюгашев и многие другие.

ГЛАВА 1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ

1.1. ПОНЯТИЕ И СУЩНОСТЬ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

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


Языком программирования называется язык (знаковая система), предназначенный для записи компьютерных программ. Основным условием является то, что язык программирования должен включать в себя весь набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под ее управлением. Таким образом, язык программирования – это инструмент для производства программных услуг [[1]2, с. 28].

Языки программирования предназначены для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами [[2]6, с. 19].

Со времени создания первых программируемых машин человечество придумало более 8 тысяч языков программирования (включая нестандартные, визуальные и эзотерические языки) [[3]4, с. 48]. Ежегодно число языков увеличивается. Существуют языки, пользоваться которыми умеют только те программисты, кто их собственно и разрабатывал, другие становятся известны и подвластны миллионам людей. Профессиональные программисты могут владеть одновременно более чем десятью языками программирования.

Если окунуться в историю появления языков программирования, то можно увидеть, что в период 1960-х - 1970-х гг. были разработаны основные парадигмы языков программирования, используемые в настоящее время, хотя во многих аспектах этот процесс представлял собой улучшение идей и концепций, заложенных еще в первых языках третьего поколения [[4]4]:

- язык APL, который стал первым языком, поддерживавшим обработку массивов, оказал влияние на функциональное программирование;

- язык NPL был разработан для объединение лучших черт Fortran и COBOL;

- язык Suimla, появившийся примерно в то же время, что NPL, впервые включал поддержку объектно-ориентированного программирования;

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

В период с 1969 по 1973 гг. велась разработка языка Си (как развитие языка Би), популярного и по сей день, и ставшего основой для множества последующих языков, например, столь популярных, как С++ и Java.

В 1972 г. был создан Prolog - наиболее известный (но не первый, и не единственный) язык логического программирования.

Двигателем прогресса всегда являлась пропасть между сложностью решаемых задач и примитивностью машинных команд [[5]3, с. 19].


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

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

1.2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

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

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

По самой распространенной классификации все языки программирования, в соответствии с тем, в каких терминах необходимо описать задачу, делят на языки низкого и высокого уровня [[6]7, с. 101]. Если используется язык программирования близкий к естественному языку программирования, то его называет языком высокого уровня, если используют язык ближе к машинным командам – его называют языком низкого уровня.

Низкоуровневые языки делиться на машинные языки и языки символического кодирования: Автокод (assembly language). Операторы этого языка — это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня являются машинно-зависимыми и ориентированы на определенный тип компьютера.

Машинно-ориентированные языки — это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ.

К языкам программирования высокого уровня относят: Fortran (переводчик формул - был разработан программистами фирмы IBM в середине 50-х гг. и в основном используется для программ, выполняющих естественно-научные и математические расчеты), Algol, Сobol (коммерческий язык, который используется, в первую очередь, для программирования экономических задач), Pascal, BASIC (был разработан профессорами Дармут-ского колледжа — Джоном Кемени и Томасом Курцом), Си (Деннис Ритч — 1972 г.), Пролог (в основе языка лежит аппарат математической логики) и т.д.

Эти языки машинно-независимы, так как они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Но в этих языках есть недостаток - программы, написанные на языках высокого уровня, занимают больше памяти и выполняются медленнее, чем программы на машинных языках. Программу, написанную на языке программирования высокого уровня, компьютер или другое программируемое устройство не понимает, поскольку ей доступен только машинный язык. Поэтому для перевода программы с языка программирования на язык машинных кодов используют специальные программы-трансляторы [[7]2, с. 23].


Существует три вида трансляторов:

- интерпретаторы (это транслятор, который производит пооператорную обработку и выполнение исходного кода программы);

- компиляторы (преобразует всю программу в модуль на машинном языке, после чего программа записывается в память компьютера и лишь потом исполняется);

- и ассемблеры (переводят программу, записанную на языке ассемблера, в программу на машинном языке) [[8]8].

Языки программирования также можно разделять на поколения [[9]3, с. 28-29]:

  1. Первое поколение – языки, которые использовались на компьютерах первого поколения с ручным управлением памяти и являлись машинно-ориентированным;
  2. Второе поколение языков - так называемые автокоды с мнемоническим представлением команд;
  3. Языки третьего поколения - общего назначения, используемые для создания прикладных программ любого типа. Например, BASIC, COBOL, Си;
  4. Языки четвертого поколения - разработанные для создания специальных прикладных программ, усовершенствованные, для управления базами данных;
  5. Некоторые авторы выделяют языки программирования пятого поколения – к ним относят языки декларативные, объектно-ориентированные и визуальные. Например, Prolog, LISP (используется для построения программ с использованием методов искусственного интеллекта), С++, Visual Basic, Delphi.

Языки программирования также можно классифицировать на процедурные и непроцедурные [[10]5].

В процедурных языках программы описывают явные действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. Среди процедурных языков выделяют структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д.; в операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных - Фортран, BASIC, Фокал.

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

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


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

Еще один класс языков программирования - это объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Благодаря богатому пользовательскому интерфейсу, они предлагают человеку решить задачу в удобной для него форме [[11]6]. Первый объектно-ориентированный язык программирования был Suimla.

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

В визуальном (графическом) программировании написание программы как текста заменяется в том или ином масштабе ее изображением в виде графической диаграммы (рисованием). Программист, таким образом, оперирует не текстом, а графическими образами. При этом визуальном представление обладает рядом преимуществ: высокой наглядностью и удобством для потребителя, позволяет сократить трудоемкий процесс разработки, повышает качество и надежность создаваемых программ [[12]3, с. 29].

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