Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Урок засвоєння нових знань. Учень повинні знати: Поняття мови програмування та системи програмування

Скачати 203.9 Kb.

Урок засвоєння нових знань. Учень повинні знати: Поняття мови програмування та системи програмування




Скачати 203.9 Kb.
Дата конвертації09.04.2017
Розмір203.9 Kb.
ТипУрок

Урок 7                                                 Інформатика 10 (АП)

Мова програмування як один із способів представлення алгоритму.

Класифікація мов програмування.
Мета.  

Навчальна. ознайомити учнів з поняттям програми, мови програмування, системи програмування; розкрити призначення мов програмування та їх класифікацію.

Розвиваюча. Розвивати логічне та алгоритмічне мислення.

Виховна. Виховувати культуру оформлення

Тип уроку. Урок засвоєння нових знань.

Учень повинні знати:

  1. Поняття мови програмування та системи програмування.

  2. Класифікацію мов програмуванняпоняття моделі.

Матеріали для роботи з учнями:

  1. Мультимедійне обладнання;

  2. Презентація “Мови програмування”.

План

  1. Поняття про мови.

  2. Поняття про мови програмування.

  3. Класифікація мов програмування.

  4. Запитання до уроку.

  5. Домашнє завдання.

Хід уроку
1. Актуалізація опорних знань.

  1. Що ми називаємо алгоритмом?

  2. Які основні властивості алгоритмів ви знаєте?

  3. Які форми подання алгоритмів ви знаєте?

  4. Які існують базові структури алгоритмів?

Завдання. Записати в словесній формі алгоритм поділу відрізка пополам за допомогою олівця, лінійки і циркуля. Визначити тип цього алгоритму.

2. Вивчення нового матеріалу.

Поняття про мови програмування

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



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

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

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

Аспект (лат. aspectus - вигляд, погляд) - поняття філософії (онтології, теорії пізнання). У філософії аспект розглядається
Маши́нний код, маши́нна мова в інформатиці - набір команд (інструкцій), які виконуються безпосередньо центральним процесором комп'ютера без транслятора. Кожен тип центрального процесора має власний машинний код.
Апара́тне забезпе́чення (англ. hardware; сленг. залі́зо) - комплекс технічних засобів, який включає електронний пристрій і, зокрема, ЕОМ: зовнішні пристрої, термінали, абонентські пункти тощо, які необхідні для функціонування тієї чи іншої системи; фізична частина ЕОМ.
Другий шлях - це розробка програмного забезпечення, яке б дозволяло використовувати складні з точки зору комп'ютера, але більш зрозумілі з точки зору людини команди, як, наприклад, розгалуження та цикли. Але при цьому виникає необхідність створення спеціальних програм-перекладачів, функцією яких є перетворення програм із вхідної мови програмування в еквівалентні програми, що може виконати комп'ютер. Такі програми називаються трансляторами, мова про них буде йти далі. Саме другий шлях отримав активний розвиток.

На сьогоднішній день розроблена чимала кількість різних мов програмування. Окрім того ще відомі різні версії одних і тих самих мов програмування. Чим пояснюється така їх кількість? Чому не можна обійтися однією або принаймні декількома? Справа в тому, що на сьогоднішній день сфери використання комп'ютерів такі різноманітні і такі специфічні, що врахувати усі в одній мові просто неможливо. Тому кожна мова програмування орієнтована на певний клас задач. Для програмування економічних задач використовуються мови програмування dBase, Paradox, Clipper; для розрахункових задач досить скористатися можливостями мов Basic, Pascal; для доступу до більш «глибоких» можливостей комп'ютера бажано скористатися можливостями мов Асемблер та Сі.



Класифікація мов програмування

Існують різні класифікації мов програмування. Згідно найпоширенішої з них всі мови програмування поділяються на мови низького та високого рівня.



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

 До групи мов програмування низького рівня відносяться:



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


  • машинна мова, кожна команда якої описується послідовністю мікрокоманд;

  • асемблер - мова символічного кодування.

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

Всі мови програмування низького рівня орієнтовані на певний тип комп'ютерів і в цьому смислі спеціалізовані саме для них.



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

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

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

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

Однак існують класифікації і за іншими ознаками.

  Мови обчислювальні та логічні.



  • Обчислювальні використовуються для розрахункових задач. (Basic, Pascal.)

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

Мова Лісп створена в 1965 p. американським професором Джоном Маккарті для дослідження проблем штучного інтелекту і стала основою ряду програмних реалізацій інтелектуальних систем.
Джон Маккарті (англ. John McCarthy; 4 серпня 1927 року, Бостон, США - 24 жовтня 2011, Стенфорд) - американський інформатик та дослідник мислення, який вважається винахідником терміну «Штучний інтелект», який він вжив у своїх пропозиціях 1955 року до конференції в Дартмуті 1956, винахідник мови LISP.
На відміну від Ліспа Пролог - це європейська мова, яка базується на логічному численні. її розробив А.Колмерауер у 1972 р. в Марсельському університеті.

Мова програмування Pascal

Створена у 1970 р. професором, директором Інституту інформатики Швейцарської вищоҐ політехнічної школи Ніклаусом Віртом. Названа на честь відомого математика, автора однієї з перших механічних обчислювальних машин Блеза Паскаля (1623—1662).

Ні́клаус Вірт (нім. Niklaus Emil Wirth; *15 лютого 1934) - швейцарський програміст і теоретик програмування, професор, автор мови програмування Паскаль, лауреат Тьюрингівської премії. Вірт є автором багатьох широко відомих праць з програмування.
Блез Паска́ль (Блез - ім'я, Паскаль - прізвище, фр. Blaise Pascal; 19 червня 1623(16230619), Клермон-Ферран - 19 серпня 1662, Париж) - французький філософ, письменник, фізик, математик.

Існує також і «прикладна» класифікація мов програмування, яка вже була розглянута вище. Згідно з цією класифікацією всі мови програмування поділяють на групи за галузями застосування.



Процедурна мова програмування

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



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

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

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

В основі процедурних мов програмування закладені принципи структурного програмування. Розглянемо відомий вже нам приклад фрагмента алгоритму пошуку найбільшого спільного дільника:

while

х<>у do


if х>у then

х:=х-у


else

 у:=у-х;

Структурне програмування - методологія програмування (модель конструювання програмного забезпечення) запропонована в 1970-х роках голландським науковцем Дейкстрою (Edsger Wybe Dijkstra), була розроблена та доповнена Ніклаусом Віртом.
Найбі́льший спі́льний дільни́к (НСД) двох або більше невід'ємних цілих чисел - найбільше натуральне число, на яке ці числа діляться без остачі.


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

результаті, мають чітку і ясну структуру. В тексті програми така вкладеність чи підпорядкованість відображається зсувами рядків/



Ключовою ідеєю структурного побудови алгоритму відображення структури алгоритму в структурі

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



Логічне програмування

Ідея використання математичної логіки в якості мови програмування була запропонована Р.Ковальським в Англії на початку 70-х років XX століття. Логічне програмування виникло в основному завдяки успіхам в автоматичному доведенні теорем.

Логі́чне програмува́ння - парадигма програмування, а також розділ дискретної математики, що вивчає методи і можливості цієї парадигми, засновані на виведенні нових фактів з даних фактів згідно із заданими логічними правилами.
Математи́чна ло́гіка - розділ математики, що вивчає мислення за допомогою числень, застосовуючи математичні методи та спеціальний апарат символів. Предметом математичної логіки є математичні теорії в цілому, які вивчаються за допомогою логіко-математичних мов.
Автоматичне доведення (англ. Automated theorem proving) - доведення, реалізоване на програмному рівні. В основу покладено апарат математичної логіки. Використовуються ідеї теорії штучного інтелекту. Процес доведення базується на численні висловлень і логіці предикатів.

Основною метою математичної логіки є забезпечення певної системи формальних позначень для відображення міркувань. Одним з розділів математичної логіки є логіка висловлювань.

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

Основним елементом логіки висловлювань є висловлювання і операції над ними. В логіці висловлювань є тільки стверджувальні речення, які можуть бути істинні або хибні, а не і те і інше одночасно. Кожне таке стверджувальне речення називається висловлюванням. Наприклад, «Петренко є учень», «Іваненко вивчає інформатику». Із простих висловлювань можна будувати складені. Наприклад, «Петренко є учень і ходить до школи», «Якщо Іваненко ходить до школи, то він вивчає інформатику».

В логіці висловлювань використовується п'ять основних логічних операцій:

«Ні»        - заперечення;

«І»           - кон'юнкція;

«Або» -диз'юнкція;

«Якщо        то ...»             - висновок (імплікація);

«Тоді і тільки тоді»          - еквівалентність.



Логічне програмування - це запис задачі мовою математичної логіки у вигляді набору висловлювань, відношень між висловлюваннями та правил виведення одних висловлювань з інших.
У логіці правило виведення, правило виводу або правило перетворення (англ. rule of inference, inference rule, transformation rule) - це логічна форма[en], що складається з функції, яка отримує передумови, аналізує їхній синтаксис[en] і повертає висновок (або висновки[en]).

В результаті задача, записана в термінах логічного програмування, перевіряється на справедливість сформульованих висловлювань.

Як зазначалося вище, основні ідеї логічного програмування вперше були успішно реалізовані А. Колмерауером у Франції у формі мови програмування Пролог. Терміни «логічне програмування» та «програмування мовою Пролог» часто використовують як ідентичні.

Пролог був прийнятий в якості базової мови в японській програмі створення комп'ютера п'ятого покоління, що орієнтована на дослідження методів логічного програмування та штучного інтелекту, а також на розробку нового покоління комп'ютерів, спеціально призначених для реалізації даних методів. Назва мови Пролог утворена із слів Програмування ЛОГічного або Програмування в термінах ЛОГіки (PROLOG - PROgramming in LOGic).

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

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


Програма мовою Пролог складається із множини тверджень, кожне з яких є або фактом, або правилом і одного цільового твердження.

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



  • оголошення фактів про об'єкти і відношення між ними;

  • визначення правил взаємодії об'єктів і відношень між ними;

  • формулювання питань про об'єкти і відношення між ними.

Наведемо приклад. Нехай є такі твердження:

«Іваненко - це учень»;

«Сидоренко є однолітком Іваненка»;

«Петренко є однолітком Сидоренка»;

«Об'єкт є учнем за умови, що він є однолітком учня».

Перші три елементи даних є фактами, "Четвертий - правилом. Якщо ввести таке цільове твердження: «Учнями є:»,-то отримаємо відповідь, що Іваненко, Сидоренко, Петренко - учні, причому Іваненко є учнем за визначенням, а Сидоренко та Петренко - внаслідок виведення.

Отже, програма мовою Пролог дуже схожа на гіпотезу про деяку предметну галузь, а питання - на теорему, яку необхідно довести.

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



Об'єктно-орієнтоване програмування

Об'єктно-орієнтоване програмування (скорочено ООП) - це в наш час природний сучасний підхід до побудови складних програм і систем.

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

Об'єктно-орієнтоване програмування базується на трьох основних поняттях: інкапсуляції, наслідуванні, поліморфізмі.



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

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

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

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

Наслідування - це можливість використання вже визначених об'єктів для побудови ієрархії об'єктів, похідних від них.

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

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

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

Поліморфізм представляє собою механізм, що дозволяє одне і те ж ім'я використовувати для розв'язку схожих задач, які все ж таки в окремих деталях відмінні.

В якості прикладу можна звернутися до мови програмування Сі, де для знаходження модуля числа використовуються три різні функції: abs() - для цілих чисел, labs() - для довгих цілих, fabs() - для дробових. У відповідній моделі ООП використовуємо одну функцію з назвою abs(), що, в залежності від типу вхідних даних, сама визначає, який з трьох алгоритмів застосувати. Ще один приклад - це додавання. І 'а' 'х' , і 1 2 - операція додавання, але у двох випадках реально виконуються різні дії, хоча від користувача цей механізм прихований.

Прикладом застосування об'єктно-орієнтованого програмування є операційна система Windows.

Додавання - бінарна арифметична операція, суть якої полягає в об'єднанні математичних об'єктів.
Операці́йна систе́ма, скорочено ОС (англ. operating system, OS) - це базовий комплекс програм, що виконує управління апаратною складовою комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.
Коли ви відкриєте будь-яку програму Windows, то побачите вікно з великою кількістю кнопок, розділів меню, вікон редагування, списків тощо. Все це об'єкти. Причому самі по собі вони нічого не роблять, а чекають якихось Подій, наприклад, натиснення користувачем клавіш або кнопок миші, переміщення курсора і т. і. Коли відбувається подібна подія, об'єкт отримує повідомлення про це і певним чином на нього реагує: виконує деякі обчислення, розгортає список, заносить символ у вікно редагування.



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

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



Візуальне програмування

Логічною реалізацією об'єктно-орієнтованого програмування є візуальне програмування.

Візуа́льне програмува́ння - спосіб створення програм шляхом маніпулювання графічними об'єктами замість написання програмного коду в текстовому вигляді.

Включати об'єкти в свою програму можна двома способами:


  • вручну, використовуючи в програмі відповідні оператори, що насправді відбувається досить рідко;

  • шляхом візуального програмування, використовуючи заготовки середовища - компоненти.

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

При зміні стилю графічного інтерфейса вся ця праця ставала марною, все доводилось починати спочатку.

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

В інтегрованому середовищі розробки Delphi це виглядає дуже просто. Середовище надає користувачу форми, на яких він може розміщувати компоненти, наприклад, кнопки. Форма частіше за все візуалізується на екрані монітора у вигляді вікна, яке потім і буде бачити користувач програми. На форму за допомогою миші переносяться і розміщуються піктограми компонентів, що є в наявності в бібліотеці Delphi.

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

Візуальне програмування - це практичне застосування ООП при використанні готових бібліотек компонентів, передбачених середовищем програмування.

Практика (грец. πράξις «діяльність») - доцільна і цілеспрямована діяльність, яку суб'єкт здійснює для досягнення певної мети. Практика має суспільно-історичний характер і залежить від рівня розвитку суспільства, його структури.


Поняття про системи програмування

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

Математичне забезпечення (mathematical support) - сукупність методів, правил, математичних моделей і алгоритмів розв'язання задач;



Система програмування - це реалізація конкретної мови програмування для певних комп'ютерних систем.

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

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

З часом системи програмування потужнішали, і зараз ми користуємося можливостями редактора текстів при наборі самої програми, збереження як тексту програми, так і її машинного коду, можливостями покрокового виконання програми для визначення логічних помилок та запуску програми на виконання.

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

З інтегрованим інтерактивним середовищем Turbo Pascal 7.

Pascal - алгоритмічна мова програмування універсального призначення. Існують діалекти мови з підтримкою об'єктно-орієнтованого програмування. В 1990 році було затверджено стандарт ISO 7185:1990, «Pascal», та ISO 10206:1990 «Extended Pascal».
0 ми детальніше будемо знайомитись пізніше.

Поняття про інтерпретацію та компіляцію

На прикладі двох мов програмування Basic та Pascal цікаво розглянути питання про перетворення програм, написаних цими мовами, у виконуваний вигляд, тобто набір машинних кодів. Для цього існують спеціальні системні програми - транслятори (у перекладі з англійської мови translate - «перекладати»).

Англі́йська мо́ва (English, the English language) - мова, що належить до германської групи індоєвропейської сім'ї мов. Одна з найпоширеніших мов у світі, особливо як друга мова та мова міжнародного спілкування.
Будь-який транслятор виконує дві основні задачі. Перша - аналіз програми, що транслюється, в результаті чого визначається її коректність. При виявленні помилок транслятор вказує на ті місця тексту програми, де порушені правила її написання.

Друга - генерація вихідної програми мовою команд комп'ютера. Транслятори є двох типів - інтерпретатори та компілятори.

Інтерпретатори перекладають по одній команді або оператору вхідної програми на машинну мову і відразу ж виконують їх.

Інтерпретатор мови програмування Basic здійснює послідовний синтаксичний контроль операторів початкового тексту програми і виконання її команд (операторів).



Компілятори перекладають всю програму, написану мовою програмування високого рівня, на машинну мову, після чого програма записується в оперативну пам'ять і виконується.

Компілятор мови програмування Pascal здійснює переклад всього початкового тексту програми в машинний код.

Отже, Basic - програма на етапі виконання буде виконуватися по одній команді. Тому навіть при наявності синтаксичних помилок в тексті та частина програми, яка передує їм, все одно буде виконана. Pascal-програма буде виконуватися лише після виправлення всіх синтаксичних помилок в початковому тексті.

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

Компілятор (англ. Compiler від англ. to compile - збирати в ціле) - комп'ютерна програма (або набір к. програм), що перетворює (компілює) вихідний код, написаний певною мовою програмування (мова джерела, англ. source language)
Таку відкомпільовану програму можна експлуатувати без використання середовища програмування. На жаль, не всі інтерпретатори надають таку можливість. Для повторного виконання програми, написаної мовою програмування високого рівня, необхідно знову запускати інтерпретатор.



Покоління мов програмування

Мови програмування прийнято ділити на п'ять поколінь. В перше покоління входять мови, які були створенні на початку 50-х років, коли з'явилися перші комп'ютери. Це була перша мова Асемблера, створена по принципу "одна інструкція - один рядок".

Розквіт другого покоління мов програмування припав на кінець 50-х - початок 60-х років. Тоді був розроблений Асемблер, у якому появилося поняття змінної. Він став першою повноцінною мовою програмування. Завдяки його появі відчутно зросли швидкість розробки і надійність програм.

Появу третього покоління мов програмування прийнято відносити на 60-і роки. В цей час з'явилися універсальні мови програмування високого рівня.

Рі́дна, матери́на, матери́нська або ма́тірня мова - мова, яку виробили рідні по крові покоління, саме цю мову людина в нормальних соціальних умовах вивчає найперше. Незнання рідної мови не виключає її існування і не означає автоматичного привласнення цього означення засвоєній чужій мові.
Мо́ва програмува́ння (англ. Programming language) - це штучна мова, створена для передачі команд машинам, зокрема комп'ютерам. Мови програмування використовуються для створення програм, котрі контролюють поведінку машин, та запису алгоритмів.
Такі якості нових мов, як відносна простота, незалежність від конкретного комп'ютера і можливість використовувати потужні синтаксичні конструкції, дозволили різко підвищити продуктивність праці програмістів. Зрозуміла структура мов програмування привернула увагу спеціалістів із некомп'ютерних областей до написання невеличких програм. Багато мов програмування цього покоління використовується і тепер.

З початку 70-х років до теперішнього часу продовжується період мов програмування четвертого покоління.

Продукти́вність пра́ці (англ. productivity, labour productivity; нім. Arbeitsleistung f, Leistung f, Arbeitsproduktivität f) - це показник трудової діяльності працівників. Характеризує кількість продукції, виробленої за одиницю часу, або витрати часу на виробництво одиниці продукції.
Теперішній час - в українській мові - форма дієслова, що в основному виражає дію або стан, сучасні з моментом мовлення. Часто, однак, вона набуває значень безвідносних до цього моменту (у приказках, правилах, описах і т. д., наприклад, «Тиха вода греблю рве», «Київ лежить над Дніпром»)
Ці мови призначені для реалізації великих проектів. Вони зазвичай орієнтовані на спеціалізовані області використання, де гарних результатів можна досягти, використовуючи не універсальні, проблемно-орієнтовані мови, що оперують конкретними поняттями вузької предметної області. Як правило, в ці мови вбудовуються потужні оператори, що дозволяють одним рядком описати такі функції, для реалізації яких на мовах молодших поколінь потребувалось би тисячі рядків вихідного коду.

Народження мов програмування п'ятого покоління відбулося в середині 90-х років. Це системи автоматичного створення прикладних програм за допомогою візуальних засобів розробки без знання програмування.

Застосунок, застосовна програма, прикладна програма (англ. application, application software; пол. aplikacja; рос. приложение, прикладная программа) - користувацька комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача.
Головна ідея цих мов програмування - можливість автоматичного формування результуючого тексту на універсальних мовах програмування (який потім потрібно відкомпілювати). Інструкції вводяться в комп'ютер в максимально наглядному вигляді з допомогою методів, найбільш зручних для людини, не знайомої з програмуванням.



Огляд мов програмування високого рівня

Фортран (50-і роки) - перша мова високого рівня, створена Джимом Бекусом. Фортран продовжує активно використовуватися в багатьох організаціях. Зараз завершується робота по створенню чергового стандарту Фортрану F2K.

Кобол (60-і роки) - використовується в економічних областях. На цій мові створено дуже багато додатків, які активно експлуатуються сьогодні. Найбільшу зарплату в США отримують програмісти, які створюють програми на мові програмування Кобол.

Алгол (60-і роки) - не використовується. Версія Алгол-68 по своїм можливостям і сьогодні випереджає багато мов програмування, але із-за більш складної структури ніж Фортран не отримав широкого розповсюдження.

Паскаль (70-і роки) - створений основоположником багатьох ідей сучасного програмування Ніклаусом Віртом, багато в чому нагадує Алгол, дозволяє з успіхом використовувати його для створення великих проектів.

Бейсік (60-і роки) - для мови є компілятори і інтерпретатори. По популярності займає перше місце у світі.

Сі - планувався для заміни асемблера, щоб мати можливість створювати ефективні і компактні програми, і у той же час не залежати від конкретного типу процесора. Схожий на Паскаль. На цій мові у 70і роки написано багато прикладних і системних програм і ряд відомих операційних систем (Unix).

Сі - об'єктно-орієнтоване розширення мови Сі (1980 рік). Нові можливості мови дозволили підвищити продуктивність програмістів.

Java (90-і роки) - на основі СІ шляхом виключення низькорівневих можливостей. Займає сьогодні друге місце по популярності після мови програмування Бейсік. Напрямки використання - підтримка мобільних пристроїв і мікрокомп'ютерів, що вбудовуються у побутову техніку та створення програм для глобальних та локальних мереж.

Смартфо́ни (з англ. smart - розумний, і англ. phone - телефон) - окрема категорія телефонів, які - на відміну від простих стільникових телефонів - мають більше оперативної пам'яті і власний потужний, як для кишенькових пристроїв процесор, працюють під операційною системою Symbian 6.
Побутова техніка - техніка, що використовується в побуті. Призначається для полегшення домашніх робіт, для створення комфорту в повсякденному житті людини. Класифікується за значимістю (необхідна, бажана, можна обійтися), за розміром (мала побутова техніка і велика побутова техніка), цільовим призначенням тощо.

Із універсальних мов програмування найбільш популярними є:



  • Бейсік -для засвоєння потрібна початкова підготовка (загальноосвітня школа);

  • Паскаль - потребує спеціальної підготовки;

  • Сі , Java - потребують професійної підготовки.
    Професі́йна підгото́вка - здобуття кваліфікації за відповідним напрямом підготовки або спеціальністю.


Мови програмування баз даних, мови програмування для Інтернету являються інтерпретаторами, які розповсюджуються безкоштовно, а самі програми - у вихідних текстах. Такі мови називають скрипт-мовами (HTML, Perl, і т.п.).
3. Підведення підсумків уроку.
4. Типові питання до уроку

  1. Що називається мовою програмування ?

  2. Чим викликана значна кількість різних мов програмування ?

  3. На які класи традиційно поділяються мови програмування?

  4. За якими ще ознаками класифікуються мови програмування?

  5. Які мови програмування називаються процедурними ?

  6. Що таке структурне програмування ?

  7. На якому розділі математики базується логічне програмування ?

  8. Яке програмування називається логічним?

  9. Яка мова програмування втілила в себе ідеї логічного програмування ?

  10. Що називається об 'єктно орієнтованим програмуванням?

  11. На яких трьох основних поняттях базується об'єктно-орієнтоване програмуванні і в чому їх суть ?

  12. Що таке «візуальне програмування» ?

  13. Що називається системою програмування ?

  14. Яку функцію виконують транслятори?

  15. Поясніть різницю між інтерпретацією та компіляцією.


5. Домашнє завдання:

  1. Вивчити теоретичний матеріал;

  2. Тест “Мови програмування. Класифікація мов програмування.”


Скачати 203.9 Kb.