Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Основные понятия и эволюция языков программирования).pdf

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

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

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

Добавлен: 30.03.2023

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

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

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

К языкам программирования низкого уровня относят [33]:

– программирование в машинных кодах;

– ассемблер;

– макроассемблер.

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

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

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

Рассмотрим подробнее самый популярный из языков программирования данного уровня – ассемблер (рисунок 2).

Рисунок 2 – Язык Ассемблер

Assembler c английского языка означает «сборщик». Речь идет о компиляторе и трансляторе, которые производят шифровку данных [30].

Если говорить о структуре и работе языка программирования assembler, можно сказать, что его команды полностью соответствуют командам процессора, т.е. язык использует удобные для человека мнемокоды. В отличие от других языков, assembler для записи ячеек памяти вместо адресов использует метки, они в процессе исполнения кода переводятся в директивы. Это своего рода адреса, которые не переводятся в машинный язык, они нужны для распознавания средой разработки. Для каждой серии процессоров разработана индивидуальная система команд. При таком раскладе корректным будет любой процесс, в том числе и переведенный машинный код [30].

Наиболее важным и удобным приспособлением языка assembler является то, что на нем можно написать практически любую программу для процессора, и она при этом будет очень компактной. Если код получается слишком большим, то среда разработки перенаправляет некоторые процессы в оперативную память компьютера [14]. При этом все процессы выполняются без ошибок и довольно быстро. Драйвера, BIOS, операционные системы, компиляторы, интерпретаторы и т.д. – все это программы, написанные на языке assembler. При применении дизассемблера, который совершает перевод из машинного кода в компьютерный язык, можно понять как работает та или иная системная задача, даже если к ней нет комментариев. Но это возможно только тогда, когда программы легкие, в нетривиальных кодах разобраться сложнее [1].


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

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

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

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

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


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

Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основной концепцией которых является совокупность программных объектов. Написание на объектно-ориентированном языке программы представляются в виде последовательности создания экземпляров объектов и использовании их методов. К ним относятся Simula и SmallTalk (одни из первых), C++ и Java [36].

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

Для примера рассмотрим подробнее язык C++. Это один из наиболее популярных в мире языков программирования общего назначения.

C++ (читается как «си-плюс-плюс») – это компилируемый, статически типизированный язык программирования. Он широко используется для разработки программного обеспечения [31].

Стандарт C++ состоит из двух основных частей: описание ядра языка и описание стандартной библиотеки.

В книге «Дизайн и эволюция C++» Бьерн Страуструп описывает принципы, которых он придерживался при разработке языка. Данные принципы объясняют, почему C++ именно такой, какой он есть [21].

Вот некоторые из них:

– получить универсальный язык со статическими типами данных, переносимый и эффективный;

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

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

– сохранить совместимость с C;

– избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна обозначать одно и то же в каждом из них и приводить к одному и тому же поведению программы [36];

– избегать особенностей, зависящих от платформы;

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

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

Пример кода на языке C++ представлен на рисунке 3.

Рисунок 3 – Пример кода на языке программирования C++

1.2.4 Декларативные языки программирования

В декларативном программировании задается спецификация решения задачи, т.е. дается описание того, что представляет собой проблема и какой результат ожидается. Программы, созданные с помощью декларативного языка программирования, не содержат переменные и операторов присваивания. К подвидам декларативного программирования относят логическое и функциональное программирование. К декларативным языкам программирования можно отнести HTML и SQL [23].


HTML (Hyper Text Markup Language – «язык разметки гипертекста») – это стандартный язык разметки документов в интернете. Был разработан Тимом Бернерсом-Ли в 1989-1991 годах и изначально создавался как язык обмена научной и технической документацией [6].

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

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

Для перехода от одного HTML-документа к другому применяют гиперссылки. Это изображения или фрагменты текста, которые являются указателями на другие объекты. Связывание страниц осуществляется при помощи HTML разметки.

Пример кода на языке программирования HTML представлен на рисунке 4.

Рисунок 4 – Пример кода на языке программирования HTML

SQL (structured query language – «язык структурированных запросов») – декларативный язык, который применяют для создания, редактирования и управления данными в реляционной базе, управляемой соответствующей СУБД (системой управления базами данных) [2].

SQL представляет собой совокупность инструкций, операторов и вычисляемых функций.

SQL условно можно назвать языком программирования, но при этом он не является тьюринг-полным. Вместе с тем стандарт языка спецификации SQL/PSM предусматривает возможность процедурных расширений [25].

Первоначально язык SQL был основным способом работы пользователя с базой данных и позволял выполнять следующие операции [34]:

– создание новой таблицы;

– добавление новой записи в таблицу;

– изменение записи;

– удаление записи;

– выборка записей из одной или нескольких таблиц;

– изменение структуры таблицы.

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

Преимущества SQL [25]:

– независимость от конкретной СУБД;


– наличие стандартов

– декларативность.

Недостатки SQL [2]:

– несоответствие реляционной модели данных;

– сложность;

– отступления от стандартов;

– сложность работы с иерархическими структурами.

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

Эволюция языков программирования тесно связана с развитием компьютеров, всего насчитывается шесть основных этапов эволюции.

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

– по поддерживаемым методологиям;

– по принадлежности к семействам;

– по ориентации на предметные области;

– по степени абстракции от аппаратуры;

– по истории языков программирования;

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

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

2.1 Понятие и сущность среды программирования

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

Перечислим базовые компоненты среды программирования:

Редактор – это средство создания и редактирования файлов с исходным текстом программы.

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

Компоновщик собирает объектные файлы и формирует исполняемый файл, разрешая внешние ссылки между файлами [11].

Отладчик – это средство управления процессом выполнения исполняемого файла на уровне отдельных операторов программы для выявления ошибок.

Прочие компоненты среды программирования следующие [28]:

Библиотекарь – это средство ведения совокупностей библиотек (объектных файлов).