Мова програмування – один із способів запису алгоритмів; сукупність набору символів системи, правил утворення і тлумачення конструкцій із символів для завдання алгоритмів з використанням символів природної мови.
Мови програмування –
штучні мови. Вони відрізняються від природних людських мов малою кількістю
слів, значення яких зрозуміло виконавцю (ці слова називаються ключовими ), і
досить жорсткими вимогами по формі запису операторів (сукупність цих вимог
утворює граматику синтаксис мови програмування). Порушення форми запису
призводять до того, що виконавець не може правильно виконати переклад та видає
повідомлення про помилку.
Що ж потрібно, щоб «створити мову
програмування»?
На це запитання відповідають Мацекула Данило та Ярцев Олеександр.
На це запитання відповідають Мацекула Данило та Ярцев Олеександр.
На перший погляд, для цього необхідно
визначити які інструкції у ньому можуть використовуватися (їх називають
операторами ), жорстко затвердити список ключових слів, які допустимо
використовувати і розробити правила запису кожного з операторів (правила
синтаксису). Проте цього не достатньо. Це лише ідея мови програмування. Для
того, щоб вона мала практичне застосування, слід розробити програму, здатну
транслювати текст, записаний за всіма правилами цієї мови в машинний код, тобто
створити транслятор. Таким чином, саме транслятор являє собою конкретну реалізацію
ідеї мови програмування.
За принципом дії розрізняють два типи
трансляторів: компілятори інтерпретатори. Відповідно з цим можна виділити два
класи мов програмування: компеліровані та інтерпретовані.
Трансляція – це переклад. Якщо ми
подивимося, як працюють перекладачі з іноземних мов, то теж побачимо, що існує
два підходи: синхронний переклад та
переказ текстів.
Синхронний перекладач «ловить» почуту фразу
і переводить її ,як можна ближче до глузду. У момент перекладу він не знає, яка
фраза буде далі, і не встигає враховувати фрази, висловлені раніше. Він як би в
будь-який момент часу працює з однією конкретною фразою. Для перекладу
будь-яких специфічних понять йому доводиться вибудовувати цілі конструкції.
Фрази синхронного перекладу зазвичай довше, ніж їхні оригінал, і не
відрізняються витонченістю.
Літературний перекладач спочатку кілька
разів прочитає весь текст, що підлягає перекладу. Він заздалегідь знайде в
ньому все особливо складні для перекладу місця, побудує потрібні конструкції і
буде ними користуватися всякий раз, коли виникне необхідність. При перекладі
однієї конкретної фрази перекладач повинен враховувати особливість всієї книги
в цілому і навіть особливості інших творів того ж автора.
Інтерпретатори працюють як синхронні
перекладачі. Вони беруть один оператор програми, транслюють його в машинний код
(або в якийсь проміжний код, близький до машинного коду) і виконують його. Якщо
якийсь оператор багаторазово використовується в програмі, інтерпретатор всякий
раз буде сумлінно виконувати його переклад так, ніби зустрів його вперше.
Компілятори обробляють програму в кілька
прийомів. Спочатку вони кілька разів переглядають вихідний текст ( він
називається вихідним кодом), знаходять спільні місця, виконують перевірку на
відсутність помилок синтаксису та внутрішніх суперечностей, і лише потім
перекладають текст в машинний код. В результаті програма виходить компактною та
ефективною.
Якщо програма написана на інтерпретованій
мові програмування, то її можна виконати тільки на тому комп’ютері, на якому
попередньо був встановлений інтерпретатор, адже він повинен брати участь у
виконанні програми. Програми, написані на компелірованих мовах
програмування, посередників не
потребують. Після компіляції вже отримано машинний код, в якому є всі необхідне
для роботи процесора. Тому такі програми працюють на будь-якому комп’ютері і
роблять це в сотні разів швидше. Це гідність компелірованих мов програмування.
Існує два рівні мов програмування: мови
низького рівня та мови високого рівня.
Мова програмування низького рівня – це мова
програмування, створена для використання зі спеціальним типом процесора і
враховує його особливості. В даному випадку «низький рівень» не означає
«поганий». Мається на увазі, що мова близька до машинного коду (він дозволяє
безпосередньо реалізувати деякі команди процесора).
Гідністю мов низького рівня є те, що з їх
допомогою створюють найефективніші програми (короткі і швидкі). Недолік таких
мов у тому, що їх важко вивчати із-за необхідності розуміти пристрій процесора
і в тому, що програма, створена на такому мову, непридатна для процесорів інших
типів.
До мов низького рівня належать мови Асемблера.
Свою назву вони отримали від імені системної програми Асемблер, яка перетворює
вихідні програми, написані на таких мовах, безпосередньо в коди машинних
команд. Термін «асемблер» походить від англійського слова assembler –
складальник частин в одне ціле. Частинами тут служать оператори, а результатом
складання – послідовність машинних команд.
Мови програмування високого рівня помітно
простіші у вивченні і застосуванні. Програми, написані з їх допомогою, можна
використовувати на будь-якої комп’ютерної платформи, щоправда, за умови, що для
неї існує транслятор цієї мови. Ці мови взагалі ніяк не враховують властивості
конкретного процесора і не надають прямих засобів для звернення до нього. У
деяких випадках це обмежує можливості програмістів, але зате і залишає менше
можливостей для здійснення помилок.
Мови високого рівня в більшою мірою
орієнтовані на людину; команди цих мов – зрозумілі людині англійські слова. Чим
вище рівень мови, тим більше доводиться проробити операцій для виконання
потрібної команди.
З появою мов високого рівня програмісти
отримали можливість більше часу приділяти вирішенню конкретної проблеми, не
відволікаючись особливо на дуже тонкі питання організації самого процесу
виконання завдання на машині. Крім того, поява цих мов ознаменувало перший крок
на шляху створення програм, які вийшли за межі науково-дослідних лабораторій і
фінансових відділів.
Немає коментарів:
Нові коментарі наразі не дозволено.