Файл: Обзор языков программирования высокого уровня (Понятие языков программирования).pdf
Добавлен: 25.04.2023
Просмотров: 299
Скачиваний: 2
ВВЕДЕНИЕ
Подавляющее большинство разных языков программирования (ЯП) исчезало, едва только появившись. Лишь к очень немногим был проявлен какой-то интерес, и буквально единицы из них получили действительно широкое распространение среди программистов.
Языки программирования оказывают также и взаимовлияние друг на друга по мере развития, путем заимствования уже существующих конструкций из других ЯП. По мере быстрого прогресса и развития компьютерной техники и увеличения числа задач по автоматизации процессов также происходит постоянное увеличение числа ЯП. Кроме этого, для более эффективного решения специфических задач могут предприниматься попытки разработки новых, современных языков, однако их распространение затруднено, поскольку программисты в большинстве своем очень консервативные и не хотят осваивать современные языки если уже однажды выученный ЯП позволяет им решить задачу.
Все языки программирования можно условно поделить на две части:
– языки низкого уровня;
– языки высокого уровня.
Более понятными для ЭВМ являются машинно-ориентированные языки. ЯП, по своей конструкции и логике более понятные для обычного человека, именуются языками высокого уровня.
Все языки низкого уровня можно разделять на машинный язык (совокупности машинных слов), а также автокод (символьное представление машинного кода).
Актуальность курсовой работы заключается в том, что разработка программ на высокоуровневых языках программирования позволяет снизить требования к навыкам потенциального программиста и позволяет привлечь больше людей для решения задач по разработке программных продуктов и автоматизации процессов. Также разработка программ на высокоуровневых ЯП считается основой для их удобного и эффективного применения, к примеру, из-за дружественного внешнего вида кода программ и достичь этого без использования объектно-ориентированного программирования (ООП) невозможно.
Цель работы – рассмотрение принципов написания разного рода программных продуктов при использовании языков программирования высокого уровня.
Исходя из цели выделим следующие задачи:
– выполнить характеристику языков программирования;
– дать характеристику парадигмам программирования;
- изучить основные принципы ООП;
- дать характеристику основных языков программирования высокого уровня;
- на практике создать программное приложение, которое демонстрирует функционал и удобство языков программирования высокого уровня.
Объект исследования – теория языков программирования.
Предмет исследования – ЯП высокого уровня.
По мере развития компьютерной техники возникли также разные подходы в программировании, которые качественно исследовались разными разработчиками: Динман М.Т. [6], Т. Лафоре, [13], Х. Дейтелс [17].
1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ ТЕОРИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Понятие языков программирования
Программирование – это совокупность процессов, связанных с разработкой программ или их реализацией. В широком смысле к таким процессам относят практически все технические операции, что необходимы для создания программ, при этом включая анализ требований, практически все стадии разработки, реализации в виде уже готового программного продукта.
Также, в узком смысле под процессом программирования часто понимают только некоторые процессы выбора структуры, тестирования программ и их кодирования (рисунок 1).
Программа задачи на машинном языке
Программа задачи на машинно-ориентированном языке
Программа задачи на языке II высокого уровня
Алгоритмическое описание задачи
Исходная формулировка задачи
Процесс программирования
Рисунок 1 – Процесс программирования
Компьютерная программа представляет логически упорядоченную последовательность команд, предназначенных для управления персональным компьютером (ПК).
Процессор компьютера – это интегральная схема. Все команды и данные он получает в виде специального электрического сигнала. В двоичном коде такое наличие сигнала описывается значением «1», а отсутствие его – значением «0».
Команды, что обрабатываются процессором, можно интерпретировать в качестве ряда чередующихся определенным образом нулей и единиц. То есть любая из команд преобразуется в бинарное число. Таким образом, непосредственно процессор исполняет программы, которые представляют собой последовательность чисел, что называются машинным кодом.
Писать программные продукты в машинных кодах практически очень сложно и трудоемко, причем с постепенным ростом размера программы эта задача все больше усложняется, в связи с чем растет и вероятность ошибок.
В ПК первого поколения использовались программные продукты, написанные во многих машинных кодах, причем для всех компьютеров существовал свой собственный код, непригодный для исполнения на других видах процессоров. Числовая кодировка применяемых команд, адресов ячеек, обрабатываемых данных, зависимость типа программы от места ее в памяти не дают возможность следить за непосредственным смыслом исполняемой программы. Это ограничивало во многом область применения компьютеров самого первого поколения. В указанный период (начало 50-х годов) средства программирования и ПО только зарождались, к тому же они еще не были развиты.
Для того чтоб сделать программу читабельной, а также иметь возможность следить за ее смысловой структурой, придумали символический язык под названием Ассемблер. Он был близок к машинному (конец 50-х годов), и в нем появилось само понятие переменной.
Ассемблер стал одним с первых полноценных языков программирования. Благодаря этому заметно уменьшилось время и трудоемкость разработки, возросла надежность исполняемых программ. [5]
Для записи кодов операций, обрабатываемой информации на Ассемблере используются специальные стандартные обозначения, позволяющие использовать числа и текст для общепринятого вида, для кодов команд принимаются мнемонические обозначения.
Для непосредственного обозначения величин, размещаемых в ячейках памяти, можно задать имена. После ввода программ ассемблер сам заменяет эти символические имена сразу на адреса памяти, а коды команд на числовые символы.
Использование ассемблера сделало сам процесс программирования нагляднее. Дальнейшее развитие такой идеи привело к возникновению языков программирования высокого уровня, для которых длинные и сложные машинные коды были заменены только одним единственным обозначающим словом – операторы.
Сегодня практически все написанные программы создаются с применением языков программирования.
Теоретически любую программу можно написать на естественном языке (то есть, программирование на метаязыке), хотя из-за неоднозначности естественного языка автоматически перевести программу в машинный код – невозможно.
Языки программирования – это формальные искусственные языки. Они, как и естественные языки, имеют словарный запас, алфавит, грамматику и синтаксис.
Алфавит – разрешенный в использовании набор символов, с применением которых могут быть созданы слова и величины рассматриваемого языка.
Синтаксис – это система правил, определяющих все допустимые конструкции ЯП из букв алфавита.
Семантикой называется система правил для однозначного толкования каждой из языковых конструкций, позволяющих производить процессы обработки данных.
Взаимодействие всех семантических и синтаксических правил определяет основные определения языка:
– операторы;
– переменные;
– функции;
– идентификаторы;
– константы;
– процедуры и т.п.
В отличие от естественных языков, языки программирования имеют ограниченный запас слов, строгие правила их написания, а правила грамматики, семантики, как и для всякого формального языка, явно четко сформулированы.
ЯП, ориентированные на команды определенного процессора и учитывающие все сего особенности, называются языками низкого уровня. Понятие «низкий уровень» не означает недоразвитый, а имеется в виду то, что операторы такого языка близки к естественному машинному коду и ориентированы только на конкретные операторы процессора.[10]
Языком самого низкого с уровней является Ассемблер (рисунок 2):
Рисунок 2 – Код языка Ассемблер
Программа, написанная на нем, представляется последовательностью команд машинных кодов, записанных с использованием символьных мнемоник.
При использовании языков низкого уровня создают компактные оптимальные программы, скорость выполнения которых обычно выше чем у аналогов, написанных на высокоуровневых ЯП, ведь программист получает доступ для всех возможностей процессора. [15]
С другой стороны, при этом также требуется хорошо понимать все устройство конкретного компьютера, а применение такой программы на ПК с процессором иного типа невозможно.
Такие ЯП используются для написания малых системных приложений, драйверов, модулей стыковки с разным нестандартным оборудованием, когда очень важна компактность, быстродействие и прямой доступ к имеющемся аппаратным ресурсам.
ЯП, имитирующие естественные, которые обладают укрупненными командами, могут быть ориентированные «на человека», также называют языками высокого уровня.
Стоит отметить, что чем выше уровень ЯП, тем ближе структуры информации и конструкции, применяющиеся в программе, к главным понятиям исходной задачи.
Все особенности конкретных компьютерных архитектур для них не учитываются, так как исходные тексты программ переносимы легко на другие платформы и имеют трансляторы этого языка.
Также разрабатывать программы на ЯП высокого уровня с использованием понятных и мощных операторов значительно проще, что снижает число полученных ошибок, допускаемых для процесса программирования.
Стоит отметить, что в настоящее время насчитываются сотни таких языков.
Таким образом, все ЯП высокого уровня, ориентированные только на решение больших прикладных содержательных задач, являются аппаратно-независимыми, а также требуют использования соответствующих программ-переводчиков для преобразования текста программы на машинный код, который обрабатывается процессором.
1.2. Классы языков программирования
Современное состояние ЯП можно представить следующей классификацией (рисунок 3):
Языки программирования
Процедурные
(императивные)
Объектно-ориентированные
Декларативные
Операционные
Структурные
Функциональные
Логические
Визуальные
Объектные
Рисунок 3 – Классификация языков программирования
Процедурным программированием называют такой вид программирования, в котором программа состоит из некоторой последовательности инструкций, а также является отделенной от данных для самой программы. [19]
Декларативными языками считаются языки построения объявлений структур. К указанным инструментальным средствам часто относятся функциональные и логические языки.
В указанных декларативных языках производится строгое построение для некоторой системы, структуры, а также объявляются (декларируются) многие свойства для уже разработанного объекта. Такие языки могли получить также широкое применение для специальных систем автоматизированного проектирования. [20]
В объектно-ориентированных языках все функции или же переменные могут группироваться в специальных конструкциях, что также называются классами. [4]
Благодаря этому все программисты могут достигать высокого уровня структуризации и абстракции ПО. Экземпляры, что будут применены от классов, являются методами (функции, процедуры), которые меняют некоторые свойства класса.
С точки зрения формальности объектно-ориентированный метод базируется на процедурных моделях. [8]
Сетевые языки – это специальные ЯП, которые чаще всего предназначаются для выполнения взаимодействия компьютера, которые были подключены непосредственно к любой сети.