Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ. ( КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

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

Цели исследования:

  1. Рассмотреть общее сведения и уровни языков программирования.
  2. Изучить историю развития языков программирования.
  3. Выявить достоинства и недостатки современных языков программирования.

Задачи исследования:

  1. Рассмотреть классификации языков программирования.
  2. Определить критерии выбора языков программирования.
  3. Обзор современных языков программирования.

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

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


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

Были использованы научно-исследовательские труды таких авторов, как Симонович С.В., Лафоре Роберт, Стенли Липпман, Стивен Прата, Тюгашев А., Харольд Абельсон, Джеральд Джей Сассман, были рассмотрены самые популярные зарубежные книги и статьи с сайта http://www.linuxlinks.com/beginnerbooks/, и многие другие авторы и практикующие программисты, которые делятся своим опытом написания программ как на современных языках программирования, так и на устаревших языках.

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

1.1 Низкоуровневые и высокоуровневые языки программирования

Технологии прочно вошли в нашу повседневную жизнь, и сейчас крайне сложно представить современного человека без обработки какой-либо информации на компьютере. Программирование идёт бок о бок с техническим прогрессом и развивается столь же стремительно, как и остальные технологии. Развиваются старые языки программирования, разрабатываются новые, языки эволюционируют так же быстро, как повседневная речь. За всю историю развития электронно-вычислительных машин появились сотни языков программирования, многими из которых пользуются и по сей день. Огромное разнообразие и разновидностей языков необходимо классифицировать. На данный момент существует несколько различных классификаций по отдельным признакам, и каждый автор толкует их по-своему, по-своему распределяя языки по классам (приложение, рис. 1).

Существует множество классификаций языков программирования по различным критериям. В настоящее время можно выделить самое простое и распространенное среди пользователей деление – это деление на языки высокого и низкого уровня [9].

Рассмотрим сперва низкоуровневые языки программирования.

Низкоуровневые языки программирования – это совокупность формализованных синтаксисов, которые призваны упростить запоминание машинных кодов, а также применяемые для управления компьютерными процессорами [5].

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


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

Язык низкого уровня – это язык программирования, предназначенный для определенного типа компьютера и отражающий его внутренний машинный код. Языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, поскольку для этого требуется хорошо знать внутренние принципы работы компьютера [9]. Они же автокоды. Очень близки к машинному коду, что позволяет при умелом программировании получить высокую скорость выполнения, но заметьте в разработке сложных многоуровневых процессов они не подходят [4]. Знамениты автокоды тем, что написать код обычно быстрее, чем разобраться в существующем, таким как: Ассемблер, Forth.

Дональд Кнут в своей классической книге «Искусство программирования» приводил такой довод в пользу низкоуровневых языков: «Например некоторые комбинаторные вычисления нужно повторять триллионы раз, и мы сэкономим приблизительно 11,6 дней работы за счет того, что сократим время вычислений во внутреннем цикле всего на одну микросекунду». Даже один сэкономленный такт вычислений дает огромную экономию в крупном масштабе. Поэтому можно сделать вывод, что если вы используете невероятно эффективную и быструю программу, то она скорей всего написана с применением низкоуровневого языка [9].

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

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

Язык высокого уровня – это язык программирования, предназначение которого является удовлетворение требований программиста. Этот язык не зависит от внутренних машинных кодов компьютера какого-либо типа [14]. Языки высокого уровня используются программистами для решения проблем, и поэтому их часто называют проблемно-ориентированными языками [3]. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.


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

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

Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят ФОРТРАН, ПАСКАЛЬ, АЛГОЛ, БЕЙСИК, С, ко второму – ЛИСП, ПРОЛОГ, СНОБОЛ и др.

Информацию об этих языках рассмотрим ниже.

1.2. Языки программирования, основанные на принципе их парадигме

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

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

В середине 80-х годов в программировании возникло новое направление, основанное на понятии объекта. До того времени основные ограничения на возможность создания больших систем накладывала разобщенность в программе данных и методов их обработки [1].

Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта [6].

Появление возможности создания объектов в программах качественно повлияло на производительность труда программистов. Максимальный объем приложений, которые стали доступны для создания группой программистов из 10 человек, за несколько лет увеличился до миллионов строк кода, при этом одновременно удалось добиться высокой надежности программ и, что немаловажно, повторно использовать ранее созданные объекты в других задачах.


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

Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:

1. Инкапсуляция – объединение данных с методами в одном классе;

2. Наследование – возможность создания на основе имеющегося класса новые классы с наследованием всех его свойств и методов и добавлением собственных;

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

В процедурных языках программа будет описывать действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. В эту большую группу входят, например, ПАСКАЛЬ, С, АДА, ПЛ/1, ФОРТРАН и БЕЙСИК [8].

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

Яркий представитель данной группы из классификации языков программирования Алгол – это «прородитель» современных языков программирования. Если сказать коротко, то Алгол – это алгоритмический язык. Прямые потомки Алгола-58, откуда убрали оператор перехода. Хотя убрали это не подходящее слово, точнее будет сказать, что научились обходиться без него, а на уровне машинных команд прыжки вперёд через участки кода по-прежнему есть. Программы на них представляют собой последовательности действий, от «x:=2*2» до «господь Бог. Создать Вселенную()»: Алгол и Pascal; C, C++, C#, Java и Oberon; Ada, Simula и Modula; Smalltalk и Objective-C; ActionScript и Lua и так далее [8]. Если продолжать, то мы поймем, что их тысячи. Такой случайный язык, используемый или использовавшийся, ведь многие устаревшие языки уже не пригодны для написания современных программ, на практике ни возьми - с высокой вероятностью он будет принадлежать к описанной раньше группе. Что и неудивительно: само название «Алгол» происходит от «Algorithmic Language», то есть язык для описания алгоритмов. Но сам он, к сожалению, а может к радости разделив судьбу всех мертвых языков, ушел из современного мира программирования и стал частью истории технического прогресса. Упомянули такие языки, которые можно назвать старыми, но живыми.