Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций КИТ 1 курс ГЭФ.doc
Скачиваний:
295
Добавлен:
22.02.2016
Размер:
3.32 Mб
Скачать
  1. Языки программирования: понятие, классификация, поколения.

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

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

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

Существуют трансляторы трех видов: компиляторы, интерпретаторы и ассемблеры.

Компиляторыполностью обрабатывают весь исходный код: просматривают его в поисках синтаксических ошибок (иногда несколько раз), выполняют определенный смысловой анализ и затем автоматически переводят (транслируют) на машинный язык – генерируют машинный код.

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

Ассемблерыпредназначены для перевода программы, написанной на языке ассемблера, в машинный код.

Языки программирования– искусственные языки. От естественных они отличаются ограниченным числом «слов» и очень строгими правилами записи команд(операторов). Совокупность подобных требований образуетсинтаксис языка программирования, асмысл каждой команды и других конструкций языка – егосемантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение осинтаксической ошибке. Правильно написанное, но не отвечающее алгоритму использование команд языка, приводит ксемантическим ошибкам, называемым еще логическими ошибками или ошибками времени выполнения.

Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок –отладкой.

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

Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, т.е. является машинно-зависимым, он называется языком программирования низкого уровня. В данном случае «низкий уровень» не значит «плохой». Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.

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

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

  • требуется очень хорошо понимать устройство компьютера,

  • затрудняется отладка больших приложений,

  • результирующая программа не может быть перенесена на компьютер с другим типом процессора.

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

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