Алфавіт - це фіксований для даного мови набір основних символів, тобто "Букв алфавіту", з яких повинен складатися будь-який текст на цій мові - ніякі інші символи в тексті не допускаються.
Синтаксис - це правила побудови фраз, що дозволяють визначити, правильно чи неправильно написана та чи інша фраза. Точніше кажучи, синтаксис мови являє собою набір правил, що встановлюють, які комбінації символів є осмисленими пропозиціями на цій мові.
Семантика визначає смислове значення пропозицій мови. Будучи системою правил тлумачення окремих мовних конструкцій, семантика встановлює, які послідовності дій описуються тими чи іншими фразами мови і, в кінцевому підсумку, який алгоритм визначений за цим текстом на алгоритмічній мові.
Мови високого рівня діляться на:
Процедурні (алгоритмічні) мови призначені для однозначного опису алгоритмів. При вирішенні завдання процедурні мови вимагають в тій чи іншій формі явно записати процедуру її рішення.
Першим кроком у розвитку процедурних мов програмування була поява проблемно-орієнтованих мов. У цій назві відображений і той факт, що при їх розробці йдуть не від «машини», а «від завдання»: в мові прагнуть максимально повно врахувати специфіку класу задач, для вирішення яких його передбачається використовувати. Наприклад, для багатьох науково-технічних завдань характерні великі розрахунки за складними формулами, тому в орієнтованих на такі завдання мовах вводять зручні засоби їх записи. Використання понять, термінів, символів, звичних для фахівців відповідної галузі знань, полегшує їм вивчення мови, спрощує процес складання і налагодження програми.
Різноманітність класів задач привело до того, що на сьогоднішній день розроблено декілька сотень алгоритмічних мов. Правда, широке поширення і міжнародне визнання отримали лише 10-15 мов. Серед них в першу чергу слід відзначити: ФОРТРАН і АЛГОЛ - мови, призначені для вирішення науково-технічних завдань, КОБОЛ - для вирішення економічних завдань, БЕЙСІК - для вирішення невеликих обчислювальних задач в діалоговому режимі.
В принципі кожен з цих мов можна використовувати для вирішення завдань не свого класу. Однак, як правило, застосування виявляється не зручним.
У той же час в середині 60-х років почали розробляти алгоритмічні мови широкої орієнтації - універсальні мови. Зазвичай вони будувалися за принципом об'єднання можливостей вузько-орієнтованих мов. Серед них найбільш ізвестниPL / 1, PASCAL, C, C +. Модула, АДА. Однак, як будь-який універсальний засіб, такі широко-орієнтовані мови в багатьох конкретних випадках виявляються менш ефективними.
Логічні мови (Prolog, Lisp, Mercury, KLO і ін.) Орієнтовані не на запис алгоритму розв'язання задачі, а на систематичне і формалізований опис задачі з тим, щоб рішення випливало з складеного опису. У цих мовах вказується що дано і що потрібно отримати. При цьому пошук рішення задачі покладається безпосередньо на ЕОМ.
Об'єктно-орієнтовані мови (Object Pascal, C ++, Java, Objective Caml. І ін.). Керівна ідея об'єктно-орієнтованих мов полягає в прагненні зв'язати дані з обробними ці дані процедурами в єдине ціле - об'єкт. Характерною рисою об'єктів є інкапсуляція (об'єднання) даних і алгоритмів їх обробки, в результаті чого і дані, і процедури багато в чому втрачають самостійне значення. Об'єкти - це приховані модулі, чий зовнішній інтерфейс складається з набору операцій. Фактично об'єктно-орієнтоване програмування можна розглядати як модульне програмування нового рівня, коли замість багато в чому випадкового, механічного об'єднання процедур і даних акцент робиться на їх смислове зв'язок.
Програма на об'єктно-орієнтованої мови, вирішуючи деяку задачу, по суті описує частину світу, що відноситься до цього завдання. Опис дійсності в формі системи взаємодіючих об'єктів природніше, ніж в формі взаємодіючих процедур.