Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (лекции).doc
Скачиваний:
53
Добавлен:
19.09.2019
Размер:
3.53 Mб
Скачать

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

Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.

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

  1. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Таким языком является ассемблер.

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

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

  1. алгоритмические языки – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Алгол и др.);

  2. процедурно-ориентированные языки – алгоритмические языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм). В процедурных языках реализуется технология структурного программирования (Basic, Pascal, C).

  3. объектно-ориентированные языки, поддерживающие понятие классов, объектов, их свойств и методов обработки (Object Pascal, Visual Basic, C++).

  4. проблемно-ориентированные языки – языки программирования, предназначенные для решения задач определенного класса:

    • языки программирования баз данных (SQL, PL/SQL в Oracle, Informix).

    • языки программирования для Интернет (HTML, Perl, PHP).

    • языки моделирования применяются для представления данных, чаще всего в CASE-системах (UML – унифицированный язык моделирования).

    • языки экономических расчетов и решения бизнес – задач (Cobol – Кобол) и др.

Программа, подготовленная на языке программирования высокого уровня, проходит этап трансляции. Трансляция может выполняться с использованием средств компиляторов или интерпретаторов.

  1. Компиляторы транслируют всю программу, но без ее выполнения.

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

Рисунок 17. Схема процесса создания загрузочного модуля программы

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

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

  1. Интерпретаторы, в отличие от компиляторов, выполняют пооперационную обработку и выполнение программы.

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

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

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