Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования высокого уровня (ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ )

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

Современное состояние вычислительной техники характеризуется огромным разнообразием языков программирования.

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

1) рассмотреть основные понятия и классификацию языков программирования,

2) проанализировать историю развития языков программирования,

3) провести обзор языков программирования,

4) исследовать языки программирования высокого уровня,

5) изучить процедурно-ориентированные языки программирования,

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

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

Для написания данной работы и решения поставленных задач использовалась литература таких авторов, как Ашарина И.В., Биллиг В.А., Богачев К.Ю., Гавриков М.М., Голицына О.Л., Гуриков С.Р., Дорогов В.Г., Зыков С.В., Карпов, Ю., Колдаев В.Д., Культин Н.Б., Кундиус В.А., Макарова Н.В., Окулов С.М. и др.

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

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

.программирования – .; отличающиеся. от ь инабором., ьк нулю и.. Как и у .языков у них ь и исключения. алгоритмыь [1].

Основные и таких :

- – использование в по .уже существующих , ьизвестныхьиь как., так и пользователям ЭВМ;

- - одних и тех жеь дляь одних и тех же или в разных ь. Количество ьдолжно по минимальным;

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

- модульность - ь сложных ьв совокупности ь, которые составленыь и в различных ь;

- однозначность - любого . ее могло бы к ответам при задач[2].

В настоящее 625 346 376 (со всеми , и версиями), по их можно на :

- машинные(«»);

- (ассемблеры)(« от 3 до 7 »);

- машинно-независимые ( уровня)(« от 10 до 17 »)[3].

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

https://cf.ppt-online.org/files/slide/p/PucsxG8kRHa2oW9AMmXgZvD61peiLf3TjQCJzd/slide-3.jpg

Рисунок 1 - Классификация языков программирования и примеры[4]

два уровня – это уровня, деталей данных. Так же, ориентированы и под процессоры; не абстрагироваться и под особенности , изменяются - и язык; они не к языкам, а к [5].

Машинные к себе . Но.программировать. трудоемко и , а код труднообозримым и объёмным, его менять и , так как берет на , буквально, кода. И , что плата высокой, так как у данных и специалисты должны иметь высокую квалификацию. Сама монотонной, , , поэтому невелик программистов на эти . Предложение с падает на [6].

(ассемблеры) нужно программу, под данные, параметры , а в процессора, того или [7].

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

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

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

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

языков уровня — это , то введение , кратко структуры и над ними, на машинном ( другом программирования) и сложные для [10].

языки разработаны для сути . от платформы на программы — ( или техническое , вып трансляцию ; программы — , представленной на из программирования, в на языке), ( код которого в машинный код и в с особым расширением для ) текст, на высокого , в машинные (). Поэтому, для разрабатывается для каждого , например, , написанный на в команды x86[11].

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

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

образом, языков являются:

- «» алфавит, что текста;

- допустимых для не зависит от операций, а формулирования задач ;

- формат и гибок для , что сократить код;

- задаются обозначениями;

- имен;

- « » набор [13].

Таким , высокого машинно-независимыми. Они программиста и программ.

алгоритмического :

- ,

- синтаксис,

- .

- это фиксированный для набор , т.е. "букв ", из должен любой на языке - символы в не [14].

Синтаксис - это фраз, , правильно или та или иная . говоря, представляет правил, , комбинации осмысленными на языке[15].

(, изучающая конструкций посредством их математических ) смысловое языка. правил языковых , устанавливает, действий или иными и, в конечном , алгоритм текстом на [16].

на объектно-ориентированном , некоторую , по , описывает , относящуюся к . Описание в системы естественнее, чем в процедур.

1.2. История развития языков программирования

принципы устройств ЭВМ , что может , состоящие из и нулей — напряжения.

На развития ЭВМ необходимо на языке, . Каждая из кода и операндов, в различных и нулей. , программа для как последовательность и [17].

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

скоро , что процесс кода . Уже в 1950 для программ мнемонический — assembly. позволил код в более для форме: для и объектов, над эти выполняются, кодов или сокращенные , отражали . Например, на команда чисел add, тогда как ее код быть : [19]

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

Но в нём больших привела к третьего — высокого .

язык уровня – – был Джоном , математики на уровне . Это представлено на рисунке 2.

https://cf.ppt-online.org/files/slide/y/YWIDyzjkvT3sbGmEaPLVCRUBNow0c295XqefHK/slide-3.jpg

Рисунок 2. Эволюция языков программирования[21]

развития и языков в 20-х гг. XIX в. в мире машины, Чарльзом , мысль о порядка для последующей вычислений — . предложил программы на , для управления французским Мари . С момента и программирования[22].

1. (40-50 XX в.).

на машинном – длинные е и нулей, -зависимыми, т.е. для ЭВМ было программу[23].

в истории стало кодирования с помощью , предложенной . Система , им, вдохновила из его Грейс . При работе на « -1» ей и ее группе со многими и все, что ими , было . В они придумали . И еще фундаментальное программирования Хоппер и ее – «»[24].

В конце 40- Дж. Моучли под названием « », которая языком уровня. В ней решаемую в математических , а , используя , переводил за , преобразовывал эти в коды. В программа эти коды в код. Система, Дж. , считается из примитивных [25].

2. (начало 50- XX в.).

Вместо 1 и 0 могли (MOV, ADD, SUB и т.д.), на английские . на ассемблере машинно-зависимыми. Для в код использовался ( . программа – в код).

Уже в г. создала в компилятор и ею же был сам термин. осуществлял команд и в производил , выделение , преобразование уровня (в то ) в машинные . « находятся в ( ), а когда вы из библиотеки – это » – так она объясняла ею термина[26].

С 50- гг. XX в. начали языки уровня ( ). Эти языки (не привязаны к . ЭВМ). Но для были собственные [27].

таких : (FORmula ; предназначен для и расчетов; был предназначен в для приложений ( объемы ) - Common ); язык ( All Purpose - универсальный инструкций для ) г.).

Но сложность в нём программных к появлению поколения - уровня. Но на ассемблера не , он жив и день и не жив, но и популярностью в . Сейчас его в отдельных или иногда в программ. быть , но яркие это в написании , игр и ОС. Не стоит , что у этот так же популярностью, да ещё ! Но что же им так в нём? же, то, что работы значительно программы на программирования . Это объясняется тем, что программы мал. А как же антивирусных ? Они не лыком и так же ассемблер в своих , что так же их быстродействие. А бы не некоторые бы около ! Так что воистину и ещё много, лет он служить [28].

3. языки уровня.

С 50- гг. XX в. начали языки уровня (). Эти языки машинно-независимыми (не к . типу ). Но для языка собственные .

таких : (FORmulaTRANslator; для научных и ; COBOL был в основном для (обрабатывал нечисловых ) –( ); язык ) ( – универсальный инструкций для )[29]

4. Алгоритмические .

В нашей в те под руководством Ершова был ( Альфа, довольно версию . академик важнейшую в ии в СССР [30].

В 1958 г. FLOW-MATIC. В от — языка для — FL0W-MAT1C был для задач данных. в направлении к в г. языка ( — Common Language) — , ориентированного на . Одним из при создании была Хоппер[31].

В 1960- гг. сотрудники Дартмутского и Джон специализированный , который из слов . Новый «универсальным для начинающих» ( Symbolic , или сокращенно, ). рождения можно г. Сегодня Бейсик ( версий) популярность и распространение ЭВМ различных во мире. В этому то, что начали как язык , широкое началось в 1970- гг.[32]

С начала 80- г. XX в. создаваться , которые к структурному ( операторов , , цикла и от частого перехода ()). К языкам : Pascal ( его Никлаусом в великого Паскаля; Си, позволяющий и создавать код

5. Языки .

Большой на программирование Си (первая — г.), являющийся в среде программного ( операционные )[33]. Си себе , как высокого , так и языка, ко всем , чего не языки, как и (90-ые г. XX в.). В языков объекты, данные и их . В этих алгоритмический . Для них были среды , визуально интерфейс :

- С++ (1983) - . языка Си;

- (1989) был на языка . создания – Delphi

- VisualBasic(1991) был Microsoft на Qbasic для приложений с в среде ОС .[34]

6. программирования для .

В 90-ые XX в. в с бурным были , обеспечивающие . На подключенных к с различными ОС (, , MacOS и др.) одни и те же . программа в код, который на встроенной в машиной:

- - объектно-ориентированный был фирмой для сетевого (1995);

- – язык (компания ). [35]

Следует , что языки, для больших и ЭВМ, в были к компьютерам. в «персоналки» не , Бейсик, Си, Ла| но и , — языки .

В течение лет обеспечение на операциональных и , таких как , , Паскаль, Ада, И И версии и им языков (, и дЯ доминируют при программных . по мере программирования распространение и , иные, к программ[36].

и/или требует от описания , как задачу, т.е. и его специальной . При ожидаемые обычно не . понятия групп — и . При процедурном объединяются в — .[37]

7. Языки на .NET.

Интегрированная VisualStudio .Net, Microsoft, приложения на объектно-ориентированного , в том :

- на языке .Net ( на основе ) - 2003 г.;

- на # (С-шарп) – на С++ и J – 2003 г.;

- на # (J-шарп) – на и JavaScript – г.

Для того, мог выполнить , и данные загружены в . Необходимо, в ОП был программа - , переводящий с в машинные . бывают : интерпретаторы и . – программа, последовательный программы с их . Достоинством удобство ( ошибок), – малая . Компилятор текст на язык и его в файле ( с .exe)[38].

программирования и позволяют в , как интерпретатора, так и . На разработки и используется , а для получения – режим .[39]

1.3. Обзор языков программирования

программирования один из способов ; является , то есть все по определенным и от этих не [40].

Правила на конкретном синтаксисом . определяет, будет , а какая нет.

, записанная на , имеет , то есть выполнять те или . Правила, команд, языка. , в команда «.out.()»; выводит все что в в консоль[41].

имеет – символов, использовать при на этом . версии и же языка различаться .

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

, написанная на , представляет текст. мог выполнять , в этой , перевести в понятных , записанных в (в код). называется [42].

По трансляции на:

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

- интерпретаторы – это ( транслятора), (построчный , и выполнение программы или )[43].

шагом был к ассемблера, что значения в IT. шагом, использования и , что упростило и программы. , впервые в два представления : тексты и [44].

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

. Иногда их на и объектно-ориентированные, но в граница видами . Эти используются для решения задач. Хотя из имеет , что делает его для решения задач, но в для любой выбирать программирования.

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

2.1. Языки программирования высокого уровня

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

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

Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений. Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol, C и др.

Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#. [47]

Проблемно-ориентированными языками, которые используются на Интернет-серверах и клиентских Интернет-приложениях, являются PHP, Perl, JavaScript, VBScript.

Языки программирования высокого уровня подразделяют на два основных типа:

- процедурно-ориентированные,

- объектно-ориентированные[48].

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

К ним относятся:

- язык Фортран (Fortran), название которого происходит от слов Formulae Translation - «преобразование формул». Фортран представляет собой один из старейших языков программирования высокого уровня. Длительность его существования и применения можно объяснить простотой структуры данного языка;

- язык Бейсик (Basic), который расшифровывается как Beginner's All-purpose Symbolic Instruction Code, что в переводе означает - «многоцелевой символический обучающий код для начинающих», разработан в 1964 г. как язык для обучения программированию. В течение последующего времени Бейсик развивался, появлялись его различные версии (QBasic, Visual Basic и др.)[49];

- язык Паскаль (Pascal), который назван в честь французского ученого Б. Паскаля, начат применяться с 1968—1971 гг. Н. Виртом. При создании Паскаль использовался для обучения программированию, но со временем стал широко применяться для разработки программных средств в профессиональном программировании.

- язык Си (С), применяемый с 1970-х гг. как язык системного программирования специально для написания ОС UNIX. В 1980-е гг. на основе языка Си был разработан язык C++, практически включающий в себя язык Си и дополненный средствами объектно-ориентированного программирования[50];

- язык Лисп (Lisp - List Information Symbol Processing), который был изобретен в 1962 г. Дж. Маккарти. Лисп употребляется в экспертных системах, системах аналитических вычислений и т.п.;

- язык Пролог (Prolog - Programming in Logic), используемый для логического программирования в системах искусственного интеллекта[51].

Из универсальных процедурных языков программирования сегодня наиболее популярны следующие:

- Бейсик (Basic) — для освоения требует начальной подготовки (общеобразовательная школа);

- Паскаль (Pascal) — требует специальной подготовки (школы с углубленным изучением предмета и общетехнические вузы);

- Си++ (C++), Ява (Java), Си (С#) — требуют профессиональной подготовки (специализированные средние и высшие учебные заведения)[52].

Объектно-ориентированные языки развиваются и в настоящий момент. Большинство из этих языков являются версиями процедурных и проблемных языков, но программирование с помощью языков этой группы является более наглядным и простым. К наиболее часто употребляемым языкам относятся: Visual Basic, Visual Basic for Applications (VBA), Borland Delphi; Visual Fortran; Prolog.

Язык программирования Microsoft Visual Basic, Visual Basic for Applications (VBA) используется для создания приложений в среде Windows или Office.

2.2. Процедурно-ориентированные языки программирования

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

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

К процедурным языкам программирования относят и язык Кобол. Это язык программирования, направленный на разрешение многих задач по обработке информации. Он активно применяется для решения различных управленческих, учетно-экономических задач[54]. Процедурное программирование на Коболе было разработано на территории США в 1958-1960 годах. Сама же программа, созданная на Коболе, обладает несколькими видами типа предложений на английском языке, напоминает с виду самый обычный текст. Все дело в том, что группа операторов, записанных последовательно, объединяются в целые предложения, сами предложения - в параграфы, а параграфы – в секции. Сам же программист присваивает параграфам и отведенным секциям наименования или метки, чтобы облегчить обращение к определенному участку кода. В Советском Союзе была разработана русская версия программы и применялась весьма успешно на практике.

Процедурно-ориентированное программирование в языке Кобол реализуется благодаря мощным средствам работы, которые способны обрабатывать огромнейшие потоки данных, что сберегаются на различных внешних накопителях. На этом языке написано множество приложений, которые даже сейчас активно применяются. Интересный факт: самые высокооплачиваемые программисты в США пишут программы именно на языке Кобол[55].

Язык Алгол - язык процедурно-ориентированного программирования был создан целой группой специалистов в 1960 году. Это был результат начала сотрудничества на международном уровне. Алгол был разработал для ведения алгоритмов, что строились в виде последовательности некоторых процедур, что применялись для разрешения поставленных задачек. Поначалу язык воспринимался несколько неоднозначно, однако его признали на международном уровне он сыграл огромную роль в становлении основных понятий программирования и обучения нового поколения программистов. Процедурное программирование на языке Алгол впервые ввело в обиход такие понятия, как «блочная структура программы», «динамическое распределение памяти»[56].

Еще есть одна особенность языка – это возможность в блоке вводить некоторые локальные отметки, что не касаются остального кода программы. Да, Алгол-60, несмотря на свое интернациональное происхождение, не так был популярен, как Фортран[57].

Далеко не все зарубежные вычислительные машины имели трансляторы с Алгола-60, поэтому это процедурное программирование претерпело изменений и появился усовершенствованный язык Алгол-68.

К процедурным языкам программирования относят и знаменитый во всем мире Бейсик. В средине шестидесятых годов сотрудники из Дартмутского колледжа по имени Томас Курц и Джон Кемени разработали уникальный язык программирования, который перевернул все в мире. Состоял он из простейших английских слов и новый язык признали универсальным кодом для новичков или же другими словами BASIC. Годом рождения данного языка считают 1964. BASIC стал широко распространенным на ПК в режиме интерактивного диалога. Почему Бейсик стал таким популярным? Все из-за того, что его было максимально просто освоить, кроме того, язык помогал решать множество разных научных, экономических, технических, игровых и даже бытовых задач. В Бейсике были заложены разные правила по умолчанию, что сейчас считается признаком дурного тона в программировании. После появилось в мире масса версий данного языка, которые часто малосовместимы, однако, понимая одну из версий, вы сможете легко освоить и другую. Первоначальная версия имела в распоряжении только интерпретатор, а теперь уже есть и компилятор[58].

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

Паскаль – это очень популярный процедурный язык, особенно часто используемый для персональных компьютеров. Этот процедурный язык программирования создавался в качестве учебного, годы его создания - 1968-1971. Разработал его Никлаус Вирт в Высшей технической школе в Цюрихе. Назван этот язык программирования был в честь великого французского математика и философа Блеза Паскаля. Основной задачей Вирта была создать язык, который бы основывался на простейшем синтаксисе, малом числе базовых структур, которые трансформируются в машинный код при помощи обычного компилятора. Стоит заметить, что ему это удалось.

Процедурная парадигма программирования языка Паскаль основывается на следующих принципах:

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

- Программирование, построенное сверху вниз. Задача разделяется на простые решаемые задания, а на основе построенных подзадач уже строится конечное решение общей задачи.[60]

Процедурное программирование С разработано в лаборатории Bell для реализации ОС UNIX, не рассматривался вначале как массовый. В планах у разработчиков было просто заменить Ассемблер, но появился просто отдельный язык С[61]. Уникален он тем, что имеет возможности высокоуровневых языков программирования и одновременно с этим он располагает средствами для обращения к функциональным связям. В языке С нет понятия процедуры, синтаксис довольно простой, нет никакой строгой типизации данных, включена возможность выражения парочки действий сразу. Этот язык сразу привлек внимание программистов, давая им дополнительные возможности для создания интересных программ. На сегодняшний день язык С довольно-таки популярен, он широко используется профессионалами в программировании. Сейчас он реализован во многих компьютерных платформах.

2.3. Объектно-ориентированные языки программирования

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

Основными свойствами ООП являются:

- инкапсуляция — описание объектов как типов данных (классов) имеющих общие поля и методы;

- наследование — создание новых классов на основе уже имеющихся;

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

- полиморфизм — возможность, зная общие черты иерархии классов, ссылаться на любой из нее как на наиболее общий класс-родитель[63].

Класс в ООП это "чертеж" объекта, определяющий какими полями и методами будет обладать каждый созданный в соответствии с этим описанием объект[64].

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

Принципы объектно-ориентированного программирования представлены на рисунке 3.

https://pandia.ru/text/78/495/images/image001_143.jpg

Рисунок 3 - Принципы ООП и реализация[65]

.

, что объектно-ориентированное в модульное поколения, на случайного, процедур и на смысловой [66].

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

Поля (внутренние свойства) объектов могут представлять собой как примитивы (числа, строки и т.п.), так и быть сложными объектами. Например, объект "Автомобиль" можно описать как совокупность объектов "Двигатель", "Трансмиссия", "Кузов", "Салон", "Колеса". Каждый из этих объектов сам по себе сложен. Например, в состав объекта "Двигатель" могут входить объекты "Блок цилиндров", "Поршни", "Коленвал" и т.п. [68]

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

Достоинством ООП является то, что оно позволяет распределить работу по описанию сложных объектов между большим количеством программистов. С другой стороны, ООП применяется, как правило, для решения масштабных задач в организациях, которые могут позволить себе выделять большие бюджеты на разработку ПО: в банках, крупных научно-исследовательских центрах, государственных организациях[69].

Первыми успешными объектно-ориентированными языками считаются Симула-67 и Smalltalk-80. Расцвет популярности ООП пришелся на вторую половину 1980-х гг., когда появились такие языки, как С++, Objective C (эти два языка были разработаны на основе не являющегося объектно-ориентированным, но очень популярного Си), Eiffel. Некоторые существовавшие на тот момент языки были доработаны с целью предоставить своим приверженцам возможность работать в стиле ООП (Ada, Lisp, Pascal)[70].

Большим шагом вперед в развитии ООП стал язык Java. Он сосредоточил в себе, помимо объектно-ориентированного подхода, наиболее эффективные технологии, появившиеся в начале 1990-х, такие, как:

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

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

- кроссплатформенность - способность программ запускаться на различных платформах (слоган Java - "написано однажды - работает везде");

-защита полей и методов от нежелательного влияния со стороны других классов: например, поле, помеченное как private, доступно для чтения и записи только изнутри класса, protected - только из иерархии, в состав которой входит класс, public - для любых объектов[71].

Дополнительным обстоятельством, сделавшим Java влиятельным и пригодным для коммерческого использования языком стало то, что его создание велось компанией Sun, обладавшей большими финансовыми и технологическими возможностями[72].

Всплеск популярности Java побудил другого крупного игрока на софтверном рынке - компанию Microsoft - создать аналогичные продукты. Сначала компания Билла Гейтса хотела выпустить "собственную версию" Java, однако, поскольку написанные на этом языке программы были рассчитаны на запуск лишь в среде Windows (терялась кроссплатформенность), со временем Microsoft решила разработать собственные фреймворк с похожими на Java свойствами. Так появилась платформа .NET и связанный с ней язык C# (Си-шарп). В настоящее время C# считается предпочтительным языком для разработки под Windows. При написании программ на нем применяется преимущественно объектно-ориентированный стиль разработки[73].

В настоящее время ООП нельзя назвать доминирующей парадигмой программирования. Из языков, бурно развивавшихся в годы наивысшего интереса к этой технологии, активно продолжают использоваться C++, Java, C#. Нынешние языки не делают основную ставку на ООП, но поддерживают эту возможность, поскольку среди программистов остается немало приверженцев этого подхода. Так, объектно-ориентированные программы можно писать на таких популярных в настоящее время языках, как Python, JavaScript, PHP и другие.

ЗАКЛЮЧЕНИЕ

Язык программирования — искусственный (формальный) язык, предназначенный для записи программ для исполнителя (например, компьютера или станка с числовым управлением). Язык программирования задается своим описанием. Описание языка программирования — это документ, специфицирующий возможности алгоритмического языка.

Высокоуровневые языки используются в машинно-независимых системах программирования. Такие системы программирования в сравнении с машинно-ориентированными системами предстают более простыми в использовании. Языки программирования высокого уровня подразделяют на процедурно-ориентированные, проблемно-ориентированные и объектно-ориентированные.

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

а) язык Фортран (Fortran), название которого происходит от слов Formulae Translation – «преобразование формул». Фортран представляет собой один из старейших языков программирования высокого уровня. Длительность его существования и применения можно объяснить простотой структуры данного языка;

б) язык Бейсик (Basic), который расшифровывается как Beginner's All-purpose Symbolic Instruction Code, что в переводе означает – «многоцелевой символический обучающий код для начинающих», разработан в 1964 г. как язык для обучения программированию;

в) язык Си (С), применяемый с 1970-х гг. как язык системного программирования специально для написания ОС UNIX. В 1980-е гг. на основе языка С был разработан язык C++, практически включающий в себя язык С и дополненный средствами объектно-ориентированного программирования;

г) язык Паскаль (Pascal), который назван в честь французского ученого Б. Паскаля, начал применяться с 1968–1971 гг. Н. Виртом. При создании Паскаль использовался для обучения программированию, но со временем стал широко применяться для разработки программных средств в профессиональном программировании.

Проблемно-ориентированные языки используются для решения целых классов новых задач, возникших в связи с постоянным расширением области применения вычислительной техники:

а) язык Лисп (Lisp – List Information Symbol Processing), который был изобретен в 1962 г. Дж. Маккарти. Первоначально он применялся как средство для работы со строками символов. Лисп употребляется в экспертных системах, системах аналитических вычислений и т. п.;

б) язык Пролог (Prolog – Programming in Logic), используемый для логического программирования в системах искусственного интеллекта.

Объектно-ориентированные языки развиваются и в настоящий момент. Большинство из этих языков являются версиями процедурных и проблемных языков, но программирование с помощью языков этой группы является более наглядным и простым. К наиболее часто употребляемым языкам относятся: Visual Basic (~ Basic); Delphi (~ Pascal); Visual Fortran (~ Fortran); C++ (~ C); Prolog++ (~ Prolog). e-reading.club.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Основы программирования. Учебник с практикумом / Под ред. Макаровой Н.В.. - М.: КноРус, 2017. - 352 c.

2. Ашарина И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. - 208 c.

3. Биллиг В.А. Основы программирования на С#: Учебное пособие / В.А. Биллиг. - М.: Бином, 2012. - 483 c.

4. Богачев К.Ю. Основы параллельного программирования / К.Ю. Богачев. - М.: Бином, 2015. - 342 c.

5. Гавриков М.М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко. - М.: КноРус, 2018. - 207 c.

6. Голицына О.Л. Основы алгоритмизации и программирования: Учебное пособи / О.Л. Голицына, И.И. Попов. - М.: Форум, 2013. - 205 c.

7. Гуриков С.Р. Основы алгоритмизации и программирования на Python: Учебное пособие / С.Р. Гуриков. - М.: Форум, 2018. - 384 c.

8. Дорогов В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова. - М.: Форум, 2015. - 320 c.

9. Зыков С.В. Основы современного программирования. Разработка гетерогенных систем в Интернет-ориентированной среде: Учебное пособие / С.В. Зыков. - М.: ГЛТ, 2012. - 444 c.

10. Карпов Ю. Теория и технология программирования. Основы построения трансляторов / Ю. Карпов. - СПб.: BHV, 2012. - 272 c.

11. Колдаев В.Д. Основы алгоритмизации и программирования: Учебное пособие / В.Д. Колдаев. - М.: Форум, 2015. - 352 c.

12. Культин Н.Б. Основы программирования в Turbo C++ / Н.Б. Культин. - СПб.: BHV, 2013. - 464 c.

13. Кундиус В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. - 184 c.

14. Макарова Н.В. Основы программирования. учебник с практикумом (для спо) / Н.В. Макарова. - М.: КноРус, 2016. - 112 c.

15. Окулов С.М. Основы программирования / С.М. Окулов. - М.: Бином. Лаборатория знаний, 2015. - 336 c.

16. Парфилова Н.И. Программирование: Основы алгоритмизации и программирования: Учебник / Н.И. Парфилова; Под ред. Трусова Б.Г. - М.: Academia, 2018. - 325 c.

17. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Academia, 2017. - 329 c.

18. Семакин И.Г. Основы программирования и баз данных: Учебник / И.Г. Семакин. - М.: Academia, 2017. - 320 c.

19. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Академия, 2014. - 352 c.

20. Серкова Е.Г. Основы алгоритмизации и программирования (ОП.04): практикум / Е.Г. Серкова. - Рн/Д: Феникс, 2017. - 159 c.

21. Фридман А. Основы объектно-ориентированного программирования на языке СИ++ / А. Фридман. - М.: Горячая линия -Телеком, 2012. - 234 c.

22. Фризен И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. - 784 c.

23. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. - 219 c.

  1. Гуриков С.Р. Основы алгоритмизации и программирования на Python: Учебное пособие / С.Р. Гуриков. - М.: Форум, 2018. –С.48

  2. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.58

  3. Основы программирования. Учебник с практикумом / Под ред. Макаровой Н.В.. - М.: КноРус, 2017. – С.56

  4. Гуриков С.Р. Основы алгоритмизации и программирования на Python: Учебное пособие / С.Р. Гуриков. - М.: Форум, 2018. – С.89

  5. Биллиг В.А. Основы программирования на С#: Учебное пособие / В.А. Биллиг. - М.: Бином, 2012. – С.114

  6. Дорогов В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова. - М.: Форум, 2015. – С.85

  7. Зыков С.В. Основы современного программирования. Разработка гетерогенных систем в Интернет-ориентированной среде: Учебное пособие / С.В. Зыков. - М.: ГЛТ, 2012. – С.71

  8. Ашарина И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. – С.89

  9. Основы программирования. Учебник с практикумом / Под ред. Макаровой Н.В.. - М.: КноРус, 2017. – С.145

  10. Карпов Ю. Теория и технология программирования. Основы построения трансляторов / Ю. Карпов. - СПб.: BHV, 2012. – С.78

  11. Биллиг В.А. Основы программирования на С#: Учебное пособие / В.А. Биллиг. - М.: Бином, 2012. – С.258

  12. Культин Н.Б. Основы программирования в Turbo C++ / Н.Б. Культин. - СПб.: BHV, 2013. – С.82

  13. Колдаев В.Д. Основы алгоритмизации и программирования: Учебное пособие / В.Д. Колдаев. - М.: Форум, 2015. – С.82

  14. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Академия, 2014. – С.96

  15. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.78

  16. Основы программирования. Учебник с практикумом / Под ред. Макаровой Н.В.. - М.: КноРус, 2017. – С.77

  17. Ашарина И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. – С.89

  18. Карпов Ю. Теория и технология программирования. Основы построения трансляторов / Ю. Карпов. - СПб.: BHV, 2012. – С.96

  19. Фризен И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. – С.85

  20. Ашарина И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. - М.: ГЛТ, 2012. – С.85

  21. Фридман А. Основы объектно-ориентированного программирования на языке СИ++ / А. Фридман. - М.: Горячая линия -Телеком, 2012. – С.87

  22. Колдаев В.Д. Основы алгоритмизации и программирования: Учебное пособие / В.Д. Колдаев. - М.: Форум, 2015. – С.98

  23. Серкова Е.Г. Основы алгоритмизации и программирования (ОП.04): практикум / Е.Г. Серкова. - Рн/Д: Феникс, 2017. – С.58

  24. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Академия, 2014. – С.81

  25. Биллиг В.А. Основы программирования на С#: Учебное пособие / В.А. Биллиг. - М.: Бином, 2012. – С.114

  26. Культин Н.Б. Основы программирования в Turbo C++ / Н.Б. Культин. - СПб.: BHV, 2013. – С.98

  27. Серкова Е.Г. Основы алгоритмизации и программирования (ОП.04): практикум / Е.Г. Серкова. - Рн/Д: Феникс, 2017. – С.82

  28. Карпов Ю. Теория и технология программирования. Основы построения трансляторов / Ю. Карпов. - СПб.: BHV, 2012. – С.78

  29. Фридман А. Основы объектно-ориентированного программирования на языке СИ++ / А. Фридман. - М.: Горячая линия -Телеком, 2012. – С.78

  30. Культин Н.Б. Основы программирования в Turbo C++ / Н.Б. Культин. - СПб.: BHV, 2013. – С.114

  31. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.64

  32. Фризен И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. – С.258

  33. Карпов Ю. Теория и технология программирования. Основы построения трансляторов / Ю. Карпов. - СПб.: BHV, 2012. – С.95

  34. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Академия, 2014. – С.84

  35. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.87

  36. Серкова Е.Г. Основы алгоритмизации и программирования (ОП.04): практикум / Е.Г. Серкова. - Рн/Д: Феникс, 2017. – С.65

  37. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.74

  38. Богачев К.Ю. Основы параллельного программирования / К.Ю. Богачев. - М.: Бином, 2015. – С.114

  39. Фризен И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. – С.258

  40. Гавриков М.М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко. - М.: КноРус, 2018. – С.87

  41. Кундиус В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. – С.58

  42. Макарова Н.В. Основы программирования. учебник с практикумом (для спо) / Н.В. Макарова. - М.: КноРус, 2016. – С.42

  43. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.102

  44. Голицына О.Л. Основы алгоритмизации и программирования: Учебное пособи / О.Л. Голицына, И.И. Попов. - М.: Форум, 2013. – С.81

  45. Богачев К.Ю. Основы параллельного программирования / К.Ю. Богачев. - М.: Бином, 2015. – С.89

  46. Голицына О.Л. Основы алгоритмизации и программирования: Учебное пособи / О.Л. Голицына, И.И. Попов. - М.: Форум, 2013. – С.54

  47. Окулов С.М. Основы программирования / С.М. Окулов. - М.: Бином. Лаборатория знаний, 2015. – С.78

  48. Фризен И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. – С.248

  49. Кундиус В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. – С.41

  50. Гавриков М.М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко. - М.: КноРус, 2018. – С.47

  51. Макарова Н.В. Основы программирования. учебник с практикумом (для спо) / Н.В. Макарова. - М.: КноРус, 2016. – С.48

  52. Богачев К.Ю. Основы параллельного программирования / К.Ю. Богачев. - М.: Бином, 2015. – С.78

  53. Кундиус В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. – С.85

  54. Гавриков М.М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко. - М.: КноРус, 2018. – С.54

  55. Макарова Н.В. Основы программирования. учебник с практикумом (для спо) / Н.В. Макарова. - М.: КноРус, 2016. – С.74

  56. Окулов С.М. Основы программирования / С.М. Окулов. - М.: Бином. Лаборатория знаний, 2015. – С.78

  57. Парфилова Н.И. Программирование: Основы алгоритмизации и программирования: Учебник / Н.И. Парфилова; Под ред. Трусова Б.Г. - М.: Academia, 2018. – С.21

  58. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Академия, 2014. – С.85

  59. Семакин И.Г. Основы программирования и баз данных: Учебник / И.Г. Семакин. - М.: Academia, 2017. – С.78

  60. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Academia, 2017. – С.78

  61. Голицына О.Л. Основы алгоритмизации и программирования: Учебное пособи / О.Л. Голицына, И.И. Попов. - М.: Форум, 2013. – С.95

  62. Гуриков С.Р. Основы алгоритмизации и программирования на Python: Учебное пособие / С.Р. Гуриков. - М.: Форум, 2018. – С.95

  63. Дорогов В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова. - М.: Форум, 2015. – С.91

  64. Парфилова Н.И. Программирование: Основы алгоритмизации и программирования: Учебник / Н.И. Парфилова; Под ред. Трусова Б.Г. - М.: Academia, 2018. – С.96

  65. 17. Семакин И.Г. Основы алгоритмизации и программирования: Учебник / И.Г. Семакин. - М.: Academia, 2017. – С.85

  66. Зыков С.В. Основы современного программирования. Разработка гетерогенных систем в Интернет-ориентированной среде: Учебное пособие / С.В. Зыков. - М.: ГЛТ, 2012. – С.114

  67. Гуриков С.Р. Основы алгоритмизации и программирования на Python: Учебное пособие / С.Р. Гуриков. - М.: Форум, 2018. –С.98

  68. Черпаков И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. – С.97

  69. Семакин И.Г. Основы программирования и баз данных: Учебник / И.Г. Семакин. - М.: Academia, 2017. – С.85

  70. Зыков С.В. Основы современного программирования. Разработка гетерогенных систем в Интернет-ориентированной среде: Учебное пособие / С.В. Зыков. - М.: ГЛТ, 2012. – С.97

  71. Фризен И.Г. Основы алгоритмизации и программирования (среда PascalABC.Net): Учебное пособие / И.Г. Фризен. - М.: Форум, 2018. – С.312

  72. Серкова Е.Г. Основы алгоритмизации и программирования (ОП.04): практикум / Е.Г. Серкова. - Рн/Д: Феникс, 2017. – С.58

  73. Дорогов В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова. - М.: Форум, 2015. – С.97