неділя, 18 квітня 2021 р.

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

 Тут розміщено матеріал, підборку якого зробили Нужна Єлизавета.

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


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

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

1.Машинні коди і Асемблер

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

Як показала практика спілкування з комп'ютером, така мова громіздка і незручна. Користуючись нею легко припуститися помилки, записавши не в тій послідовності 1 або 0. Програму важко контролювати. Крім того, при програмуванні в машинних кодах треба добре знати внутрішню структуру ЕОМ, принцип роботи кожного блоку. Програми такою мовою — дуже довгі послідовності одиниць і нулів є машинно залежними, тобто для кожної ЕОМ необхідно було складати свою програму. Також програмування в машинних кодах вимагає від програміста багато часу та підвищеної уваги.

Виникла потреба автоматизації процесу формування машинного коду. Вже у 1950 році для запису програм почали застосовувати мнемонічну мову — мову assembly. Мова асемблера дозволила уявити машинний код у більш зручній для людини формі: для позначення команд і об'єктів,з якими ці команди виконуються, замість двійкових кодів використовувалися букви або скорочені слова, які відображали суть команди. Наприклад, на мові асемблера команда складання двох чисел позначається словом add, тоді як її машинний код може бути таким: 000010.

Асемблер — мова програмування низького рівня. Мова програмування низького рівня — це мова програмування, яка орієнтована на конкретний тип процесора і враховує його особливості. В даному випадку «низький рівень» не означає «погани». Мається на увазі, що оператори мови близькі до машинного коду і орієнтовані на конкретні команди процесора. Поява мови асемблера значно полегшила життя програмістів, так як тепер замість великої кількості нулів і одиниць, вони могли писати програму командами, що складаються з символів наближених до звичайної мови. Ця мова, коли була нововведенням, мала популярність, бо дозволяла писати програми невеликого розміру.

Зразок мови Асемблер 

  Складність розробки на ньому великих програмних комплексів призвела до появи мов третього покоління — мов високого рівня. Але на цьому життя асемблера не закінчилася, він має популярність серед вузьких кіл. Зараз його використовують в написанні окремих фрагментів програм або іноді в написанні самих програм. Приклад, це використання асемблера в написанні драйверів, ігр та завантажувачів ОС. Швидкість роботи отриманої програми значно вище швидкості програми написаної на мові програмування високого рівня. Це пояснюється тим, що отриманий розмір програми дуже малий. Розробники антивірусних програм теж використовують асемблер в деяких модулях своїх програм, що забезпечує їх швидкодію, якби не асемблер, деякі програми завантажувалися б близько години.

 2.Перші мови програмування високого рівня

Середина 50-х рр. характеризується стрімкими змінами. Роль програмування в машинних кодах стала зменшуватися, стали з'являтися мови нового типу, що виступають в ролі посередника між машинами і програмістами. Настав час другого і третього поколінь мов програмування.

З середини 50-х рр. XX ст. почали створювати перші мови програмування високого рівня (high-level programming languages). Ці мови не були прив'язані до певного типу ЕОМ (машино-незалежні). Для кожного з них були розроблені власні компілятори. Компіляція — трансляція програми, складеної мовою оригіналу високого рівня, в еквівалентну програму на мові низького рівня, близькій до машинного коду (абсолютний код, об'єктний модуль, іноді мова асемблера).

Таблиця мов програмування

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

Перша мова високого рівня Фортран була створена в період з 1954 по 1957 рік групою програмістів під керівництвом Джона Бекуса в корпорації IBM. Вона призначалася для наукових і технічних розрахунків. Назва Fortran є скороченням від FORmula TRANslator

3.1 Історія мови

Наприкінці 1953 Джон Бекус запропонував почати розробку ефективної альтернативи асемблеру для програмування на ПК IBM 704. Вже до середини 1954 була закінчена чорнова специфікація мови Fortran. Перша специфікація для Fortran з'явилася в жовтні 1956 разом з першим компілятором, поставленим у квітні 1957. Компілятор був оптимізований, тому що клієнти відмовлялися використовувати мову програмування високого рівня, яка була не в змозі генерувати код з продуктивністю нижче, ніж у асемблера.

У той час суспільство ставилося скептично до нового способу програмування і не вірило в те, що Fortran дозволить програмувати швидше і ефективніше. За словами самого Джона Бекуса, велика частина його роботи була спрямована на те, щоб «бути лінивим». Йому страшенно не подобалося писати програми під IBM 701 на асемблері.

Мова була широко прийнята вченими для написання програм з інтенсивними обчисленнями. Включення комплексного типу даних зробило її особливо підходящою для технічних додатків.

До 1960 року існували версії Fortran для комп'ютерів IBM 709, 650, 1620, 7090. Її велика популярність спонукала конкуруючих виробників ПК створювати компілятори Fortran для своїх комп'ютерів. Таким чином, вже до 1963 існувало понад 40 компіляторів для різних платформ. Саме тому Fortran вважають першою широко вживаною мовою програмування.

 3.2 Фортран в СРСР

Фортран в СРСР з'явився пізніше, ніж на Заході, оскільки спочатку тут більш перспективним мовою вважався Алгол. У запровадженні Фортрана велику роль зіграло спілкування радянських фізиків зі своїми колегами з CERN, де в 1960-х роках майже всі розрахунки велися з використанням програм на Фортрані.Перший радянський компілятор з Фортрану був створений в 1967 р. для машини «Мінськ-2», однак він не отримав великої популярності. Широке впровадження Фортрана почалося після створення в 1968 р компілятора ФОРТРАН-ДУБНА для машини БЕСМ-6. Машини ЕС ЕОМ, що з'явилися в 1972 р, вже з самого початку мали транслятор Фортрану .


Зразок мови

3.3 Сучасний Фортран

Фортран широко використовувався в основному для наукових і інженерних обчислень. За час його існування було написано безліч бібліотек, тому Фортран добре підходить для вирішення численних завдань. Через велику кількість написаних програм Фортран використовується і у 21-му столітті: змінювати такі програми, і тим більше, переписувати їх, немає сенсу. Його структура сприяє тому, що компілятор може дуже добре оптимізувати обчислення.Серед вчених ходить така приповідка, що будь-яка математична задача вже має рішення на Фортрані.Серед тисяч бібліотек на Фортрані є, наприклад, пакет для множення матриць, пакети для вирішення складнихінтегральних рівнянь, і багато інших.


4. Мова програмування ALGOL 58

4.1 Причина появи мови ALGOL

Оскільки Фортран виявився настільки успішною мовою, в Європі виникли побоювання, що IBM буде домінувати в комп'ютерній галузі. Німецьке Товариство прикладної математики і механіки (GAMM) створило комітет з розробки універсальної мови. У той же час Асоціація обчислювальної техніки (ACM) організувала схожий комітет в США. Незважаючи на те, що у європейців було деяке занепокоєння з приводу панування американців, обидва цих комітети злилися в один.

Алгол був розроблений в 1958 році на тижневій конференції в ETH (Цюріх, Швейцарія) як універсальна мова програмування для широкого кола застосування, а згодом доопрацьована комітетом, створеним Міжнародною федерацією з обробки інформації. До комітету увійшли ряд провідних європейських та американських вчених і інженерів-розробників мов, серед яких були Джон БекусДжон МаккартіПетер НаурЕдсгер Дейкстра і Джозеф Уегстіл, згодом очолив комітет із розробки мови Кобол.

В ході роботи виникали труднощі непринципового характеру. Так, наприклад, один з членів комітету згадував «десяткову бурю» — вкрай різку дискусію між американськими і європейськими учасниками з приводу того, який саме символ повинен бути використаний як роздільник цілої і дробової частин числа. Американці наполягали на точці, європейці ж вимагали застосовувати традиційну для Європи кому. Щоб уникнути конфліктів по дрібним питанням, було вирішено, що опис Алголу буде три-рівневим, що включає рівень описів, публікацій та реалізації. Дрібні питання, типу вибору між точкою і комою, або використання алфавіту, були винесені на другий-третій рівень, що дозволило відносно швидко вирішити принципові питання. На рівні публікацій, узгодженому пізніше, допускалося використання національних ключових слів і стандартів представлення даних (у тому числі і десяткового дробу), рівень реалізації визначав мову абсолютно строго — згідно з ним повинні були будуватися транслятори.Спочатку назву що пропонувалася "ALGOL" (ALGOrithmic Language) було відкинуто. Але, оскільки вона стала загальновживаною, офіційне ім'я IAL довелося згодом змінити на ALGOL 58.

Приклад мови

Нова версія з'явилася в 1960 р, і ALGOL 60 (з невеликими змінами, зробленими в 1962 р.) з 60-х і до початку 70-х рр. минулого століття був стандартом академічного мови програмування.

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

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

4.2 Властивості мови. Її переваги і недоліки

У Алголі з'явилося уявлення про програму не як про вільну послідовності команд, а як про блокову структуру, що складається з чітко описаних та відокремлених одна від одної частин. Основний блок програми на Алголі — це сама головна програма. Вона містить свою виконувану частину, укладену в блок, обмежений парою ключових слів begin і end, а також опису підпрограм. Кожна підпрограма — це програма в мініатюрі, що має власні, описані всередині неї дані, однозначно визначений інтерфейс у вигляді імені та списку формальних параметрів, і блок коду.При цьому в блоці можуть виділятися підблоки.Були виділені структурні керуючі конструкції: розгалуження, цикли, послідовні ділянки, які виконують умовно або багаторазово вкладені набори операторів, також обмежені тими ж ключовими словами begin і end.

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

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


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

Мова Лісп була запропонована Дж. Маккарті в роботі 1960 року і орієнтована на розробку програм для вирішення завдань не чисельного характеру. Англійська назва цієї мови — LISP є абревіатурою виразу LISt Processing (обробка списків) і добре підкреслює основну область її застосування. Поняття «список» виявилося дуже ємним.

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

5.1 Розвиток мови

Протягом майже сорокарічної історії його існування з'явилася низка діалектів цієї мови: Common LISP, Mac LISP, Inter LISP, Standard LISP та ін.

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

5.2 Основні переваги мови

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

Дисципліна в програмуванні стає важливою, коли над програмою працює не одна людина, а ціла група програмістів.

 

ПРИКЛАД МОВИ

 

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

Кобол був розроблений в 1959 році і призначався насамперед для написання програм для розробки бізнес-додатків, а так само для роботи в економічній сфері.

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

6.1 Переваги та недоліки

COBOL — мова дуже стара і свого часу використовувалася вкрай активно, тому існує безліч реалізацій і діалектів. Для мови був затверджений ряд стандартів: у 1968, 1974, 1985 і 2002 роках.

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

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


 

Висновки

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

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

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

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

Переваги мов програмування високого рівня:

1.     Алфавіт мови значно ширше машинного, що робить його набагато більш виразним і істотно підвищує наочність та зрозумілість тексту;

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

3.     Конструкції операторів задаються в зручному для людини вигляді;

4.     Підтримується широкий набір типів даних.

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

 

Немає коментарів:

Дописати коментар

Пазл

  20 Word Art хмара слів