Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 Характеристики ЯП.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
329.73 Кб
Скачать

2. Краткая история языков программирования Машинные команды

В настоящее время программирование стало широко распространенным видом человеческой деятельности.

А началось настоящее программирование в современном понимании с момента создания первой электронной вычислительной машины.

Первые ЭВМ позволяли выполнять программы на машинном языке, который является единственным языком, понятным ЭВМ. Он реализуется аппаратно: каждую команду выполняет некоторое электронное устройство.

Машинные команды пишутся в двоичном коде. Логику работы подобных программ очень трудно понять из-за того, программа представляет собой сплошной набор нулей и единиц. Например, какие-то группы обозначали числа, другие – операции над ними.

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

Мнемокоды

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

Переменная – в программировании это буквенное обозначение области памяти, в которой хранится некоторое значение.

Для перевода мнемокодов в машинные инструкции и имен переменных в адреса ячеек памяти использовалась специальная программа – транслятор. Языки мнемокодов получили название ассемблеров.

Структурное программирование

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

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

Есть еще Неструктурное программирование, которое допускает использование в явном виде команды безусловного перехода (в большинстве языков GOTO). Типичные представители неструктурных языков - ранние версии Бейсика и Фортрана.

Однако в языках высокого уровня наличие команды перехода влечет за собой массу серьезных недостатков: программа превращается в "спагетти" с бесконечными переходами вверх-вниз, ее очень трудно сопровождать и модифицировать. Фактически неструктурный стиль программирования не позволяет разрабатывать большие проекты. Ранее широко практиковавшееся первоначальное обучение программированию на базе неструктурного языка (обычно Бейсика) приводило к огромным трудностям при переходе на более современные стили. Как отмечал известный голландский ученый Э. Дейкстра, "программисты, изначально ориентированные на Бейсик, умственно оболванены без надежды на исцеление".

Современное программирование

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

Широкое распространение получили объектно-ориентированные языки программирования (ООП), на которых легче реализовать большие и сложные проекты. Их отличие от языков высокого уровня заключается в возможности отстранения от алгоритма выполнения программы. С помощью таких языков разработчик как бы оперирует виртуальными объектами.