Файл: Обзор языков программирования высокого уровня.pdf

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

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

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

Добавлен: 29.04.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

По мере развития компьютерной техники возникли также разные подходы в программировании, которые качественно исследовались разными разработчиками: Динман М.Т. [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. Обзор С++

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