“На Земле насчитывается около 7000 “человеческих” языков и уже более 8000 языков программирования.”
Статичтический справочник
Программисты пишут программы, которые в конечном итоге выполняются процессорами компьютеров. При этом мы знаем, что процессор может выполнять только команды, записанные в виде числового кода. Других команд он просто “не понимает”. Потому что числовой код для самого процессора – это просто двоичный код (нолики и единички), преобразованный в электрические сигналы.
Конечно, можно писать программы непосредственно электрическими сигналами: включая и выключая тумблера на панели. Так и делали много лет назад, на заре развития компьютерной техники. Но это очень долго и неудобно.
Можно писать двоичные числовые коды команд и данных в области памяти – файлы. А потом передавать эти файлы процессору для выполнения. Такие исполняемые процессором файлы называют “бинарные” или “двоичные”. При этом для записи чисел можно пользоваться любой удобной системой счисления (ведь выбор системы счисления не меняет сами числа) и тогда длинные двоичные числа превратятся в более компактные и читаемые десятичные или шестнадцатеричные числа. Но это тоже не очень удобно.
Все эти способы записи будут “понятны” для процессора, а вот для человека – нет. Человеку очень тяжело воспринимать ряды чисел как команды, данные и т.п. Мы просто не приучены читать строчки чисел как вечернюю газету. Человеку удобно и легко читать тексты, написанные на его родном языке. Для нашего восприятия гораздо более удобен текст, а не ряды цифр.
Именно поэтому в какой-то момент пришлось придумывать, как записывать программы не в виде числовых кодов для процессора, а в виде читаемого текста – для людей.
Разумеется, литературный текст для этой задачи просто не подойдет – слишком уж он неформален, образен, неоднозначен. Процессор его просто не “поймёт”. Программирование требует формальности: четкости и однозначности.
Что такое язык программирования
Пришлось изобретать некий гибрид из литературного языка и математики, предельно четкой и формальной дисциплины, чьи задач и призваны были решать вычислительные машины в первую очередь. Подобный гибридный язык мог, оставаясь предельно четким и однозначным (что необходимо для процессора), быть при этом вполне понятным и читаемым (что важно для людей, которым предстояло писать и читать написанные программы). В результате получились различные языки, на которых можно было однозначно и четко описывать желаемые алгоритмы. При этом тексты таких программ получались вполне понятными для человека: уже не надо было продираться через частоколы единичек и ноликов – в программах появились слова, числа, знаки математических операций, знаки препинания и т.д. Такие языки стали называть языками программирования.
Сейчас количество языков программирования на земле уже превысило количество “человеческих” языков и продолжает неуклонно возрастать… в то время как количество человеческих – сокращается.
Правда теперь у программ, написанных на таких языках появился один недостаток: процессор не в состоянии “понять” текст таких программ и выполнить его. Поэтому пришлось создавать специальные программы, которые переводят текст, написанный на языке программирования в команды процессора. Такие программы называют компиляторами.
Сейчас можно ещё раз просмотреть статью “Что такое программа и программирование?”.
Кроме компиляторов существуют также другие способы получения выполняемых программ, о которых мы поговорим чуть позже.
Особенности записи текстов программ
Давайте рассмотрим текст какой-нибудь простой программы, написанной на языке программирования RUbasic:
Если цвет_кошки = "черный" ИЛИ цвет_кошки = "белый" То
цвет_кошки = "зеленый"
АЕсли цвет_кошки = "серый" То
цвет_кошки = "желтый"
Иначе
цвет_кошки = "красный"
В этом фрагменте программа изменяет цвет кошки в зависимости от того, какой он был изначально:
- если кошка была черной или белой, её покрасят в зелёный цвет,
- если кошка была серой, она станет жёлтой,
- во всех остальных случаях кошку покрасят в красный цвет.
Это фрагмент реальной работоспособной программы, который мы, тем не менее, в состоянии прочитать и понять.
Обратите внимание, что данная программа записана не в виде привычного нам сплошного текста:
Если цвет_кошки = “черный” ИЛИ цвет_кошки = “белый” То цвет_кошки = “зеленый” АЕсли цвет_кошки = “серый” То цвет_кошки = “желтый” Иначе цвет_кошки = “красный”
а с разбивкой по строкам: так, что каждая строка содержит одну законченную инструкцию (команду) данного языка программирования. Это позволяет, во-первых, сделать текст программы более понятным с точки зрения программирования, а во-вторых, увеличить его читаемость и уменьшить вероятность ошибок.
В данном примере каждая строка содержит одну команду данного языка программирования:
- в первой строке мы проверяем выполнение заданного условия, и если условие выполнено,
- то выполняется команда, написанная в следующей строке – изменение цвета кошки на зелёный,
- если же проверяемое условие не было выполнено, то мы проверяем следующее условие (является ли цвет кошки серым),
- и в случае выполнения этого условия, меняем цвет на желтый,
- если же первое и второе условия выполнены не были,
- то мы изменим цвет кошки на красный.
Понятие команды
Команда (или инструкция) в программировании – это элементарная операция, которую программа или процессор могут выполнить за один раз. Фактически, команда – это минимальный элемент программы. Команды в программе могут быть очень простыми, а могут быть и довольно сложными, как мы увидим в следующих разделах курса.
Команды выполняются в строгом порядке, в котором они расположены в программе. Здесь так же важна последовательность, как и в любом алгоритме. При этом порядок выполнения команд может изменяться, если используются команды переходов, как, например в этом примере, когда в зависимости от результатов проверки условий выполняется переход к одной из команд изменения цвета.
Обратите внимание, что данный фрагмент программы написан так, что в результате выполнения может проверить несколько условий, но выполнит только одну операцию изменения цвета: строку № 2, №4 или №6.
Свойства языков
Каждый язык программирования, как и обычный язык, имеет свой алфавит, словарь и свои правила, и правила эти гораздо более жесткие, чем правила обычного языка. Например, многие языки используют только латинский алфавит, в некоторых языках нельзя использовать большие буквы, в некоторых символы пробела воспринимаются как часть команды, в других требуются обязательные знаки препинания… Практически во всех языках программирования способ записи каждой команды очень четко регламентирован. Это позволяет избегать ошибок и упрощает написание и восприятие программ.
Языки программирования различаются не только правилами написания команд, но также областями применения, функциональностью и т.п. Сейчас создано огромное количество языков программирования, из которых только некоторые можно считать пригодными для обучения программированию. Это такие языки как RUbasic, MS Small Basic, BASIC, Pascal, Fortran, C. Эти языки отличаются четкостью, простотой и легкостью восприятия текстов программ. Кроме того, существует ряд более сложных языков, которые в настоящее время уверенно лидируют по различным параметрам (скорости, функциональности, эффективности, удобству): C, C++, C#, Java, Java Script, PHP. Также есть просто популярные языки программирования, например, популярность Python обусловлена исключительно мощнейшей PR-компанией, организованной в своё время Google для продвижения на рынок этого языка. В настоящее время Python, так как он раскручен, зачастую предлагается в качестве учебного языка программирования, что способно нанести немалый вред учащимся.
Если вы только начинаете учиться программированию, мы рекомендуем вам делать свои первые шаги, используя очень хороший и простой учебный язык программирования MS Small Basic. По этой ссылке вы найдете версию MS Small Basic для Windows, а также онлайн среду разработки MS Small Basic для работы в мюбом современном интернет-браузере с телефона, планшета или в любой операционной системе, отличной от MS Windows.
Для русскоговорящих учащихся мы рекомендуем RUbasic или сайт MS Small Basic по-русски, который содержит огромное количество материалов по программированию на MS Small Basic на русском языке.
Главное – не задерживаться слищшком долго на учебных языках программирования. Ваша задача – не оставаться учеником, а стать в итоге срециалистом. Поэтому будет очень неплохо, если изучив основы с MS Small Basic, вы затем откроете классический учебник Б.Кернигана и Д.Ритчи по языку С и затем пробежитесь по примерам из этого курса, написанным на С.
Форматы записи команд
Кроме того, что в каждом языке программирования есть свои правила, общие для всех программ в целом (для написания всех команд), для каждой команды в каждом языке программирования существуют свои собственные дополнительные правила, чётко определяющие, что и как может быть написано в этой команде. Возьмём уже рассмотренный нами пример программы на языке RUbasic.
В первой строке выполняется проверка условия – текущий цвет кошки сравнивается с двумя возможными значениями: черным и белым:
Если цвет_кошки = "черный" ИЛИ цвет_кошки = "белый" То
Такая команда проверки условия в этом языке обязательно должна начинаться со слова “Если“, за которым должно следовать проверяемое условие, которое может быть как простым (состоять из одного условия), так и составным (состоять из нескольких условий, соединенных между собой логическими операциями, в данном случае это операция “Логическое ИЛИ”), как в данном случае, и завершаться такая команда должна словом “То“. Все элементы данной команды должны разделяться пробелами. Это описание называется форматом данной команды.
Аналогичную команду, разумеется с учётом всех правил можно написать на любом другом языке программирования, например, на C:
if(cat_color == "black" || cat_color == "white")
Эта строка в принципе очень похожа на предыдущую. Здесь формат записи другой, но эта команда будет делать всё то же самое, что и предыдущая, только с учетом того, что это совсем другой язык программирования.
Текст программ, несмотря на то, что это текст, а не числовые процессорные (машинные) коды, по традиции часто называют кодом, а программистов низкого уровня, вбивающих этот код – кодерами.
Довольно часто невеждами в качестве языков программирования называются HTML и CSS. На самом деле это языки разметки и форматирования документов, которые к программированию не имеют никакого отношения… 🙂
Итак:
- Язык программирования – это удобочитаемый способ записи процессорных команд, близкий к естественному языку и к математическим записям.
- Чтобы выполнить программу, написанную на языке программирования, её нужно преобразовать в команды процессора.
- Текст программы обычно записывается построчно: в каждой строке – одна команда.
- Команда языка программирования – это одна простая операция, выполняемая компьютером.
- Каждый язык имеет свои правила записи команд.
- Правила записи команды называют её форматом.
На следующем уроке мы познакомимся со вторым важнейшим понятием в программировании, мы узнаем, что такое данные.
Поделиться: