Ця стаття є сирим з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (квітень 2020) |
Прогрес комп'ютерних технологій визначив процес появи нових різноманітних числових систем для запису алгоритмів мов програмування. Сенс появи такої мови — спрощення програмного коду.
Мови програмування прийнято ділити на п'ять поколінь. У перше покоління входять мови, створені на початку 50-х років XX-го сторіччя, коли перші комп'ютери тільки но з'явилися. Це була перша мова асемблера, створена за принципом «одна інструкція — один рядок».
Початок
Машинні коди і Асемблер
Фізичні принципи роботи електронних обчислювальних машин (ЕОМ) такі, що комп'ютер може сприймати команди, що складаються тільки з одиниць і нулів — послідовність перепаду напруги, тобто машинний код. На початковій стадії розвитку ЕОМ людині було необхідно записувати програми мовою, зрозумілій комп'ютеру, в машинних кодах. Кожна команда складалася з коду операцій та адрес операндів, виражених у вигляді різних поєднань одиниць і нулів. Отже, будь-яка програма для процесора виглядала на той час як послідовність одиниць і нулів.
Як показала практика спілкування з комп'ютером, така мова громіздка і незручна. Користуючись нею легко припуститися помилки, записавши не в тій послідовності 1 або 0. Програму важко контролювати. Крім того, при програмуванні в машинних кодах треба добре знати внутрішню структуру ЕОМ, принцип роботи кожного блоку. Програми такою мовою — дуже довгі послідовності одиниць і нулів є машинно-залежними, тобто для кожної ЕОМ необхідно було складати свою програму. Також програмування в машинних кодах вимагає від програміста багато часу та підвищеної уваги.
Виникла потреба автоматизації процесу формування машинного коду. Вже у 1950 році для запису програм почали застосовувати мнемонічну мову — мову assembly. Мова асемблера дала змогу записати машинний код у більш зручній для людини формі: для позначення команд і об'єктів,з якими ці команди виконуються, замість двійкових кодів використовувалися букви або скорочені слова, які відображали суть команди. Наприклад, мовою асемблера команда складання двох чисел позначається словом add, тоді як її машинний код може бути таким: 000010.
Асемблер — мова програмування низького рівня. Мова програмування низького рівня — це мова програмування, яка орієнтована на конкретний тип процесора і враховує його особливості. Тут «низький рівень» не означає «поганий». Мається на увазі, що оператори мови близькі до машинного коду і орієнтовані на конкретні команди процесора. Поява мови асемблера значно полегшила життя програмістів, оскільки тепер замість великої кількості нулів і одиниць, вони могли писати програму командами, що складаються з символів наближених до звичайної мови. Ця мова, коли була нововведенням, мала популярність, бо давала змогу писати програми невеликого розміру.
Складність розробки на ньому великих програмних комплексів призвела до появи мов третього покоління — мов високого рівня. Але на цьому життя асемблера не закінчилася, він має популярність серед вузьких кіл. Зараз його використовують в написанні окремих фрагментів програм або іноді в написанні самих програм. Приклад, це використання асемблера в написанні драйверів, ігор та завантажувачів ОС. Швидкість роботи отриманої програми значно вище швидкості програми написаної мовою програмування високого рівня. Це пояснюється тим, що отриманий розмір програми дуже малий. Розробники антивірусних програм теж використовують асемблер в деяких модулях своїх програм, що забезпечує їх швидкодію, якби не асемблер, деякі програми завантажувалися б близько години.
Перші мови програмування високого рівня
Середина 50-х років XX ст. характеризується стрімкими змінами. Роль програмування в машинних кодах стала зменшуватися, стали з'являтися мови нового типу, що виступають в ролі посередника між машинами і програмістами. Настав час другого і третього поколінь мов програмування.
З середини 50-хроків XX ст. почали створювати перші мови програмування високого рівня (high-level programming languages). Ці мови не були прив'язані до певного типу ЕОМ (машинонезалежні). Для кожної з них були розроблені власні компілятори. Компіляція — трансляція програми, складеної мовою оригіналу високого рівня, в еквівалентну програму мовою низького рівня, близькій до машинного коду (абсолютний код, об'єктний модуль, іноді мова асемблера).
Мова програмування FORTRAN
Перша мова високого рівня Фортран була створена в період з 1954 по 1957 рік групою програмістів під керівництвом Джона Бекуса в корпорації IBM. Вона призначалася для наукових і технічних розрахунків. Назва Fortran є скороченням від FORmula TRANslator (перекладач формул).
Історія мови
Наприкінці 1953 р. Джон Бекус запропонував почати розробку ефективної альтернативи асемблеру для програмування на комп'ютері IBM 704. Вже до середини 1954 р. була закінчена чорнова специфікація мови Fortran. Перша специфікація для Fortran з'явилася в жовтні 1956 р. разом з першим компілятором, поставленим у квітні 1957 року. Компілятор був оптимізувальним, тому що клієнти відмовлялися використовувати мову програмування високого рівня, яка була не в змозі генерувати код з продуктивністю нижче, ніж у асемблера.
У той час суспільство ставилося скептично до нового способу програмування і не вірило в те, що Fortran дасть змогу програмувати швидше і ефективніше. За словами самого Джона Бекуса, велика частина його роботи була спрямована на те, щоб «бути лінивим». Йому страшенно не подобалося писати програми під IBM 701 на асемблері.
Мова була широко прийнята вченими для написання програм з інтенсивними обчисленнями. Включення комплексного типу даних зробило її особливо придатною для технічних застосунків.
До 1960 р. існували версії Fortran для комп'ютерів IBM 709, 650, 1620, 7090. Її велика популярність спонукала конкуруючих виробників ПК створювати компілятори Fortran для своїх комп'ютерів. Таким чином, вже до 1963 р. існувало понад 40 компіляторів для різних платформ. Саме тому Fortran вважають першою широко вживаною мовою програмування.
Фортран в СРСР
Фортран в СРСР з'явився пізніше, ніж на Заході, оскільки спочатку тут більш перспективним мовою вважався Алгол. У запровадженні Фортрану велику роль зіграло спілкування радянських фізиків зі своїми колегами з CERN, де в 1960-х роках майже всі розрахунки велися з використанням програм на Фортрані.
Перший радянський компілятор з Фортрану був створений в 1967 р. для машини «Мінськ-2», однак він не отримав великої популярності. Широке впровадження Фортрану почалося після створення в 1968 р компілятора ФОРТРАН-ДУБНА для машини БЕСМ-6. Машини ЕС ЕОМ, що з'явилися в 1972 р, вже з самого початку мали транслятор Фортрану («запозичений» з IBM/360 разом з іншим програмним забезпеченням)
Сучасний Фортран
Фортран широко використовувався в основному для наукових і інженерних обчислень. За час його існування було написано безліч бібліотек, тому Фортран добре підходить для виконання числових обчислень. Через велику кількість написаних програм Фортран використовується і у 21-му столітті: змінювати такі програми, і тим більше, переписувати їх, немає сенсу.[] Його структура сприяє тому, що компілятор може дуже добре оптимізувати обчислення.
Серед вчених ходить така приповідка, що будь-яка математична задача вже має рішення на Фортрані.
Серед тисяч бібліотек на Фортрані є, наприклад, пакет для множення матриць, пакети для розв'зання складних інтегральних рівнянь, і багато інших.
Мова програмування ALGOL 58
Причина появи мови ALGOL
Оскільки Фортран виявився настільки успішною мовою, в Європі виникли побоювання, що IBM буде домінувати в комп'ютерній галузі. Німецьке Товариство прикладної математики і механіки (GAMM) створило комітет з розробки універсальної мови. У той же час Асоціація обчислювальної техніки (ACM) організувала схожий комітет в США. Незважаючи на те, що у європейців було деяке занепокоєння з приводу панування американців, обидва цих комітети злилися в один.
Алгол був розроблений в 1958 році на тижневій конференції в ETH (Цюрих, Швейцарія) як універсальна мова програмування для широкого кола застосування, а згодом доопрацьована комітетом, створеним Міжнародною федерацією з обробки інформації. До комітету увійшли ряд провідних європейських та американських вчених і інженерів-розробників мов, серед яких були Джон Бекус, Джон Маккарті, Петер Наур, Едсгер Дейкстра і Джозеф Уегстіл, який згодом очолив комітет із розробки мови Кобол.
В ході роботи виникали труднощі непринципового характеру. Так, наприклад, один з членів комітету згадував «десяткову бурю» — вкрай різку дискусію між американськими і європейськими учасниками з приводу того, який саме символ повинен бути використаний як роздільник цілої і дробової частин числа. Американці наполягали на крапці, європейці ж вимагали застосовувати традиційну для Європи кому. Щоб уникнути конфліктів з дрібних питань, було вирішено, що опис Алголу буде трирівневим, що містить рівень описів, публікацій та реалізації. Дрібні питання, типу вибору між крапкою і комою, або використання алфавіту, були винесені на другий-третій рівень, що дало змогу відносно швидко вирішити принципові питання. На рівні публікацій, узгодженому пізніше, допускалося використання національних ключових слів і стандартів подання даних (у тому числі і десяткового дробу), рівень реалізації визначав мову абсолютно строго — згідно з ним повинні були будуватися транслятори.
Спочатку назву що пропонувалася "ALGOL" (ALGOrithmic Language) було відкинуто. Але, оскільки вона стала загальновживаною, офіційне ім'я IAL довелося згодом змінити на ALGOL 58.
Нова версія з'явилася в 1960 р, і ALGOL 60 (з невеликими змінами, зробленими в 1962 р.) з 60-х і до початку 70-х рр. минулого століття був стандартом академічного мови програмування.
У нової мови знайшлися як прихильники, так і критики. В США Алгол прийняли прохолодно, він був популярний лише в академічному середовищі, і то не скрізь. Ті, хто спробував реалізувати Алгол, зіткнулися з цілою низкою складнощів.
Так, наприклад, виявилося, що жоден з існуючих на той час комп'ютерів не підтримував введення-виведення всіх 116 літер, з яких складався алфавіт Алгола.
А ось в Європі Алгол прийняли з ентузіазмом. Він швидко завоював популярність в академічному середовищі, повсюдно йшла розробка компіляторів, багато з яких, незважаючи на складності реалізації, виявилися доволі успішними. Алгол поширився від Великої Британії до Далекого сходу СРСР, ставши як універсальною мовою опису алгоритмів в наукових публікаціях, так і засобом реального програмування.
Властивості мови. Її переваги і недоліки
В Алголі з'явилося уявлення про програму не як про вільну послідовності команд, а як про блокову структуру, що складається з чітко описаних та відокремлених одна від одної частин. Основний блок програми на Алголі — це сама головна програма. Вона містить свою виконувану частину, укладену в блок, обмежений парою ключових слів begin і end, а також опису підпрограм. Кожна підпрограма — це програма в мініатюрі, що має власні, описані всередині неї дані, однозначно визначений інтерфейс у вигляді імені та списку формальних параметрів, і блок коду.
При цьому в блоці можуть виділятися підблоки.
Були виділені структурні упаравляючі конструкції: розгалуження, цикли, послідовні ділянки, які виконують умовно або багаторазово вкладені набори операторів, також обмежені тими ж ключовими словами begin і end.
Сучасним програмістам подібна структура програми здається очевидною, де в чому застарілою і не завжди зручною, але на момент появи Алголу все це було помітним кроком вперед. Програми ставали регулярними, це давало можливість нарощувати їх за обсягом, зберігаючи оглядовими, зрозумілими, доступними аналізу і виправлення. Саме на базі Алголу і його мов-нащадків були виконані успішні роботи з аналітичного доведення правильності програм.
В Алголі було запропоновано два способи передачі параметрів в підпрограму — за ім'ям та за значенням. Якщо другий спосіб заперечень не викликає (він широко використовується в абсолютній більшості мов донині), то перший (він передбачає, що в процедуру передається ім'я фактичного параметра, і процедура працює так, як ніби в точці звернення записаний її код, де замість формального параметра написано ім'я фактичного) приводив до труднощів реалізації компіляторів і появи складно виявлюваних помилок.
Мова програмування LISP
Мова Лісп була запропонована Дж. Маккарті в роботі 1960 року і орієнтована на розробку програм для розвязання завдань не чисельного характеру. Англійська назва цієї мови — LISP є абревіатурою виразу LISt Processing (обробка списків) і добре підкреслює основну область її застосування. Поняття «список» виявилося дуже ємним.
У вигляді списків зручно представляти алгебраїчні вирази, графи, елементи кінцевих груп, множини, правила виведення і багато інших складні об'єкти. Списки є найбільш гнучкою формою подання інформації в пам'яті комп'ютерів. Тому не дивно, що зручна мова, спеціально призначена для обробки списків, швидко завоювала популярність.
Розвиток мови
Протягом майже сорокарічної історії його існування з'явилася низка діалектів цієї мови: Common LISP, Mac LISP, Inter LISP, Standard LISP та ін.
Відмінності між ними не носять принципового характеру і в основному зводяться до кількох наборів вбудованих функцій і певну різницю в формі запису програм. Тому програміст, яка навчилася працювати з одним з них, без зусиль зможе освоїти і будь-який інший.
Основні переваги мови
Великою перевагою Ліспа є його функціональна спрямованість, тобто програмування ведеться за допомогою функцій. Причому функція розуміється як правило, зіставляє елементам деякого класу відповідні елементи іншого класу. Сам процес співставлення не робить ніякого впливу на роботу програми, важливий тільки його результат — значення функції. Це дає змогу відносно легко писати і налагоджувати великі програмні комплекси. Ясність програм, чітке розмежування їх функцій, відсутність каверзних побічних ефектів при їх виконанні є обов'язковими вимогами до програмування таких логічно складних завдань, якими є завдання штучного інтелекту.
Дисципліна в програмуванні стає важливою, коли над програмою працює не одна людина, а ціла група програмістів.
Мова програмування COBOL
Кобол був розроблений в 1959 році і призначався насамперед для написання програм для розробки бізнес-застосунків, а так само для роботи в економічній сфері.
Специфікація мови була створена в 1959 році. Творці мови ставили собі за мету зробити її машинонезалежною і максимально наближеною до природної англійської мови. Обидві цілі були успішно досягнуті; програми на COBOL вважаються зрозумілими навіть неспеціалістам, оскільки тексти цією мовою програмування не потребують будь-яких спеціальних коментарів (самодокументуючі програми).
Переваги та недоліки
COBOL — мова дуже стара і свого часу використовувалася вкрай активно, тому існує безліч реалізацій і діалектів. Для мови був затверджений ряд стандартів: у 1968, 1974, 1985 і 2002 роках. Останній стандарт додав в мову підтримку об'єктно-орієнтованої парадигми.
Мова дає змогу ефективно працювати з великою кількістю даних, вона насичена різноманітними можливостями пошуку, сортування та розподілу. До числа інших плюсів COBOL зазвичай відносять її структурованість. Досить потужні компілятори з цієї мови, розроблені для персональних комп'ютерів. Деякі з них настільки ефективні, що програму, налагоджену на персональному комп'ютері, неважко перенести на великі ЕОМ.
Перераховуючи мінуси, не можна не згадати про те, що на Коболі можна запрограмувати лише найпростіші алгебраїчні обчислення. Для складних інженерних розрахунків ця мова не згодиться.
Висновки з даного періоду розвитку мов програмування
На зорі комп'ютеризації (на початку 1950-х р.р.), машинна мова була єдиною мовою, більшого людина до того часу не придумала. Мови низького рівня мало схожі на нормальну, звичну людині мову. Великі, громіздкі програми на таких мовах пишуться рідко. Зате, якщо програма буде написана такою мовою, то вона буде працювати швидко, займаючи маленький обсяг і допускаючи мінімальну кількість помилок. Чим нижче і ближче до машинного рівень мови, тим менше і конкретніше завдання, які ставляться перед кожною командою.
Для порятунку програмістів від суворої машинної мови програмування, були створені мови високого рівня (тобто немашинні мови), які стали своєрідним зв'язуючим містком між людиною і машинною мовою комп'ютера. Мови високого рівня працюють через трансляційні програми, які вводять «вихідний код» (гібрид англійських слів і математичних виразів, який зчитує машина), і в кінцевому підсумку змушує комп'ютер виконувати відповідні команди, які даються машинною мовою.
З появою мов високого рівня програмісти отримали можливість більше часу приділяти вирішенню конкретної проблеми, не відволікаючись особливо на дуже тонкі питання організації самого процесу виконання завдання на машині. Крім того, поява цих мов ознаменувала перший крок на шляху створення програм, які вийшли за межі науково-дослідних лабораторій і фінансових відділів.
Підбиваючи підсумок даного періоду розвитку мов програмування, можна зробити висновок, що мови програмування високого рівня (FORTRAN, ALGOL, LISP, COBOL, тощо) не схожі на мову асемблера. Мови високого рівня розроблені спеціально для того, щоб можна було мати справу безпосередньо з завданням що вирішуються програмою. На цій посаді вони іноді називаються процедурними мовами, оскільки описують процедуру, яка використовується для вирішення завдання. Мови високого рівня машинонезалежні. Програми ж на мові асемблера безпосередньо відносяться до тієї машини, на якій вони повинні виконуватися.
Переваги мов програмування високого рівня:
- Алфавіт мови значно ширше машинного, що робить його набагато більш виразним і істотно підвищує наочність та зрозумілість тексту;
- Набір операцій, допустимих для використання, не залежить від набору машинних операцій, а вибирається з міркувань зручності формулювання алгоритмів розв'язання задач певного класу;
- Конструкції операторів задаються в зручному для людини вигляді;
- Підтримується широкий набір типів даних.
Недоліком мов високого рівня є більший розмір програм в порівнянні з програмами мовою низького рівня. Тому переважно мови високого рівня використовуються для розробок програмного забезпечення комп'ютерів і пристроїв, які мають великий обсяг пам'яті. А різні підвиди асемблера застосовуються для програмування інших пристроїв, де критичним є розмір програми.
Машинна мова
Невідомо, наскільки б прискорився розвиток програмування, якби напрацювання Цузе стали доступні іншим вченим в кінці 40-х років, але на практиці з розвитком комп'ютерної техніки спочатку набула поширення машинна мова. З її допомогою програміст міг задавати команди, оперуючи з осередками пам'яті, повністю використовуючи можливості машини. Суть цієї мови — набір кодів, обов'язково зрозумілих процесору, до якого звертаються. Частини («слова») цієї мови називаються інструкціями, кожна з яких представляє собою одну елементарне дію для центрального процесора, як, наприклад, зчитування інформації з комірки пам'яті. Лише при розумінні пристрою комп'ютерного обладнання і знання цих цілочисельних кодів можна було безпосередньо управляти процесором. Тоді ще комп'ютери були простими обчислювальними машинами, які застосовуються для різних математичних розрахунків. Але вони розвивалися, а використання більшості комп'ютерів на рівні машинної мови важко, особливо складним було читання і модифікація подібних програм, що ускладнювався використанням абсолютної адресації пам'яті. Тому з часом від використання машинних кодів довелося відмовитися.
Наприклад, для організації читання блоку даних з гнучкого диска програміст може використовувати 16 різних команд, кожна з яких вимагає 13 параметрів, таких як номер блока на диску, номер сектора на доріжці, тощо. Коли виконання операції з диском завершується, контролер повертає 23 значення, що відображають наявність і типи помилок, які необхідно аналізувати. Вже одне звернення до процесора громіздке, а аналіз помилок і зовсім видається неймовірним, особливо, якщо не саме з цим процесором доводитися працювати. Таким чином, набір команд машинної мови сильно залежить від типу процесора.
Мова асемблера
Протягом 1950-х років запити на розробку програмного забезпечення зросли і програми стали дуже великими. Доводилося писати дуже багато коду, хоча забезпечення і було досить простим. Однак, програми ускладнювалися все більше, їх структура також ускладнилася, тому що весь час розвивалася комп'ютерна техніка. Тоді стали користуватися спеціальними програмами — збирачами програм з маленьких шматочків кодів — асемблер. Почався новий етап розвитку.
Тепер, коли була потрібна ефективна програма, замість машинних мов використовувалися близькі до них машиноорієнтовані мови асемблера. До таких належали, наприклад, Autocode, з 1954 р. — IPL (попередник мови LISP), з 1955 — FLOW-MATIC. Тепер люди стали використовувати мнемонічні команди замість машинних команд.
Але навіть робота з асемблером досить складна і вимагає спеціальної підготовки. Наприклад, для процесора Zilog Z80 машинна команда 00000101 наказує процесору зменшити на одиницю свій регістр B
. В асемблері це ж буде записано як DEC B
.
Мови високого рівня
Наступний крок був зроблений в 1954 році, коли була розпочата розробка мови високого рівня — Фортран (FORTRAN, англ. FORmula TRANslator), компілятор для якого вперше з'явився в квітні 1957 року. До розробки такого мови підштовхнули нові можливості впровадженого в 1954 році комп'ютера IBM 704, в якому на апаратному рівні були реалізовані індексна адресація і операції з плаваючою крапкою. Слідом за ним з'явилися і деякі інші мови, наприклад: LISP, ALGOL 58, FACT.
Мови високого рівня імітують природні мови, використовуючи деякі слова розмовної мови і загальноприйняті математичні символи. Ці мови більш зручні для людини, за допомогою них можна писати програми до декількох тисяч рядків довжиною. Умовними словами можна було, як звично людині, набагато простіше висловити складну програмну операцію з бітів. Однак ранні варіанти Фортрану значно поступаються пізнім концепціям і мов, використовувався він для створення відносно простих за сучасними мірками програм.
У другій половині 50-х інтернаціональна команда розробників спробувала створити універсальну мову програмування. В результаті з'явився ALGOL 58 ({{lang-en>ALGOrithmic Language}}), за багатьма параметрами що був спадкоємцем Фортрану. У нього були додані нові концепції і узагальнення, формалізована концепція типів даних, дозволено використання ідентифікаторів будь-якої довжини, коли в Фортрані було обмеження в 6 символів. Цей варіант мови був швидше чорновим, тому в січні 1960 року в Парижі відбулися другі збори комітету з розробки законопроекту, де було вирішено внести значні зміни. Новий варіант отримав назву ALGOL 60, основними нововведеннями в ньому були: концепція блокової структури, можливість створення рекурсивних процедур, автоматичні масиви. Незважаючи на свої численні переваги, ALGOL так і не набув великого поширення, в першу чергу через складність в його реалізації та відсутності підтримки від корпорації IBM.
Поява структурного програмування
До кінця 1960-х років у зв'язку з ростом складності програм і подальшим розвитком програмних засобів виникла необхідність збільшити продуктивність праці програмістів, що призвело до розробки структурного програмування. Основоположником цієї методології вважається Едсгер Дейкстра, який в 1968 році опублікував свій знаменитий лист «Оператор Goto вважається шкідливим», а також описав основні принципи структурного програмування. З розвитком структурного програмування наступним досягненням були процедури і функції. Тобто, якщо є завдання, яке виконується кілька разів, то її можна оголосити як функцію або як процедуру і в виконанні програми просто викликати її. Загальний код програми в даному випадку стає менше. Це сприяло створенню модульних програм.
Наступним досягненням було об'єднання різнорідних даних, які використовуються в програмі в зв'язці, в структурі.
Структури — це складові типи даних, побудовані з використанням інших типів даних. Наприклад, структура часу розбивається на: години, хвилини, секунди. У свою чергу і години, і хвилини, і секунди описані за допомогою більш простих і елементарних типів даних. І замість роботи з окремими змінними, в яких легко заплутатися, можна перейти до структури «час», що включає в себе вже години, хвилини і секунди, і працювати з нею, як з єдиним типом одного формату.
Структурне програмування передбачає точно позначені керувальні структури, програмні блоки, відсутність інструкцій безумовного переходу (GOTO
), автономні підпрограми, підтримку рекурсії і локальних змінних. Суть такого підходу полягає в можливості розбиття програми на складові елементи зі збільшенням читабельності програмного коду.
Також створювалися функційні (аплікативні) мови (приклад: Lisp — англ. LISt Processing, 1958) і логічні мови (приклад: Prolog — англ. PROgramming in LOGic, 1972).
Хоча впровадження структурного програмування дало позитивний результат, навіть воно виявлялося неспроможним тоді, коли програма досягала певної довжини. Для того щоб написати більш складну і довгу програму, потрібен був новий підхід до програмування.
При використанні структур даних в програмі виробляються і відповідні їм функції для роботи з ними. Це призвело до думки їх об'єднати і використовувати спільно, так з'явилися класи.
Клас — це структура даних, що містить в собі не тільки змінні, але і функції, які працюють з цими змінними.
Це було значне досягнення в області програмування. Тепер програму можна було розбити на класи і тестувати не всю цілком (програма може складатися з 10 000 рядків коду), а розбити на 100 класів, і тестувати кожен клас окремо. Це істотно полегшило написання програмного продукту.
У підсумку, наприкінці 1970-х — початку 1980-х були розроблені принципи об'єктно-орієнтованого програмування. ООП поєднує кращі принципи структурного програмування з новими концепціями інкапсуляції, поліморфізму підтипів і успадкування.
Першою об'єктно-орієнтованою мовою програмування є Сімула-67, в якій вперше з'явилися класи. Концепції ООП отримали подальший розвиток в мові Smalltalk, в якій також були закладені основи систем з віконним управлінням. Більш пізніми прикладами об'єктно-орієнтованих мов є Object Pascal, , Java, C# та ін.
ООП дає змогу оптимально організовувати програми, розбиваючи проблему на складові частини, і працюючи з кожною окремо. Програма, написана об'єктно-орієнтованою мовою, розв'язуючи певну задачу, по суті, описує частину світу, що відноситься до цього завдання.
Примітки
- Р.Богатырев. Природа и эволюция сценарных языков. — Мир ПК, 2001.
- Е. К. Хеннера. Информатика под редакцией Е.К. Хеннера. — Академия, 2004.
- Себеста, 2001, с. 61.
- Себеста, 2001, с. 65.
- Себеста, 2001, с. 63-64.
- Себеста, 2001, с. 68.
- Себеста, 2001, с. 76.
- Себеста, 2001, с. 78.
- Себеста, 2001, с. 79.
- David R. Tribble (37.11.2005). (англ.). Архів оригіналу за 30 серпня 2017. Процитовано 13 лютого 2015.
- Edsger W. Dijkstra (04.1970). (PDF) (англ.). Техаський університет. Архів оригіналу (PDF) за 17 березня 2019. Процитовано 13 лютого 2015.
- Yourdon, Edward (1975). Techniques of program structure and design (англ.). Prentice-Hall. ISBN .
- Себеста, 2001, с. 92-93.
- Себеста, 2001, с. 111.
Література
- Роберт У. Себеста. Основные концепции языков программирования. — 5-е изд. — М. : Вильямс, 2001. — 672 с. — .
Посилання
- Еволюція мов програмування [ 13 лютого 2019 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ye sirim perekladom z inshoyi movi Mozhlivo vona stvorena za dopomogoyu mashinnogo perekladu abo perekladachem yakij nedostatno volodiye oboma movami Bud laska dopomozhit polipshiti pereklad kviten 2020 Progres komp yuternih tehnologij viznachiv proces poyavi novih riznomanitnih chislovih sistem dlya zapisu algoritmiv mov programuvannya Sens poyavi takoyi movi sproshennya programnogo kodu Movi programuvannya prijnyato diliti na p yat pokolin U pershe pokolinnya vhodyat movi stvoreni na pochatku 50 h rokiv XX go storichchya koli pershi komp yuteri tilki no z yavilisya Ce bula persha mova asemblera stvorena za principom odna instrukciya odin ryadok PochatokMashinni kodi i Asembler Fizichni principi roboti elektronnih obchislyuvalnih mashin EOM taki sho komp yuter mozhe sprijmati komandi sho skladayutsya tilki z odinic i nuliv poslidovnist perepadu naprugi tobto mashinnij kod Na pochatkovij stadiyi rozvitku EOM lyudini bulo neobhidno zapisuvati programi movoyu zrozumilij komp yuteru v mashinnih kodah Kozhna komanda skladalasya z kodu operacij ta adres operandiv virazhenih u viglyadi riznih poyednan odinic i nuliv Otzhe bud yaka programa dlya procesora viglyadala na toj chas yak poslidovnist odinic i nuliv Yak pokazala praktika spilkuvannya z komp yuterom taka mova gromizdka i nezruchna Koristuyuchis neyu legko pripustitisya pomilki zapisavshi ne v tij poslidovnosti 1 abo 0 Programu vazhko kontrolyuvati Krim togo pri programuvanni v mashinnih kodah treba dobre znati vnutrishnyu strukturu EOM princip roboti kozhnogo bloku Programi takoyu movoyu duzhe dovgi poslidovnosti odinic i nuliv ye mashinno zalezhnimi tobto dlya kozhnoyi EOM neobhidno bulo skladati svoyu programu Takozh programuvannya v mashinnih kodah vimagaye vid programista bagato chasu ta pidvishenoyi uvagi Vinikla potreba avtomatizaciyi procesu formuvannya mashinnogo kodu Vzhe u 1950 roci dlya zapisu program pochali zastosovuvati mnemonichnu movu movu assembly Mova asemblera dala zmogu zapisati mashinnij kod u bilsh zruchnij dlya lyudini formi dlya poznachennya komand i ob yektiv z yakimi ci komandi vikonuyutsya zamist dvijkovih kodiv vikoristovuvalisya bukvi abo skorocheni slova yaki vidobrazhali sut komandi Napriklad movoyu asemblera komanda skladannya dvoh chisel poznachayetsya slovom add todi yak yiyi mashinnij kod mozhe buti takim 000010 Asembler mova programuvannya nizkogo rivnya Mova programuvannya nizkogo rivnya ce mova programuvannya yaka oriyentovana na konkretnij tip procesora i vrahovuye jogo osoblivosti Tut nizkij riven ne oznachaye poganij Mayetsya na uvazi sho operatori movi blizki do mashinnogo kodu i oriyentovani na konkretni komandi procesora Poyava movi asemblera znachno polegshila zhittya programistiv oskilki teper zamist velikoyi kilkosti nuliv i odinic voni mogli pisati programu komandami sho skladayutsya z simvoliv nablizhenih do zvichajnoyi movi Cya mova koli bula novovvedennyam mala populyarnist bo davala zmogu pisati programi nevelikogo rozmiru Skladnist rozrobki na nomu velikih programnih kompleksiv prizvela do poyavi mov tretogo pokolinnya mov visokogo rivnya Ale na comu zhittya asemblera ne zakinchilasya vin maye populyarnist sered vuzkih kil Zaraz jogo vikoristovuyut v napisanni okremih fragmentiv program abo inodi v napisanni samih program Priklad ce vikoristannya asemblera v napisanni drajveriv igor ta zavantazhuvachiv OS Shvidkist roboti otrimanoyi programi znachno vishe shvidkosti programi napisanoyi movoyu programuvannya visokogo rivnya Ce poyasnyuyetsya tim sho otrimanij rozmir programi duzhe malij Rozrobniki antivirusnih program tezh vikoristovuyut asembler v deyakih modulyah svoyih program sho zabezpechuye yih shvidkodiyu yakbi ne asembler deyaki programi zavantazhuvalisya b blizko godini Pershi movi programuvannya visokogo rivnya Seredina 50 h rokiv XX st harakterizuyetsya strimkimi zminami Rol programuvannya v mashinnih kodah stala zmenshuvatisya stali z yavlyatisya movi novogo tipu sho vistupayut v roli poserednika mizh mashinami i programistami Nastav chas drugogo i tretogo pokolin mov programuvannya Z seredini 50 hrokiv XX st pochali stvoryuvati pershi movi programuvannya visokogo rivnya high level programming languages Ci movi ne buli priv yazani do pevnogo tipu EOM mashinonezalezhni Dlya kozhnoyi z nih buli rozrobleni vlasni kompilyatori Kompilyaciya translyaciya programi skladenoyi movoyu originalu visokogo rivnya v ekvivalentnu programu movoyu nizkogo rivnya blizkij do mashinnogo kodu absolyutnij kod ob yektnij modul inodi mova asemblera Mova programuvannya FORTRAN Persha mova visokogo rivnya Fortran bula stvorena v period z 1954 po 1957 rik grupoyu programistiv pid kerivnictvom Dzhona Bekusa v korporaciyi IBM Vona priznachalasya dlya naukovih i tehnichnih rozrahunkiv Nazva Fortran ye skorochennyam vid FORmula TRANslator perekladach formul Istoriya movi Naprikinci 1953 r Dzhon Bekus zaproponuvav pochati rozrobku efektivnoyi alternativi asembleru dlya programuvannya na komp yuteri IBM 704 Vzhe do seredini 1954 r bula zakinchena chornova specifikaciya movi Fortran Persha specifikaciya dlya Fortran z yavilasya v zhovtni 1956 r razom z pershim kompilyatorom postavlenim u kvitni 1957 roku Kompilyator buv optimizuvalnim tomu sho kliyenti vidmovlyalisya vikoristovuvati movu programuvannya visokogo rivnya yaka bula ne v zmozi generuvati kod z produktivnistyu nizhche nizh u asemblera U toj chas suspilstvo stavilosya skeptichno do novogo sposobu programuvannya i ne virilo v te sho Fortran dast zmogu programuvati shvidshe i efektivnishe Za slovami samogo Dzhona Bekusa velika chastina jogo roboti bula spryamovana na te shob buti linivim Jomu strashenno ne podobalosya pisati programi pid IBM 701 na asembleri Mova bula shiroko prijnyata vchenimi dlya napisannya program z intensivnimi obchislennyami Vklyuchennya kompleksnogo tipu danih zrobilo yiyi osoblivo pridatnoyu dlya tehnichnih zastosunkiv Do 1960 r isnuvali versiyi Fortran dlya komp yuteriv IBM 709 650 1620 7090 Yiyi velika populyarnist sponukala konkuruyuchih virobnikiv PK stvoryuvati kompilyatori Fortran dlya svoyih komp yuteriv Takim chinom vzhe do 1963 r isnuvalo ponad 40 kompilyatoriv dlya riznih platform Same tomu Fortran vvazhayut pershoyu shiroko vzhivanoyu movoyu programuvannya Fortran v SRSR Fortran v SRSR z yavivsya piznishe nizh na Zahodi oskilki spochatku tut bilsh perspektivnim movoyu vvazhavsya Algol U zaprovadzhenni Fortranu veliku rol zigralo spilkuvannya radyanskih fizikiv zi svoyimi kolegami z CERN de v 1960 h rokah majzhe vsi rozrahunki velisya z vikoristannyam program na Fortrani Pershij radyanskij kompilyator z Fortranu buv stvorenij v 1967 r dlya mashini Minsk 2 odnak vin ne otrimav velikoyi populyarnosti Shiroke vprovadzhennya Fortranu pochalosya pislya stvorennya v 1968 r kompilyatora FORTRAN DUBNA dlya mashini BESM 6 Mashini ES EOM sho z yavilisya v 1972 r vzhe z samogo pochatku mali translyator Fortranu zapozichenij z IBM 360 razom z inshim programnim zabezpechennyam Suchasnij Fortran Fortran shiroko vikoristovuvavsya v osnovnomu dlya naukovih i inzhenernih obchislen Za chas jogo isnuvannya bulo napisano bezlich bibliotek tomu Fortran dobre pidhodit dlya vikonannya chislovih obchislen Cherez veliku kilkist napisanih program Fortran vikoristovuyetsya i u 21 mu stolitti zminyuvati taki programi i tim bilshe perepisuvati yih nemaye sensu dzherelo Jogo struktura spriyaye tomu sho kompilyator mozhe duzhe dobre optimizuvati obchislennya Sered vchenih hodit taka pripovidka sho bud yaka matematichna zadacha vzhe maye rishennya na Fortrani Sered tisyach bibliotek na Fortrani ye napriklad paket dlya mnozhennya matric paketi dlya rozv zannya skladnih integralnih rivnyan i bagato inshih Mova programuvannya ALGOL 58 Prichina poyavi movi ALGOL Oskilki Fortran viyavivsya nastilki uspishnoyu movoyu v Yevropi vinikli poboyuvannya sho IBM bude dominuvati v komp yuternij galuzi Nimecke Tovaristvo prikladnoyi matematiki i mehaniki GAMM stvorilo komitet z rozrobki universalnoyi movi U toj zhe chas Asociaciya obchislyuvalnoyi tehniki ACM organizuvala shozhij komitet v SShA Nezvazhayuchi na te sho u yevropejciv bulo deyake zanepokoyennya z privodu panuvannya amerikanciv obidva cih komiteti zlilisya v odin Algol buv rozroblenij v 1958 roci na tizhnevij konferenciyi v ETH Cyurih Shvejcariya yak universalna mova programuvannya dlya shirokogo kola zastosuvannya a zgodom doopracovana komitetom stvorenim Mizhnarodnoyu federaciyeyu z obrobki informaciyi Do komitetu uvijshli ryad providnih yevropejskih ta amerikanskih vchenih i inzheneriv rozrobnikiv mov sered yakih buli Dzhon Bekus Dzhon Makkarti Peter Naur Edsger Dejkstra i Dzhozef Uegstil yakij zgodom ocholiv komitet iz rozrobki movi Kobol V hodi roboti vinikali trudnoshi neprincipovogo harakteru Tak napriklad odin z chleniv komitetu zgaduvav desyatkovu buryu vkraj rizku diskusiyu mizh amerikanskimi i yevropejskimi uchasnikami z privodu togo yakij same simvol povinen buti vikoristanij yak rozdilnik ciloyi i drobovoyi chastin chisla Amerikanci napolyagali na krapci yevropejci zh vimagali zastosovuvati tradicijnu dlya Yevropi komu Shob uniknuti konfliktiv z dribnih pitan bulo virisheno sho opis Algolu bude tririvnevim sho mistit riven opisiv publikacij ta realizaciyi Dribni pitannya tipu viboru mizh krapkoyu i komoyu abo vikoristannya alfavitu buli vineseni na drugij tretij riven sho dalo zmogu vidnosno shvidko virishiti principovi pitannya Na rivni publikacij uzgodzhenomu piznishe dopuskalosya vikoristannya nacionalnih klyuchovih sliv i standartiv podannya danih u tomu chisli i desyatkovogo drobu riven realizaciyi viznachav movu absolyutno strogo zgidno z nim povinni buli buduvatisya translyatori Spochatku nazvu sho proponuvalasya ALGOL ALGOrithmic Language bulo vidkinuto Ale oskilki vona stala zagalnovzhivanoyu oficijne im ya IAL dovelosya zgodom zminiti na ALGOL 58 Nova versiya z yavilasya v 1960 r i ALGOL 60 z nevelikimi zminami zroblenimi v 1962 r z 60 h i do pochatku 70 h rr minulogo stolittya buv standartom akademichnogo movi programuvannya U novoyi movi znajshlisya yak prihilniki tak i kritiki V SShA Algol prijnyali proholodno vin buv populyarnij lishe v akademichnomu seredovishi i to ne skriz Ti hto sprobuvav realizuvati Algol zitknulisya z ciloyu nizkoyu skladnoshiv Tak napriklad viyavilosya sho zhoden z isnuyuchih na toj chas komp yuteriv ne pidtrimuvav vvedennya vivedennya vsih 116 liter z yakih skladavsya alfavit Algola A os v Yevropi Algol prijnyali z entuziazmom Vin shvidko zavoyuvav populyarnist v akademichnomu seredovishi povsyudno jshla rozrobka kompilyatoriv bagato z yakih nezvazhayuchi na skladnosti realizaciyi viyavilisya dovoli uspishnimi Algol poshirivsya vid Velikoyi Britaniyi do Dalekogo shodu SRSR stavshi yak universalnoyu movoyu opisu algoritmiv v naukovih publikaciyah tak i zasobom realnogo programuvannya Vlastivosti movi Yiyi perevagi i nedoliki V Algoli z yavilosya uyavlennya pro programu ne yak pro vilnu poslidovnosti komand a yak pro blokovu strukturu sho skladayetsya z chitko opisanih ta vidokremlenih odna vid odnoyi chastin Osnovnij blok programi na Algoli ce sama golovna programa Vona mistit svoyu vikonuvanu chastinu ukladenu v blok obmezhenij paroyu klyuchovih sliv begin i end a takozh opisu pidprogram Kozhna pidprograma ce programa v miniatyuri sho maye vlasni opisani vseredini neyi dani odnoznachno viznachenij interfejs u viglyadi imeni ta spisku formalnih parametriv i blok kodu Pri comu v bloci mozhut vidilyatisya pidbloki Buli vidileni strukturni uparavlyayuchi konstrukciyi rozgaluzhennya cikli poslidovni dilyanki yaki vikonuyut umovno abo bagatorazovo vkladeni nabori operatoriv takozh obmezheni timi zh klyuchovimi slovami begin i end Suchasnim programistam podibna struktura programi zdayetsya ochevidnoyu de v chomu zastariloyu i ne zavzhdi zruchnoyu ale na moment poyavi Algolu vse ce bulo pomitnim krokom vpered Programi stavali regulyarnimi ce davalo mozhlivist naroshuvati yih za obsyagom zberigayuchi oglyadovimi zrozumilimi dostupnimi analizu i vipravlennya Same na bazi Algolu i jogo mov nashadkiv buli vikonani uspishni roboti z analitichnogo dovedennya pravilnosti program V Algoli bulo zaproponovano dva sposobi peredachi parametriv v pidprogramu za im yam ta za znachennyam Yaksho drugij sposib zaperechen ne viklikaye vin shiroko vikoristovuyetsya v absolyutnij bilshosti mov donini to pershij vin peredbachaye sho v proceduru peredayetsya im ya faktichnogo parametra i procedura pracyuye tak yak nibi v tochci zvernennya zapisanij yiyi kod de zamist formalnogo parametra napisano im ya faktichnogo privodiv do trudnoshiv realizaciyi kompilyatoriv i poyavi skladno viyavlyuvanih pomilok Mova programuvannya LISP Mova Lisp bula zaproponovana Dzh Makkarti v roboti 1960 roku i oriyentovana na rozrobku program dlya rozvyazannya zavdan ne chiselnogo harakteru Anglijska nazva ciyeyi movi LISP ye abreviaturoyu virazu LISt Processing obrobka spiskiv i dobre pidkreslyuye osnovnu oblast yiyi zastosuvannya Ponyattya spisok viyavilosya duzhe yemnim U viglyadi spiskiv zruchno predstavlyati algebrayichni virazi grafi elementi kincevih grup mnozhini pravila vivedennya i bagato inshih skladni ob yekti Spiski ye najbilsh gnuchkoyu formoyu podannya informaciyi v pam yati komp yuteriv Tomu ne divno sho zruchna mova specialno priznachena dlya obrobki spiskiv shvidko zavoyuvala populyarnist Rozvitok movi Protyagom majzhe sorokarichnoyi istoriyi jogo isnuvannya z yavilasya nizka dialektiv ciyeyi movi Common LISP Mac LISP Inter LISP Standard LISP ta in Vidminnosti mizh nimi ne nosyat principovogo harakteru i v osnovnomu zvodyatsya do kilkoh naboriv vbudovanih funkcij i pevnu riznicyu v formi zapisu program Tomu programist yaka navchilasya pracyuvati z odnim z nih bez zusil zmozhe osvoyiti i bud yakij inshij Osnovni perevagi movi Velikoyu perevagoyu Lispa ye jogo funkcionalna spryamovanist tobto programuvannya vedetsya za dopomogoyu funkcij Prichomu funkciya rozumiyetsya yak pravilo zistavlyaye elementam deyakogo klasu vidpovidni elementi inshogo klasu Sam proces spivstavlennya ne robit niyakogo vplivu na robotu programi vazhlivij tilki jogo rezultat znachennya funkciyi Ce daye zmogu vidnosno legko pisati i nalagodzhuvati veliki programni kompleksi Yasnist program chitke rozmezhuvannya yih funkcij vidsutnist kaverznih pobichnih efektiv pri yih vikonanni ye obov yazkovimi vimogami do programuvannya takih logichno skladnih zavdan yakimi ye zavdannya shtuchnogo intelektu Disciplina v programuvanni staye vazhlivoyu koli nad programoyu pracyuye ne odna lyudina a cila grupa programistiv Mova programuvannya COBOL Kobol buv rozroblenij v 1959 roci i priznachavsya nasampered dlya napisannya program dlya rozrobki biznes zastosunkiv a tak samo dlya roboti v ekonomichnij sferi Specifikaciya movi bula stvorena v 1959 roci Tvorci movi stavili sobi za metu zrobiti yiyi mashinonezalezhnoyu i maksimalno nablizhenoyu do prirodnoyi anglijskoyi movi Obidvi cili buli uspishno dosyagnuti programi na COBOL vvazhayutsya zrozumilimi navit nespecialistam oskilki teksti ciyeyu movoyu programuvannya ne potrebuyut bud yakih specialnih komentariv samodokumentuyuchi programi Perevagi ta nedoliki COBOL mova duzhe stara i svogo chasu vikoristovuvalasya vkraj aktivno tomu isnuye bezlich realizacij i dialektiv Dlya movi buv zatverdzhenij ryad standartiv u 1968 1974 1985 i 2002 rokah Ostannij standart dodav v movu pidtrimku ob yektno oriyentovanoyi paradigmi Mova daye zmogu efektivno pracyuvati z velikoyu kilkistyu danih vona nasichena riznomanitnimi mozhlivostyami poshuku sortuvannya ta rozpodilu Do chisla inshih plyusiv COBOL zazvichaj vidnosyat yiyi strukturovanist Dosit potuzhni kompilyatori z ciyeyi movi rozrobleni dlya personalnih komp yuteriv Deyaki z nih nastilki efektivni sho programu nalagodzhenu na personalnomu komp yuteri nevazhko perenesti na veliki EOM Pererahovuyuchi minusi ne mozhna ne zgadati pro te sho na Koboli mozhna zaprogramuvati lishe najprostishi algebrayichni obchislennya Dlya skladnih inzhenernih rozrahunkiv cya mova ne zgoditsya Visnovki z danogo periodu rozvitku mov programuvannya Na zori komp yuterizaciyi na pochatku 1950 h r r mashinna mova bula yedinoyu movoyu bilshogo lyudina do togo chasu ne pridumala Movi nizkogo rivnya malo shozhi na normalnu zvichnu lyudini movu Veliki gromizdki programi na takih movah pishutsya ridko Zate yaksho programa bude napisana takoyu movoyu to vona bude pracyuvati shvidko zajmayuchi malenkij obsyag i dopuskayuchi minimalnu kilkist pomilok Chim nizhche i blizhche do mashinnogo riven movi tim menshe i konkretnishe zavdannya yaki stavlyatsya pered kozhnoyu komandoyu Dlya poryatunku programistiv vid suvoroyi mashinnoyi movi programuvannya buli stvoreni movi visokogo rivnya tobto nemashinni movi yaki stali svoyeridnim zv yazuyuchim mistkom mizh lyudinoyu i mashinnoyu movoyu komp yutera Movi visokogo rivnya pracyuyut cherez translyacijni programi yaki vvodyat vihidnij kod gibrid anglijskih sliv i matematichnih viraziv yakij zchituye mashina i v kincevomu pidsumku zmushuye komp yuter vikonuvati vidpovidni komandi yaki dayutsya mashinnoyu movoyu Z poyavoyu mov visokogo rivnya programisti otrimali mozhlivist bilshe chasu pridilyati virishennyu konkretnoyi problemi ne vidvolikayuchis osoblivo na duzhe tonki pitannya organizaciyi samogo procesu vikonannya zavdannya na mashini Krim togo poyava cih mov oznamenuvala pershij krok na shlyahu stvorennya program yaki vijshli za mezhi naukovo doslidnih laboratorij i finansovih viddiliv Pidbivayuchi pidsumok danogo periodu rozvitku mov programuvannya mozhna zrobiti visnovok sho movi programuvannya visokogo rivnya FORTRAN ALGOL LISP COBOL tosho ne shozhi na movu asemblera Movi visokogo rivnya rozrobleni specialno dlya togo shob mozhna bulo mati spravu bezposeredno z zavdannyam sho virishuyutsya programoyu Na cij posadi voni inodi nazivayutsya procedurnimi movami oskilki opisuyut proceduru yaka vikoristovuyetsya dlya virishennya zavdannya Movi visokogo rivnya mashinonezalezhni Programi zh na movi asemblera bezposeredno vidnosyatsya do tiyeyi mashini na yakij voni povinni vikonuvatisya Perevagi mov programuvannya visokogo rivnya Alfavit movi znachno shirshe mashinnogo sho robit jogo nabagato bilsh viraznim i istotno pidvishuye naochnist ta zrozumilist tekstu Nabir operacij dopustimih dlya vikoristannya ne zalezhit vid naboru mashinnih operacij a vibirayetsya z mirkuvan zruchnosti formulyuvannya algoritmiv rozv yazannya zadach pevnogo klasu Konstrukciyi operatoriv zadayutsya v zruchnomu dlya lyudini viglyadi Pidtrimuyetsya shirokij nabir tipiv danih Nedolikom mov visokogo rivnya ye bilshij rozmir program v porivnyanni z programami movoyu nizkogo rivnya Tomu perevazhno movi visokogo rivnya vikoristovuyutsya dlya rozrobok programnogo zabezpechennya komp yuteriv i pristroyiv yaki mayut velikij obsyag pam yati A rizni pidvidi asemblera zastosovuyutsya dlya programuvannya inshih pristroyiv de kritichnim ye rozmir programi Mashinna movaNevidomo naskilki b priskorivsya rozvitok programuvannya yakbi napracyuvannya Cuze stali dostupni inshim vchenim v kinci 40 h rokiv ale na praktici z rozvitkom komp yuternoyi tehniki spochatku nabula poshirennya mashinna mova Z yiyi dopomogoyu programist mig zadavati komandi operuyuchi z oseredkami pam yati povnistyu vikoristovuyuchi mozhlivosti mashini Sut ciyeyi movi nabir kodiv obov yazkovo zrozumilih procesoru do yakogo zvertayutsya Chastini slova ciyeyi movi nazivayutsya instrukciyami kozhna z yakih predstavlyaye soboyu odnu elementarne diyu dlya centralnogo procesora yak napriklad zchituvannya informaciyi z komirki pam yati Lishe pri rozuminni pristroyu komp yuternogo obladnannya i znannya cih cilochiselnih kodiv mozhna bulo bezposeredno upravlyati procesorom Todi she komp yuteri buli prostimi obchislyuvalnimi mashinami yaki zastosovuyutsya dlya riznih matematichnih rozrahunkiv Ale voni rozvivalisya a vikoristannya bilshosti komp yuteriv na rivni mashinnoyi movi vazhko osoblivo skladnim bulo chitannya i modifikaciya podibnih program sho uskladnyuvavsya vikoristannyam absolyutnoyi adresaciyi pam yati Tomu z chasom vid vikoristannya mashinnih kodiv dovelosya vidmovitisya Napriklad dlya organizaciyi chitannya bloku danih z gnuchkogo diska programist mozhe vikoristovuvati 16 riznih komand kozhna z yakih vimagaye 13 parametriv takih yak nomer bloka na disku nomer sektora na dorizhci tosho Koli vikonannya operaciyi z diskom zavershuyetsya kontroler povertaye 23 znachennya sho vidobrazhayut nayavnist i tipi pomilok yaki neobhidno analizuvati Vzhe odne zvernennya do procesora gromizdke a analiz pomilok i zovsim vidayetsya nejmovirnim osoblivo yaksho ne same z cim procesorom dovoditisya pracyuvati Takim chinom nabir komand mashinnoyi movi silno zalezhit vid tipu procesora Mova asembleraProtyagom 1950 h rokiv zapiti na rozrobku programnogo zabezpechennya zrosli i programi stali duzhe velikimi Dovodilosya pisati duzhe bagato kodu hocha zabezpechennya i bulo dosit prostim Odnak programi uskladnyuvalisya vse bilshe yih struktura takozh uskladnilasya tomu sho ves chas rozvivalasya komp yuterna tehnika Todi stali koristuvatisya specialnimi programami zbirachami program z malenkih shmatochkiv kodiv asembler Pochavsya novij etap rozvitku Teper koli bula potribna efektivna programa zamist mashinnih mov vikoristovuvalisya blizki do nih mashinooriyentovani movi asemblera Do takih nalezhali napriklad Autocode z 1954 r IPL poperednik movi LISP z 1955 FLOW MATIC Teper lyudi stali vikoristovuvati mnemonichni komandi zamist mashinnih komand Ale navit robota z asemblerom dosit skladna i vimagaye specialnoyi pidgotovki Napriklad dlya procesora Zilog Z80 mashinna komanda 00000101 nakazuye procesoru zmenshiti na odinicyu svij registr B V asembleri ce zh bude zapisano yak DEC B Movi visokogo rivnyaNastupnij krok buv zroblenij v 1954 roci koli bula rozpochata rozrobka movi visokogo rivnya Fortran FORTRAN angl FORmula TRANslator kompilyator dlya yakogo vpershe z yavivsya v kvitni 1957 roku Do rozrobki takogo movi pidshtovhnuli novi mozhlivosti vprovadzhenogo v 1954 roci komp yutera IBM 704 v yakomu na aparatnomu rivni buli realizovani indeksna adresaciya i operaciyi z plavayuchoyu krapkoyu Slidom za nim z yavilisya i deyaki inshi movi napriklad LISP ALGOL 58 FACT Movi visokogo rivnya imituyut prirodni movi vikoristovuyuchi deyaki slova rozmovnoyi movi i zagalnoprijnyati matematichni simvoli Ci movi bilsh zruchni dlya lyudini za dopomogoyu nih mozhna pisati programi do dekilkoh tisyach ryadkiv dovzhinoyu Umovnimi slovami mozhna bulo yak zvichno lyudini nabagato prostishe visloviti skladnu programnu operaciyu z bitiv Odnak ranni varianti Fortranu znachno postupayutsya piznim koncepciyam i mov vikoristovuvavsya vin dlya stvorennya vidnosno prostih za suchasnimi mirkami program U drugij polovini 50 h internacionalna komanda rozrobnikiv sprobuvala stvoriti universalnu movu programuvannya V rezultati z yavivsya ALGOL 58 lang en gt ALGOrithmic Language za bagatma parametrami sho buv spadkoyemcem Fortranu U nogo buli dodani novi koncepciyi i uzagalnennya formalizovana koncepciya tipiv danih dozvoleno vikoristannya identifikatoriv bud yakoyi dovzhini koli v Fortrani bulo obmezhennya v 6 simvoliv Cej variant movi buv shvidshe chornovim tomu v sichni 1960 roku v Parizhi vidbulisya drugi zbori komitetu z rozrobki zakonoproektu de bulo virisheno vnesti znachni zmini Novij variant otrimav nazvu ALGOL 60 osnovnimi novovvedennyami v nomu buli koncepciya blokovoyi strukturi mozhlivist stvorennya rekursivnih procedur avtomatichni masivi Nezvazhayuchi na svoyi chislenni perevagi ALGOL tak i ne nabuv velikogo poshirennya v pershu chergu cherez skladnist v jogo realizaciyi ta vidsutnosti pidtrimki vid korporaciyi IBM Nadali z yavilisya COBOL 1959 Paskal 1970 Si 1972 Poyava strukturnogo programuvannyaDo kincya 1960 h rokiv u zv yazku z rostom skladnosti program i podalshim rozvitkom programnih zasobiv vinikla neobhidnist zbilshiti produktivnist praci programistiv sho prizvelo do rozrobki strukturnogo programuvannya Osnovopolozhnikom ciyeyi metodologiyi vvazhayetsya Edsger Dejkstra yakij v 1968 roci opublikuvav svij znamenitij list Operator Goto vvazhayetsya shkidlivim a takozh opisav osnovni principi strukturnogo programuvannya Z rozvitkom strukturnogo programuvannya nastupnim dosyagnennyam buli proceduri i funkciyi Tobto yaksho ye zavdannya yake vikonuyetsya kilka raziv to yiyi mozhna ogolositi yak funkciyu abo yak proceduru i v vikonanni programi prosto viklikati yiyi Zagalnij kod programi v danomu vipadku staye menshe Ce spriyalo stvorennyu modulnih program Nastupnim dosyagnennyam bulo ob yednannya riznoridnih danih yaki vikoristovuyutsya v programi v zv yazci v strukturi Strukturi ce skladovi tipi danih pobudovani z vikoristannyam inshih tipiv danih Napriklad struktura chasu rozbivayetsya na godini hvilini sekundi U svoyu chergu i godini i hvilini i sekundi opisani za dopomogoyu bilsh prostih i elementarnih tipiv danih I zamist roboti z okremimi zminnimi v yakih legko zaplutatisya mozhna perejti do strukturi chas sho vklyuchaye v sebe vzhe godini hvilini i sekundi i pracyuvati z neyu yak z yedinim tipom odnogo formatu Strukturne programuvannya peredbachaye tochno poznacheni keruvalni strukturi programni bloki vidsutnist instrukcij bezumovnogo perehodu GOTO avtonomni pidprogrami pidtrimku rekursiyi i lokalnih zminnih Sut takogo pidhodu polyagaye v mozhlivosti rozbittya programi na skladovi elementi zi zbilshennyam chitabelnosti programnogo kodu Takozh stvoryuvalisya funkcijni aplikativni movi priklad Lisp angl LISt Processing 1958 i logichni movi priklad Prolog angl PROgramming in LOGic 1972 Hocha vprovadzhennya strukturnogo programuvannya dalo pozitivnij rezultat navit vono viyavlyalosya nespromozhnim todi koli programa dosyagala pevnoyi dovzhini Dlya togo shob napisati bilsh skladnu i dovgu programu potriben buv novij pidhid do programuvannya Ob yektno oriyentovane programuvannyaPri vikoristanni struktur danih v programi viroblyayutsya i vidpovidni yim funkciyi dlya roboti z nimi Ce prizvelo do dumki yih ob yednati i vikoristovuvati spilno tak z yavilisya klasi Klas ce struktura danih sho mistit v sobi ne tilki zminni ale i funkciyi yaki pracyuyut z cimi zminnimi Ce bulo znachne dosyagnennya v oblasti programuvannya Teper programu mozhna bulo rozbiti na klasi i testuvati ne vsyu cilkom programa mozhe skladatisya z 10 000 ryadkiv kodu a rozbiti na 100 klasiv i testuvati kozhen klas okremo Ce istotno polegshilo napisannya programnogo produktu U pidsumku naprikinci 1970 h pochatku 1980 h buli rozrobleni principi ob yektno oriyentovanogo programuvannya OOP poyednuye krashi principi strukturnogo programuvannya z novimi koncepciyami inkapsulyaciyi polimorfizmu pidtipiv i uspadkuvannya Pershoyu ob yektno oriyentovanoyu movoyu programuvannya ye Simula 67 v yakij vpershe z yavilisya klasi Koncepciyi OOP otrimali podalshij rozvitok v movi Smalltalk v yakij takozh buli zakladeni osnovi sistem z vikonnim upravlinnyam Bilsh piznimi prikladami ob yektno oriyentovanih mov ye Object Pascal C Java C ta in OOP daye zmogu optimalno organizovuvati programi rozbivayuchi problemu na skladovi chastini i pracyuyuchi z kozhnoyu okremo Programa napisana ob yektno oriyentovanoyu movoyu rozv yazuyuchi pevnu zadachu po suti opisuye chastinu svitu sho vidnositsya do cogo zavdannya PrimitkiR Bogatyrev Priroda i evolyuciya scenarnyh yazykov Mir PK 2001 E K Hennera Informatika pod redakciej E K Hennera Akademiya 2004 Sebesta 2001 s 61 Sebesta 2001 s 65 Sebesta 2001 s 63 64 Sebesta 2001 s 68 Sebesta 2001 s 76 Sebesta 2001 s 78 Sebesta 2001 s 79 David R Tribble 37 11 2005 angl Arhiv originalu za 30 serpnya 2017 Procitovano 13 lyutogo 2015 Edsger W Dijkstra 04 1970 PDF angl Tehaskij universitet Arhiv originalu PDF za 17 bereznya 2019 Procitovano 13 lyutogo 2015 Yourdon Edward 1975 Techniques of program structure and design angl Prentice Hall ISBN 9780139017025 Sebesta 2001 s 92 93 Sebesta 2001 s 111 LiteraturaRobert U Sebesta Osnovnye koncepcii yazykov programmirovaniya 5 e izd M Vilyams 2001 672 s ISBN 5 8459 0192 8 PosilannyaEvolyuciya mov programuvannya 13 lyutogo 2019 u Wayback Machine