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

Обзор языков программирования высокого уровня

Содержание:

ВВЕДЕНИЕ

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

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

Все языки программирования можно условно поделить на такие две части:

– языки низкого уровня;

– языки высокого уровня.

Более понятными для ЭВМ являются машинно-ориентированные языки. ЯП, более понятные для обычного человека, именуются языками высокого уровня.

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

Актуальность курсовой работы в том, что необходимость в разработке программ на высокоуравневых языках программирования, считается основой для удобного применения, к примеру, дружественного внешнего вида, который без использования объектно-ориентированного программирования (ООП) невозможен.

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

Исходя с цели выделены задачи:

– выполнить характеристику языков программирования;

– дать характеристику парадигмам программирования;

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

Объект исследования – теория языков программирования.

Предмет исследования – ЯП высокого уровня.

По мере развития компьютерной техники возникли также разные подходы в программировании, которые качественно исследовались разными разработчиками: Динман М.Т. [6], Т. Лафоре, [13], Х. Дейтелс [17].

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

1.1. Понятие языков программирования

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

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

Результат пошуку зображень за запитом "процесс программирования"

Рисунок 1 – Процесс программирования

Компьютерная программа представляет логически упорядоченную последовательность с команд, предназначенных для управления персональным компьютером (ПК).

Процессор компьютера – это интегральная схема. Все команды и данные он получает в виде специального электрического сигнала. В двоичном коде такое наличие сигнала описывается значением «1», а отсутствие его – значением «0».

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

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

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

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

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

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

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

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

Сегодня практически все написанные программы создаются с применением языков программирования.

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

Языки программирования – формальные искусственные языки. Они, как и естественные языки, имеют словарный запас, алфавит, грамматику и синтаксис.

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

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

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

Взаимодействие всех семантических и синтаксических правил определяет основные определения языка:

– операторы;

– переменные;

– функции;

– идентификаторы;

– константы;

– процедуры и т.п.

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

ЯП, ориентированные на команды определенного процессора и учитывающие все сего особенности, называются языками низкого уровня. Понятие «низкий уровень» не означает недоразвитый, а имеется в виду то, что операторы такого языка близки к естественному машинному коду и только ориентированы на конкретные операторы процессора.[10]

Языком самого низкого с уровней является Ассемблер (рисунок 2):

Рисунок 2 – Код языка Ассемблер

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

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

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

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

ЯП, имитирующие естественные, которые обладают укрупненными командами, могут быть ориентированные «на человека», также называют языками высокого уровня.

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

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

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

Стоит отметить, что в настоящее время насчитывается сотни таких языков.

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

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

Современное состояние ЯП можно представить следующей классификацией (рисунок 3):

Языки программирования

Процедурные

(императивные)

Объектно-ориентированные

Декларативные

Операционные

Структурные

Функциональные

Логические

Визуальные

Объектные

Рисунок 3 – Классификация языков программирования

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

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

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

В объектно-ориентированных языках все функции или же переменные могут группироваться в специальных конструкциях, что также называются классами. [4]

Благодаря этому все программисты могут достигать высокого уровня структуризации и абстракции ПО. Экземпляры, что будут применены от классов, являются методами (функции, процедуры), которые меняют некоторые свойства класса.

С точки зрения формальности объектно-ориентированный метод базируется на процедурных моделях. [8]

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

Машинно-независимые ЯП – средства описания самых разных алгоритмов заданий, информации, что подлежат для их непосредственной обработке.

Их также удобно использовать для программистов и они не требуют знаний особенностей архитектуры ПК.[12]

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

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

2.1. Обзор С++

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

В последние годы господство С++ слегка пошатнулось, ведь широкое развитие получили Java, Python и C#, но маятник мнения опытных разработчиков уже качнулся в обратную сторону, большинство программистов, что оставили программировать на С++, поспешили сразу возвратится к привычному ЯП. [6]

ЯП С++ – ЯП для общего назначения, что часто применим для написания кода системного программирования, понимаемом при этом в очень широком понимании.

Кроме того, ЯП С++ успешно применяется для написания приложений, выходящих далеко за рамки классического кода. Реализации ЯП С++ также часто присутствует полностью на всех ПК, от самых малофункциональных – и для применения в супер-ПК. [20]

Б. Страуструп является самым первым создателем и разработчиком ЯП С++, а также создателем транслятора. Он является авторитетным и очень опытным сотрудником научного центра корпорации AT&T, что находится в Нью-Джерси.

Страуструп получил почетное звание почетного магистра по вычислительной техники в институте города Арус, а имеющееся у него докторское звание – в Кембридже. [16]

Он специализируется и в сфере операционных систем, разных распределенных ИС, принципов программирования, моделирования, а также является автором руководства С++.

ЯП С++ обязан безусловно языку С [17], который сохраняется в качестве некоторое его подмножество. В нем сохранены все свойственные для С средства и методы программирования низкого уровня, предназначенные для разрешения задач по системного программирования. [6]

Название С++ придумано Р. Маскитти в 1982 г. Оно имело возможность показать свой эволюционный характер для нового ЯП С++. Обозначение «++» определяет операцию инкремента.

Изначально ЯП С++ был спроектирован также для того, чтоб Б. Страуструпу и его команде не надо было выполнять программирование программы на ЯВ ассемблера или других ЯП низких уровней. [3]

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

До какого-то времени определенного какого-то графика по разработке для языка С++ не было. Реализация и документирование для всех средств шли параллельно.

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

Примерно в 1984 г. стало очевидным, что работы по стандартизации С++ будут неизбежными и надо приступить незамедлительно к проектированию базиса.

Организация AT&T внесла также свой вклад в рассматриваемый этап работы. Больше 90 представителей выполняли приемы для изучение и комментировали аспекты языка, что стали современной версией для руководства по С++.

В процессе разработки ЯП С++ самым важным этапом была его простота. Поскольку при возникновении вопросов, именно что надо упростить: либо руководство, или документацию, то всегда выбирали первое. Огромное значение также все разработчики придавали совместимости ЯП С++ с С, что мешало изменить весь синтаксис.[9]

Пример кода на С++ показан на рисунке 4:[10]

Результат пошуку зображень за запитом "код С++"

Рисунок 4 – Пример кода С++

В ЯП С++ не используются различные типы данных, а также и операции высокого уровня. К примеру, в нем не существует одного типа под названием «матрица» с операциями обращения ее, или «строка» с операциями встроенной конкатенации.

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

Язык С++ создавался и по причине использования его для традиционной сферы, а именно в системах для программирования С на ОС Linux. Но есть уже обоснованные способы по применению С++ в этой богатой программной среде. К примеру, все системы трансляции, динамическую загрузка данных и БД, можно применять также и в Linux.[16]

2.2. Обзор Java

ЯП Java является кросс-платформенным языком программирования, что был создан корпорацией Sun Microsystems.

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

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

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

Java – не лишь ЯП, но и специальная платформа проектирования приложений. Изначально указанный язык назывался Oak, и был разработан Джеймсном Гослингтом с целью программирования разных бытовых электронных устройств.

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

Чтобы не связывать разработку программного обеспечения с конкретно применяемой платформой, Д. Гослингт начал использовать разные расширение компилятора С++.

Заметим, со временем он понял, что только один С++ не будет удовлетворять всем необходимым потребностям, как бы не расширять его. Поэтому в середине 1990 г. спроектировал язык Oak.

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

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

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

Пример кода показан на рисунке 5:

Результат пошуку зображень за запитом "пример кода на java"

Рисунок 5 – Пример кода Java

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

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

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

Такие идеи нашли выражение в структуре CLI.[20]

2.3. Обзор C#

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

Указанные языки могут устраивать многих разработчиков, хотя не обеспечивают в действительности какой-то требуемой продуктивности разработки. [5] Процессы для написания приложения при использовании ЯП С++ занимает много времени, чем разработка такого же приложения на C#.

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

Традиционным средством для выполнения отладки программных продуктов на стадиях выполнения этапов разработки C++ является маркировка частей кода программ директивами #ifdef.

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

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

ЯП C#, являясь одним из последних с широко используемых ЯП, имеет возможность впитать полностью весь опыт, лучшие стороны всех современных ЯП, при этом являясь также созданным для программирования в среде программирования .NET.

Архитектура.NET продиктовала ему перспективную объектно-ориентированную направленность. [6]

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

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

3.1.Обзор C++ Builder

Почти каждый ЯП высокого уровня имеет также разработанную для него IDE, а именно интегрированную среду по разработке и реализации программ. К примеру: Visual Studio, C++ Builder, NetBeans и Eclipse. Все эти системы предназначаются также для реализации в них в более сложных графических программах.[1]

IDE C++ Builder считается средством, выпущенным корпорацией Borland, для проектирования программ, которые дают возможность для разработки оконного приложения с использованием C++, при этом используя библиотеку VCL. [19]

C++ Builder является специальным SDI-приложением, главное окно для которого может использовать инструментальную панель, а также палитры компонентов (рисунок 6). [7]

Рисунок 6 – Окно C++ Builder

Помимо этого, при запуске C++ Builder будут отображены окно инспектора объектов, формы и другие панели.

Формой является основа для приложений в C++ Builder. Стоит отметить, что в стандартном создании интерфейса для приложения нужно добавлять в окно формы некоторые элементы объектов с системы C++ Builder, что также часто называют компонентами.

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

Важной особенностью C++ Builder является возможность проектирования собственных пользовательских компонентов, при этом можно настраивать всю палитру. В среде возможность для создания самых различные версий палитр.[18]

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

Рисунок 7 – Использование разных типов компонентов

Каждый компонент, применяемый в C++ Builder использует 3 свои характеристики:

– методы;

– свойства;

– события.[8]

Если выбирать компонент на палитре непосредственно, потом добавлять на форму, инспекторы объектов могут отобразить автоматически события и свойства (рисунок 8). [3]

Рисунок 8 – Инспектор объектов

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

Свойство определенного компонента может отображаться и на вкладке свойств. А в это время инспекторы для объектов могут отображать некоторые опубликованные свойства компонентов. [14]

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

3.2. Создание оконной программы

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

Приведем краткое описание алгоритма.[12]

Рассмотрим систему линейных уравнений, неизвестными, то есть, систему вида: [7]

Обозначим матрицу :

.

Матрицу называют основной матрицей.

Пусть вектор – матрица-столбец имеющихся неизвестных значений, а – столбец свободных членов СЛАУ:[19]

и .

В этом случае систему можно переписать так:

.

Указанный метод может применяться и для выполнения решений СЛАУ, где количество неизвестных и уравнений совпадают, а матрица А – невырожденная.[11]

Если в СЛАУ число уравнений , неизвестных будет совпадать, то при этом , а система совместная и использует только одно решение: [10]

(),

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

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

Написания приложения будет состоять с нескольких этапов.

Первым является разработка интерфейса пользователя программы.[13]

Для этого откроем C++ Builder и создадим для ней пустой проект с оконным видом.

После расположения визуальных составляющий на имеющейся форме, настройки их при использовании окна с названием Object Inspector, разработанный интерфейс имеет вид (рисунок 9):[5]

Рисунок 9 – Интерфейс программы

Следующим этапом для реализации программ является написание кода компонентов и событий.

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

К примеру, кнопка «Автоматически заполнить» содержит код:

{

int i_2,j_2;

{

for (i_2=1;i_2<=StrToInt(Edit1->Text);i_2++)

for (j_2=1;j_2<=StrToInt(Edit1->Text);j_2++)

{

StringGrid1->Cells[i_2][j_2]=rand()%30-2;StringGrid1->Cells[UpDown1->Position+2][j_2]=rand()%30-1;

}

}

}

Функции используются для заполнения компонентов с названием StringGrid1, а также числовыми данными с [-1; 29].

При этом, после нажатия на компонент UpDown1 увеличивается количество строк и столбцов, а также изменяется название их.

Нажав далее на кнопки под названием «Вычислить матрицу» выполнится код вида:

int n_2 = StrToInt(Edit1->Text);

float** a_2 = mtx(n_2);

for(int i_2=1;i<UpDown1->Position+1;i_2++)

{

for(int j_2=1;j_2<UpDown1->Position+1;j_2++)

a[i_2-1][j_2-1]=StrToFloat(StringGrid1->Cells[j_2][i_2]);

b[i_2-1]=StrToFloat(StringGrid1->Cells[StringGrid2->ColCount-1][i_2]);

}

float dd_2 = det(a_2,n_2)

Edit14->Text=dd_2;

if(dd_2==0)

{

ShowMessage("Определитель – нуль");

return;

}

for(int i_2=0;i_2<n_2;i_2++)

{

d[i_2] = det(Swap(a_2,b,i_2,n_2),n_2);

x[i_2] = d[i_2]/dd_2;

D[i_2]->Text=FloatToStrF(d[i_2],ffGeneral,5,4);

X[i_2]->Text=FloatToStrF(x[i_2],ffGeneral,5,4);

}

AnsiString s1="",p1;

del(a_2,n_2);

Этот код будет вычислять методом Крамера корни.

Запустим программу на выполнение и введем размерность.

В результате получим (рисунок 10):

Рисунок 10 – Ввод данных

Далее нажмем кнопку под названием Вычислить матрицу. В результате получим (рисунок 11):[16]

Рисунок 11 – Результат выполнения программы

В последней главе описана реализация алгоритма Крамера решения СЛАУ, применены основные теоретические пункты указанного алгоритма, создан графический продукт на С++ Builder.

ЗАКЛЮЧЕНИЕ

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

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

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

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

– он дает программисту аппараты для задания действий, что должны быть выполнены;

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

В процессе написания работы реализованы такие задачи:

– выполнить характеристику языков программирования;

– дать характеристику парадигмам программирования;

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

В процессе проводимого анализа работы выявлены положительные стороны языков высокго уровня:

  • удобность применения иерархии классов;
  • гибкость языков;
  • интегрированность шаблонных классов и прочее.

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

  1. Хортон А. Visual C++ 2010. Полный курс. Издательский дом «Вильямс». – 2014. – 300 с.
  2. Борис Пахомов. С/С++ и MS Visual C++ 2010 для начинающих. БХВ-Петербург. – 2014. – 436 с.
  3. Брайан Керниган, Деннис Ритчи. Язык программирования С++. Издательство «Невский диалект». – 2014. – 320 с.
  4. Бьерн Страуструп. Программирование. Принципы и практика использования С++. Издательский дом «Вильямс». – 2015. – 258 с.
  5. Джесс Либерти. Освой самостоятельно С++ за 21 день. Издательский дом «Вильямс». – 2017. – 230 с.
  6. Динман М.И. С++. Освой на примерах. – СПб.: БХВ-Петербург, 2017.– 260 с.
  7. Дэвид Гриффитс, Дон Гриффитс. Изучаем программирование на С. Издательство «Эксмо». – 2013. – 400 с.
  8. Кнут, Дональд, Эрвин. Искусство программирования. Том : Уч. пос. М.: Издательский дом. «Вильямс», 2014.– 720с.
  9. Кубенский А.А. Структуры и алгоритмы обработки данных: процедурно-ориентированный подход. – СПб.: БХВ-Петербург, 2013. – 464с.
  10. Лаптев В.В. С++. Объектно-ориентированное программирование. Задачи и упражнения. – СПб.: Питер. 2013. – 288 с.
  11. Майерс С. Эффективное использование С++. – М.: ДМК Пресс; – СПб.: Питер. 2013.–240с.
  12. Прата С. Язык программирования С++. Издание 6. Издательский дом «Вильямс» – 2016. – 304 с.
  13. Р. Лафоре. Объектно-ориентированное программирование в С++. Издательство «Питер». Издание 4. – 2014. – 628 с.
  14. С++ Стандартная библиотека. Для профессионалов./Н. Джосьютис. – СП Питер, 2017. – 350 с.
  15. Седжвик Роберт. Фундаментальные алгоритмы на С++. К.: Издательство «ДиаСофт», – 2014. – 500 с.
  16. Скляров В.А. Язык С++ и объектно-ориентированное программирование. – Минск. «Вышейшая школа». – 2017. – 478с.
  17. Харви Дейтел, Пол Дейтел. Как программировать на С++. Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 2017. – 430 с.
  18. Хусаинов Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си. Учеб. пособие. – Финансы и статистика, 2014. – 464с.
  19. Штерн Виктор. Основы С++: Методы программной инженерии.– Издательство «Лори», 2013. – 860с.
  20. Язык С++: Учеб. Пособие /И.Ф. Астахова, С.В. Власов, В.В. Фертиков, А.В. Ларин.–Мн.: Новое знание, 2013. – 203 с.