Система програмування (programming system) - 1) те ж що й інструментальна система; 2) система автоматичного програмування, що складається з мови програмування, компілятора або інтерпретатора програм, які написані на цій мові, відповідної документації, а також допоміжних засобів для підготовки програм до виконання;
Інструментальна система (development environment) — комплекс програмних або програмних і технічних засобів, який використовується фахівцями з програмування як інструмент для розробки програмного забезпечення (програм, програмних комплексів та систем тощо). 

Мова програмування — формальна мова представлення програм для системи програмування.

Мови програмування низького рівня 
Мови програмування низького рівня орієнтовані на конкретний тип процесора і враховують його особливості. 

 Переваги

з допомогою мов низького рівня створюються ефективні і компактні програми, оскільки розробник отримує доступ до всіх можливостей процесора. 

 Недоліки

Програміст, що працює з мовами низького рівня, має бути високої кваліфікації, добре розуміти будову комп’ютера. 

Отримана програма не може бути перенесена на комп’ютер з іншим типом процесора. 

Мови низького рівня, як правило, використовують для написання невеликих системних додатків, драйверів пристроїв, модулів стиків з нестандартним обладнанням, коли найважливішими вимогами є компактність, швидкодія і можливість прямого доступу до апаратних ресурсів.

Асемблер 

Мови програмування високого рівня можна сказати є зрозумілішими людині, ніж комп'ютеру. Особливості конкретних комп’ютерних архітектур в них не враховуються, тому створені програми легко переносяться з комп’ютера на комп’ютер, де встановлено транслятор цієї мови. Розробляти програми на таких мовах значно простіше і помилок допускається менше. 
 Фортран 
 Кобол 
 Алгол 
 Pascal 
 Java 
 C 
 C++ 
 C# 
 Objective C 
 SmallTalk 
 J++ 
 Delphi

П’ять поколінь мов програмування  

 1 покоління 

початок 1950-х років – мови перших комп’ютерів. Перша мова асемблера, створена за принципом “одна інструкція – один рядок”. 

 2 покоління 

кінець 1950-х – початок 1960-х р.р. Розроблено символьний асемблер, в якому з’явилося поняття змінної. Це перша повноцінна мова програмування. 

 3 покоління 

1960-ті рр. – мови програмування високого рівня. Їхні характеристики: 
 відносна простота; 
 незалежність від конкретного комп’ютера; 
 можливість використання потужних синтаксичних конструкцій. 

Простота мов дає змогу писати невеликі програми і людям, які не є професійними програмістами. 

 4 покоління 

початок 1970-х рр. дотепер. Створюються мови, призначені для реалізації крупних проектів. Проблемно-орієнтовані мови, що оперують конкретними поняттями вузької галузі. Як правило, в такі мови вбудовують потужні оператори, що дозволяють одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні-тисячі рядків початкового коду. 

 5 покоління 

з середини 1990-х рр. – досі. Це системи автоматизованого проектування програмного забезпечення (САПР ПЗ). Створення прикладних програм, редакторів, САПРів для людей, які не знайомі з програмуванням: Word, Excel, PcAD, OrCAD, PSPICE, MathCad, ACAD і т. д. 

Компілятор ( від  збирати в ціле) - комп'ютерна програма (або набір к. програм), що перетворює (компілює) програмний код, написаний певною мовою програмування (мова джерела, англ. source language), на семантично еквівалентний код в іншій мові програмування (мова цілі, англ. target language). Що, як правило, є необхідним для виконання програми на машині, наприклад: на комп'ютері. 

Коротко компілятор можна визначити, як програма або технічний засіб, що виконує компіляцію. 

Історично компілятором називалась програма що зв'язувала підпрограми, чим й зумовлено походження слова. Сьогодні це завдання виконує консолідатор або лінкер (). 

Для того щоб бути виконаною програма не завжди повинна бути перекладена К., існує також інший принцип: Інтерпретатор (). 

Компілятор – це програма, що читає програму записану початковою мовою і записує цільовою мовою. Цей процес називають компіляцією (трансляцією, перекладом). Він складається з двох частин 

Аналіз (parsing) – розбиття початкової програми на складові частини та створення проміжного представлення 

Синтез – побудова цільової програми з проміжного представлення 

Початкова мова визначається її синтаксисом – описом того, з яких конструкцій складається мова, та семантикою – набором правил, що визначають суть цих конструкцій. 

Програмування