Что такое программирование?

Программирование - вполне естественное и интуитивное понятие. Программа, например, код написанный разработчиком сайта представляет собой лишь ряд предложений, написанных на особом языке. С программами мы встречаемся повсеместно, и даже технофобы ежедневно имеют с ними дело. Указания о том, как проехать в нужное место на машине, кулинарные рецепты, футбольные матчи и ДНК - все это программы, существующие в жизни или даже определяющие клеточный состав любого человека. Типичная "программа" проезда в нужное место может выглядеть так:

Начать движение по Главной улице в восточном направлении.
Ехать по Главной улице, пока справа не покажется церковь.
Если движение закрыто из-за строительства, повернуть там на 15-ю улицу, повернуть налево на Сосновую улицу, затем повернуть направо на 16-ю улицу.
В противном случае продолжить движение до 16-й улицы и повернуть направо.
Продолжать движение по 16-й улице, затем свернуть на Дорогу К Цели.
Проехать по Дороге К Цели 5 миль до дома с правой стороны.
Адрес - Дорога К Цели, дом 743.


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

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

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

Эти проблемы становятся менее существенными, если применяется другой вид транслятора, который называется компилятором. Компилятор преобразует язык высокого уровня в машинный язык. Языки высокого уровня гораздо более наглядны, чем язык ассемблера, и могут преобразовываться в машинные языки различных типов для каждой из различных архитектур процессоров. Это означает, что на языке высокого уровня программу можно написать один раз и один и тот же программный код будет преобразован компилятором в машинный язык различных конкретных архитектур. C, C++ и FORTRAN являются примерами языков высокого уровня. Написанная на языке высокого уровня программа значительно легче читается и больше похожа на естественный язык, чем язык ассемблера или машинный язык, но тем не менее должна придерживаться очень жестких правил написания команд, иначе компилятор не сможет их понять.

 

Заказать разработку сайта


Все о разработке сайтов