Файл: Анализ особенностей применения языков программирования.pdf
Добавлен: 16.05.2023
Просмотров: 434
Скачиваний: 4
СОДЕРЖАНИЕ
1. Обзор и анализ особенностей применения языков программирования
1.1 Особенности применения языков программирования высокого уровня
1.2 Современный язык программирования высокого уровня
2. Виды языков программирования высокого уровня
2.1 процедурно-ориентированные языки
2.3 Объектно-ориентированные языки
Конечно, это далеко не полная характеристика языков и их классификация, но даже такого небольшого списка вполне достаточно, чтобы выбрать для себя хорошую и перспективную сферу деятельности.
Полный обзор современных языков программирования мог бы занять слишком много времени, но это не столь необходимо, так как стоит помнить главное – человек, хорошо владеющий хоть каким-либо языком, обязательно сможет найти свое место в сфере программирования. А знания одного из указанных языков обязательно будет достаточно, чтобы хорошо зарабатывать и решать интересные задачи.
2. Виды языков программирования высокого уровня
2.1 процедурно-ориентированные языки
Процедурно-ориентированные языки программирования относятся к машинно-независимым. Они являются основными языками описания алгоритмов и имеются в математическом обеспечении по существу всех современных вычислительных машин. Операционная система EG ЭВМ позволяет использовать при программировании такие языки, как Алгол, Фортран, Кобол и ПЛ / 1, относящиеся к этой группе. Будучи почти независимыми от конкретной вычислительной машины, они приближаются по синтаксису к естественным языкам. [2]
Процедурно-ориентированные языки программирования ( в дальнейшем назовем их просто процедурными) могут лишь косвенно отражать содержание будущей реализации, используя специфические синтаксические конструкции для описания порядка преобразований. [3]
Процедурно-ориентированные языки, эти те которые употребляются для записи процедур или алгоритмов обработки информации на любом круге задач:
а) язык Фортран (Fortran) (от Formulae Translation — «преобразование формул»). Фортран является одним из старейших языков программи-
рования высокого уровня. Его существование и применение объясняется простотой его структуры;
б) язык Бейсик (Basic), который можно расшифровать как «Beginner’s All-purpose Symbolic Instruction Code» (BASIC) — «многоцелевой симво-
лический обучающий код для начинающих», применяется с 1964 г. как язык для обучения программированию;
в) язык СИ (С), используется с 1970-х гг. как язык системного программирования специально для написания операционной системы UNIX. В 1980-е гг на основании языка С разработали язык С++, который включает в себя язык С и дополнен средствами объектно-ориентированного программирования;
г) язык Паскаль (Pascal) получил свое название в честь французского ученого Б. Паскаля. Его начал применять с 1968—1971 гг. Н. Вирт. При создании Паскаль использовали для обучения программированию, но впоследствии он стал применяться для разработки программных средств в профессиональном программировании;
Различают такие языки процедурного программирования:
Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-технических задач;
Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;
Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия “блочная структура программы” и “динамическое распределение памяти”;
В середине 60-х годов 20-го века был создан специализированный язык программирования для начинающих – BASIC. Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых.
Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.
В 1963-1966гг был создан многоцелевой универсальный язык PL-1. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения.
Язык Паскаль (PASCAL) (1968-1971гг)- язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных; б) Программирование “сверху-вниз”, когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.
К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык назван в честь первой программистки Ады Лавлейс- дочери Байрона. Его отличает модульность конструкций.
Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования.
2.3 Объектно-ориентированные языки
Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.
Объектно-ориентированное программирование (ООП) - это парадигма (совокупность понятий и идей) программирования, в рамках которой «во главу угла» ставят понятия объектов и классов. Сейчас ООП так или иначе присутствует во всех языках, поэтому понимание его основ просто необходимо для всех, кто собирается заняться программированием.
Стоит сразу определить базовые понятия класса и объекта:
- Класс - это шаблон, описание ещё не созданного объекта. Класс содержит данные, которые описывают строение объекта и его возможности, методы работы с ним;
- Объект — экземпляр класса. То, что «рождено» по «чертежу», то есть по описанию из класса. В качестве примера объекта и класса можно привести технический чертёж для изготовления детали — это класс. Выточенная же на станке по размерам и указаниям из чертежа деталь - объект.
Появление объектно-ориентированного программирования стало результатом возросших требований к функционалу программ, когда описывать объект приходилось раз за разом в разных участках кода. Тогда и было введено понятие класса, параметры которого задавались единожды, а после в коде оставлялись только ссылки на класс, чтобы код самостоятельно «собрал» объект. На ООП-языке Java описание класса выглядит так:
- // Описываем отдельный новый класс
- class Circle {
- // свойства класса
- public double x; // абцисса центра
- public double y; // ордината центра
- public double y; // радиус
- // методы класса
- // выводит на экран параметры окружности
- public void printCircle(){
- System.out.println("Окружность с центром (" + x + ";" + y + ") и радиусом " + r);
- }
- // перемещает центр, движение окружности
- public void moveCircle(double a, double b){
- x = x + а;
- y = y + b;
- }
- // масштабируем, выполняем преобразование подобия с коэффициентом k
- public void zoomCircle(double k){
- r = r * k;
- }
- }
Это код для окружности с заданными параметрами. Позднее при написании программы функцию вызова окружности можно будет внедрить с помощью добавления класса Circle, а не описывать его заново, что сильно экономит время, если, к примеру, мы пишем приложение для решения геометрических задач, где предусматриваются окружности разных диаметров и другие фигуры.
В качестве более живого примера объектно-ориентированного программирования можно привести мастерскую, где есть старший слесарь (программист) и ученики (разные участки кода). При устаревших парадигмах программирования старшему слесарю пришлось бы сначала объяснить ученику №0, как вырезать деталь (создать объект), затем ученику №1 то же самое, потом ученику №2 и так далее. ООП же даёт слесарю целую пачку бесконечных подробных чертежей (классов) деталей, которые он может раздавать ученикам вместо повторного объяснения (заведения описания объекта). Как нетрудно догадаться, это ускоряет работу и позволяет старшему слесарю уделить внимание более важным проблемам мастерской.
Объектно-ориентированное программирование выделяется не только описанной выше системой классов, вернее, её особенность не только в сохранении большого количества параметров. При упущении одного параметра, код приходилось перерывать от и до в поисках ошибки. Поэтому был разработан поведенческий аспект, что означало, что отныне классы могут не только служить вместилищем для данных, но и сами могли бы работать с ними: загружать, сохранять, изменять и выполнять другие операции.
В объектно-ориентированном программировании выделяют 4 основных принципа: абстракция, инкапсуляция, наследование и полиморфизм.
Понятие абстракции в объектно-ориентированном программировании
Абстракция — способ выделения самых значимых характеристик объекта, при этом менее значимые отбрасываются. В ООП абстракция - работа только со значимыми характеристиками. Суть этого принципа в том, чтобы отделить составные объекты, состоящие из «меньших» объектов, от этих самых объектов, то есть от их составляющих.
Такой подход позволяет работать непосредственно с объектом, не вдаваясь в подробности, из чего же он состоит и как работает. Возвращаясь к примеру про слесарную мастерскую, принцип абстракции заключается в том, что старший слесарь не тратит своё время и ресурсы на определение, из чего ученик сделал деталь, а просто использует её по назначению.
Принцип инкапсуляции в ООП
Инкапсуляция - принцип объектно-ориентированного программирования, позволяющий собрать объект в пределах одной структуры или массива, убрав способ обработки данных и сами данные от «чужих глаз».
Это одновременно и облегчает конечному пользователю работу с программой, и защищает данные и само приложение от постороннего вмешательства. Пользователь может работать со всем функционалом через интерфейс, не задумываясь над тем, как программа работает. Инкапсуляцию применяют:
- когда нужно сохранить некоторый участок кода без изменений со стороны пользователя;
- когда нужно ограничить доступ к коду - в связи с уникальностью используемых техник, которые автор хочет оставить «при себе»;
- когда изменение кода повлечёт за собой неработоспособность программы или её взлом.
Наследование классов в ООП
Наследование — способность в объектно-ориентированном программировании построить новый класс на основе уже заданного. При этом функционал может как полностью совпадать, так и отличаться. Класс-донор называется в таком случае родительским или базовым, а его «потомок» — наследником, дочерним классом.
Существует также множественное наследование, при котором у класса-наследника может быть несколько «родителей». При этом класс наследует методы всех своих отцов и матерей, что часто приводит к ошибкам. Наследование требует определения ещё одного понятия:
- прототип — объект-образец, на основе которого «рождаются» другие объекты, полностью копируя его или изменяясь в процессе. При изменении в прототипе в копиях также происходят соответствующие изменения.
Принцип полиморфизма
Полиморфизм — способность объектов самим определять, какие методы они должны применить в зависимости от того, где именно в коде они находятся. То есть, объект может изменяться в зависимости от своего местоположения и действовать по-разному, что позволяет не заводить лишних структур. Иначе говоря: один интерфейс — множество решений.
Полиморфизм позволяет повысить процент повторного использования кода и сократить тем самым размер программы и временные затраты на её написание.
На сегодняшний день самые популярные языки программирования - это объектно-ориентированные, к примеру, С++ и Java. Также существуют языки, которые не предполагают написания программных операторов, а программирование происходит в виде визуального проектирования с помощью интерфейса языка. Примером таких систем являются VisualBasic, Delphiи C++ Builder.
Итак, далее мы раскроем различие между процедурно ориентированные языки и объектно-ориентированные языки.
Пожалуй, каждый, кто хоть немного интересуется программированием, знает, что при разработке ПО и web-приложений используются 2 основных подхода — процедурный и объектно-ориентированный. Сразу скажем, что ни один из них не является хорошим или плохим. Это — разные способы организации кода, разные способы решения задач. Да и задачи, собственно говоря, они решают тоже разные.