Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал лекции 1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
138.75 Кб
Скачать

10

Материал лекции №1 для самостоятельного изучения

Вопрос 1. История и эволюция языков программирования. Краткий обзор.

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

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

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

  1. машинные языки;

  2. языки ассемблера;

  3. языки высокого уровня;

  4. системы программирования.

Машинные языки

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

Машинный язык - это «природный язык » компьютера определенного типа. Он определяется при проектировании его аппаратных средств - именно процессоре "зашит" некий набор базовых операций над двоичными числами – сложение, вычитание, сдвиг, логические операции и т.п. Таким образом, машинные языки машинно-зависимы, т.е. каждый машинный язык может быть использован только на компьютере определенного типа.

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

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

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

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

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

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

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

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

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