І. Опрацюйте теоретичний матеріал:
Мова програмування, як і будь-яка інша мова, має такі складові:
набір символів, з яких утворюють слова та речення цієї мови – алфавіт;
сукупність спеціальних слів, які мають однозначне пояснення та застосування – словник;
систему правил складання базових конструкцій мови – синтаксис;
правила семантики, що пояснюють, яке смислове значення має опис кожної з вказівок програми і які дії повинен виконати комп’ютер під час виконання кожної з таких вказівок.
Синтаксис мови програмування визначає те, як буде виглядати програма на цій мові, зокрема, як пишуться оператори, оголошення і інші мовні конструкції.
Перші комп’ютери доводилось програмувати двійковими машинними кодами. Проте програмувати таким чином — доволі трудомістке і важке завдання. Для спрощення цього завдання почали з’являтися мови програмування низького рівня, які дозволяли задавати машинні команди в зрозумілішому для людини вигляді. Для перетворення їх у двійковий код були створені спеціальні програми — асемблери.
Прикладом мови низького рівня є мова асемблера. Мови низького рівня орієнтовані на конкретний тип процесора і враховують його особливості, тому для перенесення програми на асемблері на іншу апаратну платформу її потрібно майже цілком переписати. Певні відмінності є і в синтаксисі програм під різні компілятори. Щоправда, центральні процесори для комп’ютерів фірм AMD та Intel практично сумісні і відрізняються лише деякими специфічними командами. А ось спеціалізовані процесори для інших пристроїв, наприклад, відеокарт, телефонів містять суттєві відмінності.
Переваги:
За допомогою мов низького рівня створюють ефективні і компактні програми, оскільки розробник отримує доступ до всіх можливостей процесора.
Недоліки:
– Програміст, що працює з мовами низького рівня, має бути високої кваліфікації, добре розуміти будову мікропроцесорної системи, для якої створює програму.
– Результуюча програма не може бути перенесена на комп’ютер або пристрій з іншим типом процесора; часто труднощі виникають і при перенесенні програми для іншої операційної системи.
– Значний час розробки великих і складних програм.
Мови низького рівня, як правило, використовують для написання невеликих системних програм, драйверів пристроїв, модулів стиків з нестандартним обладнанням, програмування спеціалізованих мікропроцесорів, коли найважливішими вимогами є компактність, швидкодія і можливість прямого доступу до апаратних ресурсів.
Мови програмування високого рівня (транслятори) поділяються на:
– компілятори — перетворюють текст програми в машинний код, який можна зберегти і після цього використовувати уже без компілятора (прикладом є виконувальні файли з розширенням *.exe).
– інтерпретатори — перетворюють частину програми в машинний код, виконують і після цього переходять до наступної частини. При цьому щоразу при виконанні програми використовується інтерпретатор.
Можна сказати, що мови програмування високого рівня є зрозумілішими людині, ніж комп’ютеру. Особливості конкретних комп’ютерних архітектур в них не враховуються, тому створені програми легко переносяться з комп’ютера на комп’ютер. Здебільшого достатньо просто перекомпілювати програму під певну комп’ютерну архітектурну та операційну систему. Розробляти програми на таких мовах значно простіше і помилок допускається менше. Значно скорочується час розробки програми, що особливо важливо при роботі над великими програмними проектами.
Наразі у середовищі розробників вважається, що мови програмування, які мають прямий доступ до пам’яті та регістрів або мають асемблерні вставки, потрібно вважати мовами програмування з низьким рівнем абстракції. Тому більшість мов, які вважалися мовами високого рівня до 2000-го року зараз вже такими не вважаються.
Недоліком мов високого рівня є більший розмір програм порівняно з програмами на мові низького рівня. Сам текст програм на мові високого рівня менший, проте, якщо взяти у байтах, то код початково писаний на асемблері буде компактніший. Тому в основному мови високого рівня використовуються для розробок програмного забезпечення комп’ютерів, і пристроїв, які мають великий обсяг пам’яті. А різні підвиди асемблеру застосовуються для програмування інших пристроїв, де критичним є розмір програми.
За технологією програмування розрізняють:
процедурні мови – програма, складається із набору підзадач (процедур), які реалізують завдання;
об’єктно-орієнтовні – головними елементами алгоритму є клас – новий тип даних, що розширює мову, й об’єкт, що має властивості та методи – дії, які виконуються об’єктом;
декларативні – мови створення програм зі штучним інтелектом;
мова скриптів (мова сценаріїв) – мова, розроблена для запису «сценаріїв» – послідовностей команд, які користувач може виконувати на комп’ютері.
Транслятор – програма, яка записує команди програми, описаної деякою мовою програмування, машинною мовою.
Компілятор зчитує одразу всю програму й переписує її машинним кодом або мовою асамблер. Процес трансляції, який при такому підході називають компіляцією, відбувається один раз, і результат перекладу зберігається в окремому файлі.
Інтерпретатор зчитує вихідний код програми по одній команді й одразу намагається їх «перекладати» та виконувати. Це дає змогу програмісту швидше перевіряти правильність виконання програми та знаходити помилки в коді.
Середовище програмування – це комплекс програм, що містить засоби автоматизації процесів підготовки та виконання програм користувача, а саме:
1) редактор текстів програм – у ньому можна створювати й редагувати текст програми;
2) довідково-інформаційну систему про мову програмування та середовище;
3) бібліотеки, у яких зберігаються найбільш уживані фрагменти програм або цілі програми;
4) компілятор чи інтерпретатор, використання якого дає змогу швидко знайти в програмі помилку та виправити її;
5) покроковий «виконавець» програми.
Python (найчастіше вживане прочитання — «Па́йтон», запозичено назву з британського шоу Монті Пайтон) — інтерпретована об’єктно-орієнтована мова програмування високого рівня зі строгою динамічною типізацією. Розроблена в 1990 році Гвідо ван Россумом. Структури даних високого рівня разом із динамічною семантикою та динамічним зв’язуванням роблять її привабливою для швидкої розробки програм, а також як засіб поєднування наявних компонентів. Python підтримує модулі та пакети модулів, що сприяє модульності та повторному використанню коду. Інтерпретатор Python та стандартні бібліотеки доступні як у скомпільованій, так і у вихідній формі на всіх основних платформах. В мові програмування Python підтримується кілька парадигм програмування, зокрема: об’єктно-орієнтована, процедурна, функціональна та аспектно-орієнтована.
В попередньому прикладі ми працювали з Python в інтерактивному режимі. Ми ввели команду (директиву), і інтерпретатор Python її тут же виконав.
Виконати команду, директиву або програму означає те ж саме, що і «запустити» її.
В оболонці Python можна множити, додавати, віднімати і ділити числа, а також здійснювати деякі інші операції. Символи, за допомогою яких виконуються математичні дії в мові Python, називаються операторами. Основні математичні оператори перераховані в таблиці: