Часы

Вход в систему

Погода

AdSense

Языки программирования. Языки высокого уровня. Классификация языков программирования.

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

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

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

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

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

Синтаксис языка определяет правила построения операторов. Любой корректный оператор соответствует этим правилам. Правила синтаксиса — формальные. Проверка правильности исходного текста и поиск синтаксических ошибок могут быть выполнены автоматически.

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

Язык ассемблера

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

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

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

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

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

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

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

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

  • Машинная независимость. Программа с одинаковым исходным текстом может быть подготовлена для выполнения на процессорах с разной системой команд. Транслятор языка программирования высокого уровня — это машинно-зависимая система, предназначенная для подготовки программы к выполнению в рамках конкретной платформы.
  • Использование естественных обозначений (например, привычных математических знаков).
  • Эффективное представление этапов обработки данных средствами языка. Набор допустимых операций определен соображениями удобства, а не системой команд конкретного процессора.
  • Расширенный набор поддерживаемых типов данных.
  • Готовые библиотеки стандартных подпрограмм для выполнения часто встречающихся действий.

Применение языков программирования высокого уровня для создания программ началось в 60-е годы XX века. С тех пор по настоящее время создано и используется множество языков программирования, как универсальных, так и ориентированных на определенные группы задач.

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

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

Процедурные языки

К процедурным (или структурным) языкам относится большинство «классических» языков программирования, таких как FORTRAN, BASIC, Паскаль, Си. Эти языки удобны при создании относительно коротких программ. В процедурных языках программа и данные рассматриваются как отдельные, вообще говоря, не связанные друг с другом элементы. Работа программы состоит в последовательном выполнении операторов. Связь различных частей программы (процедур) между собой осуществляется только через данные. Данные можно передавать из одной процедуры в другую и обрабатывать совместно.

Логические языки

Логические языки программирования (ЛИСП, ПРОЛОГ и другие) представляют собой отдельную линию развития. Их используют при теоретическом исследовании алгоритмов, в работах по созданию искусственного интеллекта, в операциях с базами данных и в сложных системах автоматического управления.

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

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

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

Объектно-ориентированные языки программирования (Visual BASIC, C++, Object Pascal, Java) — это новая ступень развития процедурных языков программирования. Они ориентированы на создание очень больших и сложных программ. Многие из этих языков созданы путем расширения синтаксических правил процедурного языка-предка.

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

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

Возможна ли полная машинная независимость программ?

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

Этот код может быть выполнен на любом компьютере, на котором имеется специальная программа для его интерпретатора {виртуальная машина Java).