Python: Урок 1. Історія мов програмування. Компіляція та інтерпретація


Програма. Мова програмування

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

Зазвичай прийнято програмувати не людей, а обчислювальні машини, використовуючи при цьому спеціальні мови. Використання особливих мов викликано тим, що машини не в змозі розуміти наші (людські) мови. Для "інструктування" машин призначені різноманітні мови програмування, які характеризуються синтаксичною однозначністю (наприклад, в них не можна міняти місцями певні слова) і обмеженістю (строго певний набір слів і символів).

Основні етапи розвитку мов програмування

Перші програми писалися на машинній мові, тому що для ЕОМ того часу ще не існувало розвиненого програмного забезпечення, а машинна мова – це єдиний спосіб взаємодії з апаратним забезпеченням комп'ютера. Кожну команду машинної мови безпосередньо виконує тей чи інший електронний пристрій. Дані і команди програмісти записували в цифровому вигляді (наприклад, в шістнадцятковій або двійковій системах числення). Зрозуміти програму на такій мові дуже складно, крім того, навіть невелика програма складалась з безлічі рядків коду. Ситуація ускладнювалася ще й тим, що кожна обчислювальна машина розуміє лише свою машинну мову.

Людям, на відміну від машин, більш зрозумілі слова, ніж набори цифр. Прагнення людини оперувати словами а не цифрами призвело до появи асемблерів. Це мови, у яких замість чисельного позначення команд і областей пам'яті використовуються словесно-буквені.

При цьому з'являється проблема: машина не в змозі зрозуміти набори букв. Необхідний якийсь перекладач на її рідній машинній мові. Тому, починаючи з часів асемблерів, під кожну мову програмування створюються транслятори – спеціальні програми, що перетворюють програмний код з мови програмування на машинний код. Асемблери на сьогоднішній день продовжують використовуватися (в системному програмуванні - низькорівневі інтерфейси операційних систем, частини драйверів та ін.)

Після асемблерів почались розвиватись мови так званого високого рівня. Для цих мов знадобилося розробляти більш складні транслятори, тому що мови високого рівня набагато більш зручні для людини, але відповідно менш зрозумілі для обчислювальної машини. На відміну від асемблерів, які залишаються прив'язаними до своїх типів машин, мови високо рівня володіють переносимістю. Тобто, написавши один раз програму, програміст міг виконати її на будь-якій машині.

Наступним значущим кроком була поява об'єктно-орієнтованих мов програмування. За допомогою таких мов програміст як би оперує віртуальними об'єктами. На сьогоднішній день, реалізація великих і складних проектів здійснюється в основному за допомогою об'єктно-орієнтованого програмування.


Розмаїття мов програмування

На сьогоднішній день існує величезна кількість мов програмування, які і розрізняються і схожі між собою. Причина такого явища стає зрозуміла, якщо уявити ту кількість і різноманітність завдань, які на сьогоднішній день вирішується за допомогою обчислювальної техніки. Для вирішення різних завдань потрібні різні інструменти (тобто мови програмування).

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

Все існуюче різноманіття мов можна умовно класифікувати за різними критеріями. Наприклад, за типом розв'язуваних завдань (мови системного або прикладного призначення, мови для web-розробки та ін.)

Трансляція

Раніше було сказано, що для перекладу коду з однієї мови програмування (наприклад, мови високого рівня) на іншу (наприклад, машинну мову ) потрібна спеціальна програма - транслятор.

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

При компіляції весь вихідний програмний код (той, який пише програміст) відразу переводиться в машинний. Створюється так званий окремий виконуваний файл, який ніяк не пов'язаний з вихідним кодом. Виконання виконуваного файлу забезпечується операційною системою.

При інтерпретації виконання коду відбувається послідовно (можна сказати, рядок за рядком). Операційна система взаємодіє з інтерпретатором, а не вихідним кодом.

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

Зміст курсу

Вступ
Урок 1. Історія мов програмування. Компіляція та інтерпретація
Урок 2. Знайомство з Python і середовищами програмування
Урок 3. Типи даних в програмуванні. Визначення змінної
Урок 4. Логічні вирази
Урок 5. Умовний оператор. Інструкція if
Урок 6. Множинне розгалуження
Урок 7. Цикл while
Урок 8. Введення даних з клавіатури
Урок 9. Рядки як послідовності символів
Урок 10. Списки - змінювані послідовності
Урок 11. Cловники
Урок 12. Цикл for
Урок 13. Функції
Урок 14. Параметри і аргументи функцій. Локальні та глобальні змінні
Урок 15. Перевірочна робота з основ програмування на Python

Коментарі

Популярні дописи з цього блогу

Азбука Морзе Українською

Python: Урок 4. Логічні вирази

Python: Урок 3. Типи даних в програмуванні. Визначення змінної