Покоління мов програмування
Перші мови програмування були дуже примітивними і це були машинні коди - машинні мови, що дозволяли задавати назви команд у символічному вигляді і вказувати числа в двійковому, шістнадцятковому й десятковому форматах. Процес програмування був складним і передбачав запис програмістом усіх алгоритмів безпосередньо машинною мовою.
Першим кроком на шляху до полегшення завдань програмування була відмова від використання цифр для запису команд і операндів безпосередньо в тій формі, у якій вони використовуються в машині. З цією метою при розробці програм стали широко застосовувати мнемонічний запис різних команд замість їхнього шістнадцяткового представлення ( асемблерні мови). Програми, написані мовою асемблеру, є принципово машинно-залежними, тобто команди в цих програмах виражаються в термінах певних машинних атрибутів. Програму мовою асемблеру досить складно виконати на іншій машині, оскільки для цього її потрібно переписати з урахуванням нової конфігурації регістрів і набору команд.
З'явилася необхідність у мовах програмування високого рівня і були сформульовані вимоги до таких мов, основна з яких така: мова має бути близькою до тих фрагментів природних мов, які забезпечують конкретну предметну галузь діяльності людини.
Виходячи з такого підходу, у 60-х роках з'явилися мови програмування третього покоління, що відрізнялися від попередніх поколінь тим, що їхні мовні конструкції мали вищий рівень і були машинно-незалежними.
Це універсальні мови високого рівня. Найбільш відомими прикладами ранніх мов третього покоління є FORTRAN (FORmula ТRANslation – перекладач формул), розроблений під керівництвом Дж. Бекуса 1960 р., яка була призначена для наукових і інженерних розрахунків, і СОВОL ( мова загального призначення ділової орієнтації), розроблена у 1960 р. фахівцями військово-морського флоту США для розв'язання економічних задач, АLGOL, розроблений міжнародною робочою групою.
З появою мов програмування третього покоління мета забезпечення
машинної незалежності програм була в основному досягнутою. Оскіль
ки оператори в мовах третього покоління не прив'язані до особливостей
якоїсь конкретної машини, вони легко можуть бути скомпільовані на
будь-якому комп'ютері. Теоретично програма, написана мовою третього
покоління, може бути виконана на будь-якій машині використанням
відповідного компілятора.
Насправді не все так просто. При розробці самого компілятора доводиться враховувати певні обмеження, що накладаються тією машиною, для якої він призначений
Проблема переносу програм з однієї машини на іншу полягає у відсутності спільної точки зору на те, що саме вважати стандартом цієї мови програмування. У зв'язку з цим Американський національний інститут стандартів (АNSI) і Міжнародна організація з стандартизації (ІSO) прийняли стандарти для багатьох популярних мов програмування. В інших випадках застосовуються неформальні стандарти, що є наслідком популярності того чи іншого діалекту мови, а також бажання багатьох розробників компіляторів створювати продукти, сумісні з іншими, подібними до них.