Введение в программирование

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

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

Для большего облегчения работы с контроллером используются так называемые языки программирования высокого уровня. Каждая команда такого языка преобразуется в определённую последовательность команд на ассемблере. Такой процесс преобразования называется компиляция, а программа которая делает его — компилятор.

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

Из чего же состоит синтаксис языка программирования?

1. Зарезервированные (ключевые) слова.

Эти слова — команды уже встроены в язык программирования. И компилятор знает в какую последовательность команд контроллера преобразовать то, или иное слово. Такие слова чаще всего называют операторы языка программирования. В качестве примера таких слов — операторов можно привести int , if , while и многие другие. Далее в нашем курсе Вы с ними обязательно познакомитесь.

Зарезервированные слова

2. Идентификаторы.

Идентификаторы придумывает сам программист для своего удобства, с помощью них он может давать имена своим переменным и функциям. Можно использовать любое имя, которое будет укладываться в следующие правила:

  • название идентификатора не должно быть зарезервированным словом
  • идентификатор может состоять только из латинских букв (нижнего или верхнего регистра), цифр или символов подчёркивания
  • идентификатор должен начинаться с буквы (нижнего или верхнего регистра, то есть прописной или заглавной буквы) или нижнего подчёркивания. Он не может начинаться с цифры.
  • учитывайте, что верхний и нижний регистр, с точки зрения языка программирования Arduino, это совершенно разные символы. Например, name, Name, NAME — это совершенно разные идентификаторы.

3. Круглые скобки.

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

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

Эта функция выводит данные в COM-порт. Она содержит целый набор команд, написанных профессиональным программистом, а Вы, указывая имя функции и круглые скобки после неё, даёте компилятору понять, что надо найти эту функцию, и вместо неё подставить последовательность кода, которая в ней написана.

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

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

Если скобки находятся не после идентификатора, то они просто меняют последовательность действий, как в математике:

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

Но если мы напишем случайно:

То в этом случае компилятор будет думать, что х(x-2) — это функция и выдаст ошибку.

Круглые скобки

4. Фигурные скобки.

Фигурными скобками в программировании обозначается некоторый блок кода. Например, данная конструкция указывает начало и конец кода, который будет выполняться в setup :

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

Фигурные скобки

5. Символ ; (точка с запятой).

Этот символ указывает конец текущей команды. Ставится после любой команды, за исключением тех, которые используют блоки кода. То есть этот символ можно не ставить после фигурных скобок. Ещё этот символ не ставится после специальных команд, начинающихся со знака #, такие команды называются директивы компилятора.

Символ ;

6. Символ #

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

В качестве примера можно привести директиву:

Данная запись означает, что перед тем, как компилировать программу, нужно найти все места, где встречается надпись LED, и заменить на число 4. Это очень удобно для программиста, так как не придётся запоминать что LED (так называют светодиод) находится на 4 порту. Можно просто придумать имя, и указать компилятору, что перед компиляцией надо это имя заменить на число 4. То есть после этой директивы записи:

будут абсолютно аналогичны. Символ #

7. Комментарии.

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

Комментарии бывают двух видов: однострочный и многострочный.

Однострочный комментарий начинается с символов // и всё, что написано после них компилятор игнорирует до конца текущей строки, например:

Многострочный комментарий начинается с симолов /* и заканчивается символами */

Например:
/* Здесь я начинаю многострочный комментарий.
Здесь я продолжаю его.
А вот здесь заканчиваю! */

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


Источник: eryoma.info