Створенням мов програмування займаються професіонали Нодалеко не кожне їхнє творіння знаходить путівку в життя Одні мови занадто складні по синтаксису, інші – вузькоспеціалізовані, треті – з працею зрозумілі навіть самим їх авторам Приємний виняток становить мову Сі, запропонований в 1972 р співробітником фірми Bell Деннісом Рітчі (Dennis Ritchie) Чому «Сі» Тому що прообразом для нього послужив мова програмування «Бі», який розробив Кен Томпсон в 1970 р

Сі відноситься до мов високого рівня, подібно Fortran, Lisp, Logo Спочатку він був орієнтований на середу Unix, системних програмістів і мінікомпютери З появою MK розробники звернули увагу на те, що Сі має у своєму складі засоби, характерні як для прикладного програмування, так і для машинного Ассемблера

Симбіоз високорівневою логіки і простого доступу до «заліза» виявився як не можна до речі Пізніше, при створенні нових мікроконтролерних сімейств, в їх архітектуру стали вводити вузли, які на апаратному рівні допомагали оптимізувати і прискорювати Сі-програми Зокрема, це родини Atmel ATmega, Atmel ATtiny, Microchip PIC18, Microchip dsPIC і багато інших

Справедливості заради треба відзначити, що в даний час програми для MK пишуться на багатьох мовах – від Java і Forth до Python і Ada Однак саме Сі став на практиці міжнародним стандартом «де-факто» Особливості його синтаксису дозволяють створювати короткий і швидко виконуваний код Крім того, Сі має властивість мультіплатформенності, тобто програма, складена для одного типу MK, з невеликими правками та корекціями буде запускатися на зовсім інший микроконтроллерной платформі

В ідеальному випадку радіоаматор повинен знати, як мінімум, дві мови – і Асемблер, і Сі Однак часто буває, що «обпікшись» на вивченні заплутаних асемблерних інструкцій і на складанні довгих асемблерних лістингів, у користувача опускаються руки і пропадає всяке бажання взагалі займатися програмуванням

Для цієї категорії читачів, а також для тих, хто починає «з нуля», пропонується інша методика А саме, вивчити основи мови Сі і виробити свій стиль програмування з використанням обмеженого числа простих і зрозумілих операторів «Усічений» Сі буде чимось схожий на Basic і Pascal, приблизно так, як схожі між собою російська, українська і білоруська мови До того ж від Асемблера ніхто не закликає відмовлятися, адже з набуттям досвіду його коди можна з успіхом вставляти в будь Сі-програми

Класифікація програмістів

Програмістів можна умовно розділити на наступні категорії

1              Системні програмісти – займаються розробкою операціоннихсістем, бібліотечних функцій, системних додатків, антивірусних програм Робочі мови – Сі / С + +, Асемблер, Ada і будь-які інші відомі

2              Ігро будівельники – займаються проектуванням компютерних ігор, атакож ігрдля мобільнихтелефонов, КПК Робочі мови – С + +, Delphi, Java

3              Web-програмісти – займаються оформленням сайтів, розробкою веб додатків, підтримкою ftp-і mail-серверів, форумів, інтернет-служб Робочі мови – HTML, XML, PHP, PeR1, ASP, JScript, SQL

4              Офісні програмісти – займаються створенням і супроводом офісних додатків, бухгалтерських програм, баз даних, презентацій Робочі мови – FoxPro, Postgree, OraC1e, lC, Visual Basic

5              Прикладні програмісти – це фахівці широкого профілю, розробляють програми для внутрішнього користування і додатки, що забезпечують звязок компютера із зовнішнім світом, у тому числі на мережевому рівні Робочі мови – Сі / С + +, Асемблер, Python, RSX, ProLog, SmallTalk, LISP

6              Програмісти-«ембеддери» – це фахівці в області вбудованих систем Займаються складанням і налагодженням програм для MK і ПЛІС Робочі мови – Сі / С + +, Асемблер, AHDL, VHDL, Verilog Широко використовують компютерне моделювання В ідеалі повинні розбиратися в «залізною» електроніці і вміти спаяти макет пристрою

Радіоаматор, який планує досконало освоїти MK, повинен прагнути стати кваліфікованим програмістом-«ембеддером» і тлумачним компютерним програмістом І в тому, і в іншому випадку для вивчення згодиться один загальний алгоритмічний мова – це Сі

Правила успішного програмування

Програмісти-практики виробили короткий звід правил (кодекс):

• програма повинна робити одну річ і робити її добре

• треба прагнути до того, щоб декілька програм працювали разом

• витончені алгоритми схильні до помилок і виконуються повільніше

• якщо сумніваєтеся, то використовуйте перебір всіх можливих комбінацій

• добийтеся стабільної роботи програми і тільки потім оптимізуйте її

• пишіть програми, які б становили програми за вас

• памятайте, що ясність краще заумності

Джерело: Рюмік, С М, 1000 і одна мікроконтролерна схема Вип 2 / С М Рюмік – М: ЛР Додека-ХХ1, 2011 – 400 с: Ил + CD – (Серія «Програмовані системи»)