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

advertisement
Уровни языков программирования
Языки программирования часто классифицируют
по уровню. Уровень языка показывает, насколько
язык близок к естественной для человека записи.
В принципе все языки программирования созданы для решения
задач с использованием математики (практически всех её
разделов).
Наиболее близким к человеку является язык математической
записи, т.е. условия задачи и её решения.
Возможно даже с
применением
фраз на обычных
языках общения,
подобно тому, как
записывают
задачи
школьники или
студенты.
Любой алгоритм, как мы знаем, есть
последовательность предписаний, выполнив которые
можно за конечное число шагов перейти от исходных
данных к результату.
В зависимости от степени детализации предписаний
обычно определяется уровень языка
программирования - чем меньше детализация, тем
выше уровень языка.
Если язык программирования ориентирован на
конкретный тип процессора и учитывает его
возможности, то он называется языком
программирования низкого уровня.
Низкий уровень языка программирования не означает
плохой уровень.
Имеется ввиду, что операторы языка близки к
машинному коду и ориентированы на конкретные
команды процессора.
По этому критерию можно выделить основные
уровни языков программирования:
- Машинные/Машинно ориентированные,
языки первого поколения - 1GL (ассемблер),
а также 2GL (макроассемблер и автокод);
- Машинно независимые - 3Gl
(языки высокого уровня).
- Машинно независимые ,
визуальные языки программирования – 4GL
Языки низкого уровня
Языки низкого уровня часто применяют для написания
системных приложений, например драйверов устройств, когда
важнейшими требованиями становятся быстродействие и
возможность прямого доступа к аппаратным ресурсам.
С помощью языков низкого уровня создаются очень
эффективные и быстро выполняемые
программы, так как
разработчик получает доступ ко всем возможностям процессора.
С другой стороны, при этом требуется очень хорошо понимать
устройство компьютера, требуется больше времени для
программирования и результирующая программа не может быть
перенесена на компьютер с другим типом процессора.
Классификация языков программирования
Машинные языки
Каждый компьютер имеет свой
машинный язык, то есть свою
совокупность машинных команд,
которая отличается количеством
адресов в команде, назначением
информации, задаваемой в
адресах, набором операций,
которые может выполнить машина.
Их достоинства и недостатки
При программировании на машинном языке программист
может держать под своим контролем каждую команду и
каждую ячейку памяти, использовать все возможности
имеющихся машинных операций. При этом можно составить
такую компактную, маленькую программу, код которой может
быть исполнен в любом самом примитивном
микроконтроллере, чипе. В этом ценность программирования в
кодах машины.
Но процесс написания программы на машинном языке
очень трудоемкий и утомительный. Программа
получается громоздкой, труднообозримой, ее трудно
отлаживать, изменять и развивать.
Поэтому в случае, когда нужно иметь эффективную
программу, в максимальной степени учитывающую специфику
конкретного компьютера, вместо машинных языков используют
близкие к ним машинно-ориентированные языки (ассемблеры).
Ассемблер
Язык ассемблера - представляет каждую команду машинного кода с
помощью удобных для восприятия человеком символических
условных обозначений, называемых мнемокодами.
Так как наборы команд для каждой модели процессора отличаются
между собой, то конкретной компьютерной архитектуре соответствует
свой язык ассемблера.
Достоинства и недостатки
Язык ассемблера дает возможность составлять программы в терминах
команд машинного языка, но с использованием более удобной системы
обозначений.
Использование языка ассемблера, как правило, ограничивается областью
системного программирования, т.е. разработкой операционных систем или
их компонентов, разработкой драйверов и т.д.
Для перевода программы с языка ассемблера в понимаемый процессором
машинный код требуется специальная программа, которая также называется
ассемблером.
ЯЗЫКИ ВЫСОКОГО УРОВНЯ
Языки высокого уровня или языки третьего поколения 3GL имитируют естественные языки, используя некоторые
слова разговорного языка и общепринятые математические
символы. Эти языки более удобны для человека.
Языки программирования высокого уровня значительно ближе
и понятнее человеку. Особенности конкретных компьютерных
архитектур в них не учитываются, поэтому создаваемые
программы на уровне исходных текстов легко переносятся на
другие платформы, для которых создан транслятор этого
языка. Разрабатывать программы на языках высокого уровня
значительно проще, а ошибок при этом допускается гораздо
меньше.
В общем случае программу, которая переводит программу,
написанную на языке высокого уровня в машинный код,
называют компилятором.
Языки высокого уровня (3GL) делятся на:
•процедурные (алгоритмические) (Basic, Pascal, C и др.), которые
предназначены для однозначного описания алгоритмов. Для решения
задачи процедурные языки требуют в той или иной форме явно
записать процедуру ее решения.
•логические (Prolog, Lisp и др.), которые ориентированы не на
разработку алгоритма решения задачи, а на систематическое и
формализованное описание задачи с тем, чтобы решение следовало
из составленного описания.
•объектно-ориентированные (Object Pascal, C++, Java и др.), в
основе которых лежит понятие объекта, сочетающего в себе
данные и действия над нами.
Программа на объектно-ориентированном языке, решая некоторую
задачу, по сути описывает часть мира, относящуюся к этой задаче.
Описание действительности в форме системы взаимодействующих
объектов естественнее, чем в форме взаимодействующих процедур.
4GL-Технологии. Основы
визуального программирования
Визуальное программирование - (то же самое, что системы быстрой
разработки приложений RAD – Rapid Application Development) - способ
создания программы для ЭВМ путём манипулирования графическими
объектами вместо написания её текста.
В визуальном программировании используются специальные объемные
(3D) или плоские (2D) графические или псевдографические среды.
То есть в отличие от языков низкого (1GL), среднего (2GL),
высокого уровня (3GL), где программирование и язык носят
существенно линейный, последовательный характер, в
визуальных средах (4GL) мы имеем дело с существенно
разветвленными "пространственными" структурами типа
блок-схем.
Примеры
«Кирпичиками» этих блок-схем являются заранее разработанные
подпрограммы и функции с унифицированным автоматическим
"интеллектуальным" интерфейсом. При соединении таких
"кирпичиков" их взаимный интерфейс настраивается без участия
программиста.
Таким образом, визуальное программирование позволяет нам
программировать на уровне алгоритмов, а не программного кода.
Программный код на языках 3GL, 2GL, 1GL пакет визуального
программирования генерирует из составленной программистом "блоксхемы" в автоматическом режиме сам.
Программист лишь в нестандартных случаях корректирует
программный код, либо создает на нем дополнительные
"пользовательские объекты" - модули-кирпичики для последующего
использования в визуальном программировании.
Download