История языков программирования уходит в середину прошлого столетия, когда появилась необходимость в автоматизации различных процессов. Сейчас уже вряд ли удастся установить, кто же все-таки был самым первым, но оставившими след в истории, несомненно, следует считать западный «Plan.Calcul» и отечественный «Краткий код (Short Code)» для малых вычислительных систем. Эти языки имели одну особенность – код приходилось интерпретировать вручную.
Так что же такое язык программирования? Попробуем дать общее определение. Язык программирования – это знаковая система для описания алгоритмов, обеспечивающая модели для записи формул. Его основная задача – предоставить программисту аппарат для задания действий и описания алгоритмов какой-либо задачи. Как известно, самым простым способом описания математических моделей являются математические формулы. Любой язык программирования можно оценить по уровню сходства с записью, понятной для человека: чем более понятной получается запись, тем более сложной является реализация самого языка программирования.
У каждого языка есть свой лексикон – системы команд-операторов, которые могут значительно отличаться друг от друга в разных языках. И даже типы их могут быть различныуЬ: если в одном языке для выполнения какой-то операции требуется одна команда, то в другом – целый блок. И наоборот.
На данный момент языков программирования насчитывается уже гораздо больше сотни. Полный их список с описанием можно было бы напечатать отдельной книгой с подробнейшими комментариями и примерами. Я же постараюсь вкратце рассмотреть историю развития языков программирования, показав их основные особенности и возможности применения.
Языки программирования принято делить на две основные группы, по мере их близости или удаленности от языка машинных команд. Это языки низкого и высокого уровней.
ЯЗЫКИ НИЗКОГО УРОВНЯ
Языки низкого уровня мало похожи на нормальный, привычный для человека язык. К ним относят машинные коды и различные модификации языка ассемблера. Разбираться в них новичку не имеет смысла, да и зачем? Эти языки используются сейчас для реализации лишь специальных частей программ, в которых необходимо обеспечить наивысшую эффективность.
Программа представляет собой набор двоичных данных и является невероятно сложной структурой, разобраться в которой под силу лишь специалистам экстра-класса. Сейчас на машинных кодах практически не программируют.
Адаптированные версии машинных кодов под аппаратную платформу. Каждая архитектура имеет свою собственную версию ассемблера. Они переводят программу с языка ассемблера в машинные коды. При этом каждой строчке исходного текста ставится в соответствие одна команда процессора.
Сейчас эти языки используются только в мелких, но очень важных частях систем, в которых необходимо быстродействие.
ЯЗЫКИ ВЫСОКОГО УРОВНЯ
Все существующие языки высокого уровня можно классифицировать по семи основным категориям: линейные, процедурные, логические, объектно-ориентированные, языки запросов к базам данных, языки сценариев и макросы.
Для описания этих языков нам понадобятся следующие определения:
• Процедура – это именуемая часть программы, в которую при вызове передаются параметры, и в соответствии с ними выполняется программный код, после чего управление передается в основную программу.
• Функция – это процедура, возвращающая значение.
• Переменная – именованная частичка памяти, хранящая значение.
• Класс – набор связанных переменных, процедур и функций.
• Модульное программирование – часть программного кода записывается в виде процедур и функций, которые впоследствии могут вызываться из основной части программы. Это позволяет избавиться от повторяющегося кода, превратив программу в более компактную и универсальную. Модульность систем дает возможность уйти от нагромождения элементов кода, сделав его более гибким в использовании.