Файл: Классификация языков программирования высокого уровня (ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ).pdf
Добавлен: 29.02.2024
Просмотров: 53
Скачиваний: 0
СОДЕРЖАНИЕ
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Основные понятия и классификация языков программирования
1.2. История развития языков программирования
1.3. Обзор языков программирования
2. ОСНОВНЫЕ ВИДЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
2.1. Языки программирования высокого уровня
2.2. Процедурно-ориентированные языки программирования
В начале шестидесятых годов все существующие тогда языки были ориентированы на решение различных задач, однако они еще и были привязаны к конкретной архитектуре вычислительной машины. Это считалось недостатком, потому решено было разработать универсальный язык программирования[59].
Паскаль – это очень популярный процедурный язык, особенно часто используемый для персональных компьютеров. Этот процедурный язык программирования создавался в качестве учебного, годы его создания - 1968-1971. Разработал его Никлаус Вирт в Высшей технической школе в Цюрихе. Назван этот язык программирования был в честь великого французского математика и философа Блеза Паскаля. Основной задачей Вирта была создать язык, который бы основывался на простейшем синтаксисе, малом числе базовых структур, которые трансформируются в машинный код при помощи обычного компилятора. Стоит заметить, что ему это удалось.
Процедурная парадигма программирования языка Паскаль основывается на следующих принципах:
- Структурное программирование. В данном случае применяются подпрограммы, независимые структуры данных. Программисту удается создавать легко читаемый код, понятную структуру программы, упрощает тестировку и отладку.
- Программирование, построенное сверху вниз. Задача разделяется на простые решаемые задания, а на основе построенных подзадач уже строится конечное решение общей задачи.[60]
Процедурное программирование С разработано в лаборатории Bell для реализации ОС UNIX, не рассматривался вначале как массовый. В планах у разработчиков было просто заменить Ассемблер, но появился просто отдельный язык С[61]. Уникален он тем, что имеет возможности высокоуровневых языков программирования и одновременно с этим он располагает средствами для обращения к функциональным связям. В языке С нет понятия процедуры, синтаксис довольно простой, нет никакой строгой типизации данных, включена возможность выражения парочки действий сразу. Этот язык сразу привлек внимание программистов, давая им дополнительные возможности для создания интересных программ. На сегодняшний день язык С довольно-таки популярен, он широко используется профессионалами в программировании. Сейчас он реализован во многих компьютерных платформах.
2.3. Объектно-ориентированные языки программирования
Объектно-ориентированным называется стиль (набор принципов, парадигма) программирования, предполагающий, что предметную область удобнее всего описывать как совокупность взаимодействующих объектов. Под объектом подразумевается программная сущность, обладающая внутренними свойствами (полями) и способная выполнять связанные с ее особенностями алгоритмы (методы)[62].
Основными свойствами ООП являются:
- инкапсуляция — описание объектов как типов данных (классов) имеющих общие поля и методы;
- наследование — создание новых классов на основе уже имеющихся;
- класс-потомок обладает свойствами класса-родителя и дополняет их собственными возможностями;
- полиморфизм — возможность, зная общие черты иерархии классов, ссылаться на любой из нее как на наиболее общий класс-родитель[63].
Класс в ООП это "чертеж" объекта, определяющий какими полями и методами будет обладать каждый созданный в соответствии с этим описанием объект[64].
иметь от подклассы. При осуществляется и методов тки исходного .
Принципы объектно-ориентированного программирования представлены на рисунке 3.
Рисунок 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.