Граматика мов програмування
Граматика мов програмування складається з опису їх алфавітів. Алфавіт будь-якої мови складається з фіксованого набору символів, які однозначно трактуються. Алфавіт мов програмування, зазвичай, пов'язаний з літерами клавіатури друкарської машинки. Клавіатури персональних комп'ютерів близькі до них за наявністю літер.
Незважаючи на значні відмінності між мовами програмування, низка фундаментальних понять граматики мов програмування у більшості схожі. Наведемо частину цих понять.
Оператор – одне з провідних понять усіх мов програмування (теоретично, за винятком суто декларативних; але насправді вони використовують споріднене поняття). Кожен оператор є закінченою фразою мови і визначає етап обробки даних, що однозначно трактується. Відповідно до теорії алгоритмів виділяють основні (базисні) оператори мови програмування: присвоєння, умовний та безумовний перехід, порожній оператор. До похідних, не основних, відносять складовий оператор, оператор вибору, оператор циклу та оператор приєднання.
Оператори виконуються в порядку їхнього прямування в тексті програми. Лише за допомогою операторів переходу цей природний лад може бути порушений.
Більшість операторів у граматиці мов програмування веде обробку величин. Величини можуть бути постійними та змінними. Значення постійних величин не змінюються під час виконання програми. Величина характеризується типом, ім'ям та значенням. Найбільш поширені типи величин - числові (цілі та дійсні), символьні, логічні. Тип величини визначається її значенням. Інша важлива класифікація величин – прості та структуровані. Проста величина у кожний момент може мати не більше одного значення. Їй відповідає одна клітинка пам'яті або її еквівалент у зовнішній пам'яті комп'ютера. Структурована величина, маючи одне ім'я, може мати кілька значень. Ці значення є елементами (компонентами) величини. Найвідоміший приклад – масив, у якого елементи різняться за індексами (номерами).
Всім програмним об'єктам у граматиці мов програмування надаються індивідуальні <і>імена. Ім'я програмного об'єкта називають ідентифікатором. Найчастіше ідентифікатором є будь-яка кінцева послідовність літер та цифр, яка починається з літери. Деяким ідентифікаторам заздалегідь наказано певний зміст і їх називають стандартними, наприклад sin - це ім'я відомої математичної функції.
Описи або оголошення програмних об'єктів пов'язані в граматиці мов програмування з правилами обробки даних. Дані бувають різні і необхідно для кожного визначити його властивості. Наприклад, якщо даними виступає масив, необхідно задати його розмірність, межі індексів, тип елементів масиву. Описова частина граматики мов програмування є необхідною як для системних програмістів – розробників трансляторів, які повинні, зокрема, проводити синтаксичну та семантичну діагностику програм, – так і для прикладного програміста, якому оголошення програмних об'єктів часто полегшують процес розробки та налагодження програм.
Змінні відіграють найважливішу роль у граматиці мов програмування. Поняття "змінна" у мовах програмування відрізняється від загальноприйнятого в математиці. Змінна – це програмний об'єкт, здатний набувати певного значення за допомогою оператора присвоєння. Під час виконання програми значення змінної можуть змінюватися неодноразово. Кожна змінна після її опису ототожнюється з деяким осередком пам'яті, вміст якої є її значенням.
Семантичний зміст змінної у граматиці мови програмування полягає у зберіганні деякого значення, відповідного її типу (наприклад, змінна цілого типу може набувати значення довільного цілого числа), а також у виконанні з нею операцій пересилання до неї та вилучення з неї цього значення.
Функція – це програмний об'єкт, що визначає обчислювальну процедуру визначення значення, залежного від деяких аргументів. Вводиться у мови програмування заданням програмістом необхідних їй функціональних залежностей. У кожній мові високого рівня є бібліотека стандартних функцій: арифметичних, логічних, символьних, файлових і т.п.
Процедура – це програмний об'єкт, який представляє певний самостійний етап обробки даних. По суті, процедури з'явилися наступниками підпрограм, які були введені для полегшення розробки програм ще на ранніх стадіях формування алгоритмічних мов. Процедура має вхідні та вихідні параметри, які називаються формальними. У разі використання процедури формальні параметри замінюються на фактичні.
Модуль (Unit) – це спеціальна програмна одиниця, призначена для створення бібліотек та поділу великих програм на логічно зв'язані блоки.
По суті, модуль у граматиці мов програмування – це набір констант, типів даних, змінних, процедур та функцій. До складу модуля входять розділи: заголовок, інтерфейс, реалізація, ініціалізація.
