Сучасні мови програмування. Поняття об’єкта в мові програмування, його властивостей і методів.


Сучасні мови програмування
Для того щоб написати будь-яку програму використовується мова програмування. Перед створенням програм вивчимо загальні поняття, пов'я­зані з програмуванням: алфавіт, величини, вирази тощо.

Програми і мови програмування
Що таке програма і коли з'явилося це поняття? Нині, мабуть, не кожен програміст відповість на це запитання. Історія програм починається в далеких 20-х роках XIX століття, коли англійський дослідник Ч. Бебідж висунув ідею про попередній запис дій обчислювальної машини.
До появи обчислювальних машин робилися спроби керувати ткацькими верстатами. Програми для вер­статів записувалися на перфокарти, що були вигадані Чарльзом Бебіджем і французьким винахідником Жозефом Жаккаром. З них почалася історія програмування, а трохи пізніше почали закладатися теоретичні основи цієї науки. 


Разом з Бебіджем працювала його сучасниця Ада Лавлейс (дочка великого англійського поета Джорджа Байрона), яку називають першим у світі про­грамістом. Вона ввела до програмування терміни і по­няття, які застосовуються і донині (наприклад, поняття циклу - найважливішої структури будь-якої сучасної мови програмування). На честь першої програмісти була названа мова програмування «Ада», розроблена уже за наших часів.
У XX столітті з'явилися електронні обчислювальні машини. Перші програми для них записувалися в машинних кодах. Для написання правильної програми програміст мав детально уявляти роботу ЕОМ. Це дуже ускладнювало спілкування людини з комп'ютером, тому вони стали серйозно замислюватися над кодуванням програм і дійшли висновку, що програма має складатися мовою, доступнішою для людини, ніж мова машинних команд. Тому необхідно було створити мови програмування.
Мова програмування - це штучна мова для написання команд, вико­нуваних обчислювальною машиною. Мова програмування складається з фіксованого словника і сукупності правил (синтаксису) написання команд.
Оскільки мова програмування незрозуміла для обчислювальної машини, має бути спеціальна програма, яка перекладала б символи цієї мови мовою машинних команд. Така програма перекладу символів, або, простіше, транслятор (від англійського слова translation - переклад), була створена на початку 50-х років XX століття аме­риканською програмісткою, контрадміралом морських сил США Грейс Хопер.
Транслятор - це програма, яка перетворює команди мови програму­вання на машинний код.
З винаходом трансляторів роль машинних команд у програмуванні різко зменшилася. Перші транслятори призначалися для мов Асемблера (мов низь­кого рівня). У 50 - 60-ті роки почали створюватися мови програмування висо­кого рівня. Зазначимо, що близькі до числового коду процесора мови називають мовами низького рівня, а мови, зручні для людини, - мовами високого рівня. Мова найнижчого рівня - мова машинного кодування. Трохи вище - мова Асемблера, у якій машинні команди замінюються мнемонічними скороченнями. Всі інші мови програмування є мовами вищого, ніж мова Асемблера, рівня.
Програма записується в текстовому редакторі мовою програмування і на­зивається вихідним кодом (текстом). Він складається зі спеціальних команд - операторів мови програмування. За допомогою перекладача-транслятора вихід­ний код програми перетвориться на машинний код. Під час виконання програми комп'ютер діє так, як йому запропоновано заздалегідь.
Процес складання програм називається програмуванням. Програмування нині стало самостійною науковою дисципліною, його вивчають у школах, ко­леджах, вищих закладах освіти.

Компілятори та інтерпретатори
Отже, для перекладу тексту програми на мову, зрозумілу для комп'ютера, має існувати окрема програмна оболонка - транслятор. Транслятори бувають двох видів: компілятори й інтерпретатори. Компілятор перетворює вихідний код програми на машинну мову, тобто мову нулів і одиниць. До одержаного коду підключаються стандартні процедури, використані програмістом, вна­слідок чого з'являється робоча програма - її називають робочим кодом. Файли таких програм мають розширення .ехе чи .com і є машинним кодом.
Інший різновид трансляторів, які використовуються в практиці програмування, - це інтерпретатори. Інтерпретатори обробляють текст не заздалегідь, а безпосередньо під час виконання програми. Інтерпретатори є програмами-посередниками, які читають команди з файла і перекладають їх на мову процесора під час виконання програми.
Щоб краще зрозуміти відмінність між компілятором і інтерпретатором, на­ведемо порівняння. Робота програми компілятора схожа на роботу літератур­ного перекладача, що спочатку читає текст, аналізує його, а потім виконує переклад. Роботу програми інтерпретатора можна порівняти з роботою синх­ронного перекладача, який перекладає відразу під час озвучення тексту. Зрозу­міло, що літературний переклад буде якіснішим, ніж синхронний. Аналогічно код, отриманий під час компіляції, буде компактнішим і ефективнішим, ніж код інтерпретатора. Як наслідок, відкомпільовані програми можуть працювати в десятки разів швидше, ніж виконувані під керуванням інтерпретатора. Крім того, компілятори під час своєї роботи займають меншу частину ресурсів ком­п'ютера.
Отже, компілятори - ефективніші перекладачі програм. Тому всі прикладні та службові програми поставляються у відкомпільованому вигляді. Мови, для яких існують програми-компілятори, - це компільовані мови Pascal, C++, Delphi, Fortran тощо.
Коли час виконання програми не занадто критичний, наприклад під час нав­чання і виконання приватних завдань, зручно використовувати інтерпретовану мову. Найпростіша і найпоширеніша з них - мова програмування Basic. Іншими прикладами є інтерпретовані мови JavaScript і VBScript, які широко застосовуються під час створення Web-сторінок, доступних через Інтернет.

Інтегроване середовище програмування
Сучасні мови програмування - це не тільки мова програмування з ком­пілятором. Мови програмування як програмні продукти комплектуються інстру­ментами для створення програм. Такий комплект називається інтегрованим середовищем програмування. Він призначений не тільки для полегшення процесу складання програм, а й для професійної розробки додатків. До складу інтегро­ваного середовища програмування входять, як правило, такі інструменти:
-  текстовий редактор для набору і редагування програми;
-  мова програмування з компілятором;
-  компонувальник;
-  система усунення синтаксичних помилок; покроковий наладчик;
-  бібліотека готових програмних модулів;
-  довідкова система з питань розробки програм у даному середовищі.
Прикладами інтегрованих середовищ програмування є Turbo Pascal, Delphi, Visual Basic і безліч інших. Використання цих середовищ під час розробки додатків дозволяє користувачам докладати набагато менше зусиль, ніж при написанні програм мовами низького рівня.
Створення програми починається зі складання алгоритму, орієнтованого на певне інтегроване середовище програмування. Алгоритм перекладається на мову програми і вводиться з клавіатури у вікно текстового редактора. Після набору тексту з клавіатури і виправлення помилок потрібно відправити програму «на рахунок». При цьому буде автоматично запущено ще один засіб середовища програмування - наладчик (англійською мовою - debugger). Він перевірить текст щодо синтаксису, запропонує вам виправити знайдені помилки. Програміст за допомогою наладчика може також переглянути і змінити вміст комірок пам'яті комп'ютера.
Налагоджену програму можна запускати на виконання. Перекладатиме текст програми машинною мовою відомий уже вам засіб - транслятор. Йому допомагатиме компонувальник (linker), завданням якого є пошук і компонування розрізнених модулів і бібліотек, необхідних для виконання програми.
Інтегроване середовище програмування забезпечує діалогову взаємодію з користувачем на всіх етапах складання і виконання програми. Середовище програмування сконструйоване так, щоб користувачу були доступні всі мож­ливі інструменти програмування і він почувався комфортно. Інтегроване сере­довище програмування називають також інструментальною оболонкою.

Алфавіт і синтаксис мови програмування
Користувач може легко працювати з мовами програмування високого рівня завдяки їхній схожості з природними мовами спілкування. Насамперед, у мовах програмування використовується майже той самий алфавіт, наприклад, латин­ські літери a, b,… z і арабські цифри 0,1,… 9. Багато слів схожі на команди, що надаються машині: PRINT («друкуй»), DO («зроби»), READ («читай»), INPUT («уведи») тощо. Відмінність мов програмування від природної мови в тому, що кількість можливих слів значно менша, ніж у природній мові, і слова можуть уживатися лише у певній формі й сполученнях.
Отже, мови програмування мають свій алфавіт і фіксований словник, а також певні правила (синтаксис), які використовуються під час написання команд. Алфавіт складається звичайно з латинських літер, наприклад, у Бейсіку всі літери великі (А, B,…Z), а в Паскалі можливе використання як малих (a, b,… z), так і великих літер. До алфавіту обов'язково входять цифри 0,1,… 9, знаки ариф­метичних операцій (+, - тощо), знаки логічних операцій (not, and, or тощо), знаки операцій порівняння (=,<,> тощо), а також спеціальні символи (дужки, роздільники тощо).
Синтаксис - це система правил, за якими із символів створюються конструкції мови програмування.
Саме слово "синтаксис" походить від грецького συνταξιζ (будівля) і означає пра­вила будови компонентів мови: слів, операторів, команд. Наприклад, символи в слові не можна випускати або міняти місцями. Якщо ви напишете службове слово begin як begn або beign, це вважатиметься помилкою.

Поняття об’єкта у мові програмування,
його властивостей і методів
Об'єкт (від латинською objectum — предмет, явище) — це те, на що спрямована певна діяльність (на противагу суб'єкту, який здійснює таку діяльність).
Ми живемо в оточенні величезної кількості різноманітних об'єктів. Будь-яка інформація, яку ми отримуємо, пов'язана з певними об'єктами. Об'єктами є не лише предмети чи явища матеріального світу, але й поняття, які створюють і використовують люди під час спілкування. Наприклад «освіта», «держава» тощо. Кожний об'єкт має свою назву: «м'яч», «годинник», «чашка», «книга». Крім назви кожний об'єкт має низку властивостей (параметрів), значення яких повністю описує об'єкт. Наприклад, об'єкт «учень» має такі властивості (подано невичерпний перелік): вік, зріст, маса тіла, успішність з певного предмету тощо.

Властивості поділяють на:
  • кількісні — такі властивості можна подати числом у певних одиницях виміру (метрах, секундах, грамах);
  • якісні — такі властивості можна лише назвати. Наприклад, характер учня може бути спокійним або неврівноваженим.
Значення властивостей об'єкта у певний момент часу визначають його стан. Вони можуть змінюватися, але їхня сукупність залишається сталою. Якщо така сукупність зазнає змін, то ми маємо справу вже з іншим об'єктом. Наприклад значення параметра «зріст» об'єкта «учень Сашко» може збільшуватися. Але якщо у нього зникла властивість «успішність», то Сашко завершив навчання.
Дії можуть виконувати власне об'єкти або їх виконують над об'єктами. Наприклад, об'єкт «учень» може виконувати такі дії: читати, грати у футбол, розв'язувати задачу з фізики. У свою чергу, над цим об'єктом можна виконувати певні дії: вимірювати зріст, проводити виховну бесіду тощо.
Подіязміна властивостей об'єкта, взаємодія між об'єктами, утворення нового об'єкта або знищення наявного об'єкта.
Середовище об'єктасередовище, у якому перебуває об'єкт, незалежно від того, які дії ним чи над ним (знищення об'єкта) виконано.
Розглянемо об'єктно-орієнтований підхід до процесу створення й використання програмного забезпечення. Якщо створення програм — далеке й необов'язкове майбутнє учня, то їхнє використання — це сьогодення, якого не уникнути. Спочатку потрібно ознайомитися з деякими базовими поняттями.
Комп'ютерна програмаце запис послідовності вказівок для комп'ютера.
Застосунок (застосовна програма, прикладна програма, англійською application, application software) — комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача.
Це поняття використовують, щоб підкреслити відмінність від операційної системи, драйверів, бібліотек, системних утиліт тощо (які забезпечують функціонування власне комп'ютерної системи та підтримують її працездатність) та засобів і середовищ розробки (про всі ці поняття йтиметься далі).
Об'єктно-орієнтоване програмуванняце метод програмування, який розглядає програму як множину «об'єктів», що взаємодіють між собою.
Інакше кажучи, у такому підході:
  • все, що розглядають, є об'єктами;
  • всі дії та розрахунки виконують шляхом взаємодії (обміну даними) між об'єктами, при якій один об'єкт потребує, щоб інший об'єкт виконав деяку дію. Об'єкти взаємодіють, надсилаючи і отримуючи повідомлення — запити на виконання дії, доповнений набором аргументів (даних), які можуть знадобитися при виконанні дії;
  • кожен об'єкт має незалежну пам'ять, яка складається з інших об'єктів;
  • кожен об'єкт є представником (екземпляром) класу, який виражає загальні властивості об'єктів;
  • клас задає поведінку об'єкта. Інакше кажучи, усі об'єкти, які є представниками одного класу, можуть виконувати одні й ті самі дії;
  • класи утворюють ієрархією успадкування: пам'ять та поведінка, пов'язані з представниками деякого класу, автоматично доступні будь-якому нащадку — класу, розташованому нижче в ієрархічному дереві.

Фундаментальні поняття об'єктно-орієнтованого програмування:
  • клас визначає властивості деякої сутності та методи (дії, які вона здатна виконувати). Наприклад, клас вид cобака характеризують рисами, притаманними всім собакам. До методів цього класу відносять, наприклад, здатність гавкати;
  • об'єктокремий представник класу. Наприклад, об'єкт Бровко є представником виду собак — окремим варіантом значення властивостей;
  • методдія, яку об'єкт може виконувати. Наприклад, гавкати і скавучати — методи собаки. Тому Бровко спроможний гавкати;
  • поведінкасукупність методів (дій, які об'єкт може виконувати);
  • обмін повідомленнями передавання даних від одного процесу іншому або надсилання викликів методів;
  • абстрагуванняспрощення складної дійсності моделюванням класів, що відповідають проблемі, й використання найприйнятнішого рівня деталізації окремих аспектів проблеми. Наприклад, більшу частину часу Бровка можна розглядати лише як собаку. А от як він когось зненацька вкусить, потрібно отримати доступ до інформації, специфічної саме для нього: хто господар, чи був щеплений проти сказу тощо;
  • успадкування. Клас може мати «підкласи» — спеціалізовані версії «надкласу». Наприклад, вид собака може мати породи коллі, пекінес, вівчарка тощо. Бровко може бути представником класу Вівчарка. Підкласи успадковують властивості й поведінку (методи) своїх батьківських класів, і можуть мати свої власні додатково. Успадкування може бути одиничне (один безпосередній батьківський клас) та множинне (кілька батьківських класів). Наприклад, при розгляді громадянства й етнічного походження окремої людини;
  • інкапсуляціяприховування деталей інформації про роботу класів від об'єктів, що їх використовують або надсилають їм повідомлення. Наприклад, для господаря собаки непотрібно знати, як власне гавкає Бровко. Аби Бровко гавкав на непрошеного гостя;
  • поліморфізмзалежність поведінки від класу, в якому цю поведінку викликають. Інакше кажучи, різні класи можуть реагувати по різному на однакові повідомлення. Наприклад, пес-охоронець, почувши: «Фас!», має накинутися на злодія. А курка — відскочити убік або ніяк не реагувати.
Об'єкти у програмуванніце форми, текстові написи, поля, кнопки, перемикачі, зображення, меню, смуги прокручування тощо.

Метод часто ототожнюють з фрагментом програмного коду, пов'язаний із певним об'єктом.
Значення властивостей об'єкта визначають (у тому числі), як цей об'єкта буде зображено на екрані. Наприклад, його розміри й колір, розташування тощо.
У середовищі Lazarus для обраного об'єкта властивості буде відображено на вкладенні Властивості вікна Інспектор об'єктів. У лівій частині цього вкладення подано перелік властивостей об'єкта, а у правій — їхні значення.


Для прикладу перелічимо лише деякі з властивостей форми:
  • Name — назва;
  • Caption — заголовок (текст у рядку заголовка);
  • Color — колір тла;
  • Height — висота у пікселях;
  • Width — ширина у пікселях;
  • Top — відстань у пікселях між верхніми межами об'єкта й екрана;
  • Left — відстань у пікселях між лівими межами об'єкта й екрана.
Значення властивостей Top і Left можна змінити перетягуванням форми по екрану, а значення властивостей Height і Width — зміною розмірів форми з використанням маркерів на межах форми.
Об'єкт, крім набору властивостей, має ще набір подій, які можуть з ним трапитися під час виконання програми. У середовищі Lazarus для обраного об'єкта події буде відображено на вкладенні Події вікна Інспектор об'єктів. У лівій частині цього вкладення подано перелік подій, а у правій — відповідь об'єкта на неї.
Для прикладу перелічимо лише деякі з подій форми:
  • OnClick — клацання — вибір будь-якої точки об'єкта;
  • OnKeyPress — натиснення будь-якої клавіші на клавіаутрі;
  • OnMouseMove — переміщення вказівника миші.
З будь-якою подією, яка може відбутися з формою, можна пов'язати фрагмент програми, який буде виконуватися одразу після настання цієї події. Такий фрагмент програми називають обробником події. Обробник події пов'язаний з певним об'єктом, називають методом цього об'єкта.

Комментариев нет:

Отправить комментарий