Головна

У розвитку мов програмування

  1.  variability in language - варіативність мовних засобів
  2.  А ось інший тип взаємодії мов. У російській мові жителів міст і Мови йдуть один одному назустріч
  3.  А) Спілкування мовне і немовних
  4.  А) оболонки, б) Утилітами, в) Автономними програмами, г) Системами програмування
  5.  А. Мова програмування - ФБД (FBD).
  6.  Алгоритмічні (процедурні) мови програмування
  7.  Аналіз рішень задач лінійного програмування.

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

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

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

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

необхідність підвищення ефективності праці програмістів, зменшення рівня абстрагування - наближення методів програмування до додатків;

розвиток додатків - впровадження комп'ютерів в найрізноманітніші сфери людської діяльності;

значне збільшення ресурсів комп'ютерів і їх продуктивності;

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

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

У 1945 р німецький математик Конрад Цузе винайшов систему запису, яку назвав «Планкалкюль» (що означає програмне обчислення), але мова не був реалізований, проте, багато розвинених в ньому ідеї знайшли відображення в сучасних мовах. Історія розвитку традиційних мов високого рівня, т. Е. Мов, орієнтованих не так на коди комп'ютерів, а на алгоритм вирішення задачі, представлена ??на рис. 4.1.

У 1949 р Дж. Мочлі, одним з творців першого універсального комп'ютера ЕНІАК, був розроблений Short code - Асемблер, реалізований на цій машині.

Безсумнівно, найбільший вплив на всі наступні мови програмування надав Фортран (FORTRAN - FOR (mula) TRANS (lator)), розроблений Дж. Бекуса і його колегами з фірми IBM в 1954 - 57 рр. і реалізований на комп'ютері IBM 704. У ті роки мова була зустрінутий скептично, однак розробка ефективного транслятора для найпопулярніших (на ті часи) в світі комп'ютерів дозволило мови завоювати загальне визнання у програмістів, які займаються науковими розрахунками. Приблизно в той же самий час Грейс Мюррей Хоппер - офіцер ВМФ США (з фірми UNIVAC) розробила більш просту мову комерційних завдань Флоу-Матік - прообраз Кобола. Дуже важливе місце серед мов займає Алгол (ALGO (rythmic) L (anguage)), перша версія якого була розроблена в Європі міжнародним комітетом на основі ідей, закладених в Фортране і Планкалкюль. Алгол хоча і не придбав такої популярності, як Фортран, але зробив дуже великий вплив на подальший розвиток мов. На початку 60-х років з'явився Лисп і була розроблена нотація APL.

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

Частковий успіх мови РL / 1, розробленого фірмою IBM, показав, що всеосяжний мова повинна бути важка у вивченні і

Мал. 4.1. Історія розвитку мов програмування

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

Прагнення піднятися на новий більш високий рівень програмування і наблизитися до додатків пов'язано з так званими непроцедурного або описовими мовами, які можна назвати мовами надвисокого рівня, і вони набувають все більшого значення. Описова програма констатує, який результат бажаний, не вказуючи, як цього досягти. У програмі швидше формулюються відносини, а не послідовність обчислень. Таким чином, програміст звільняється від обов'язку розробляти кроки алгоритму і визначати їх порядок. Одним з різновидів таких мов є Пролог PRO (gramming) in LOG (ic), що представляє собою удосконалення мови Лісп (LISP - L (ist) I (nformation) S (ymbol) P (rocessing)), а також Візікальк і Мультіплан, які отримали поширення на персональних комп'ютерах.

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

Інша тенденція у розвитку мов програмування - зростання інтересу до систем запису, званим об'єктно-орієнтованими мовами, наприклад Симула 67 (SIMULA - SIMU (lation) LA (nguage)). Крім цього, поява багатопроцесорних систем привело до необхідності розробки мов паралельних обчислень. Прикладом таких мов можуть служити Оккам, Компедий (Computer Parallel) і ін. Розвиток мов тісно пов'язане з розвитком технічних засобів, з появою нових інформаційних технологій, вдосконаленням програмних інтерфейсів. Це відноситься до засобів програмування графічних програмних оболонок, програмування мережевих додатків, вдосконалення лінгвістичних можливостей операційних систем і т. П.

В даний час налічується кілька тисяч мов і, тим не менш, триває розробка нових. Це, мабуть, пов'язано з тим, що немає хорошого способу для визначення якості мови. При всьому різноманітті мов широко використовуються лише деякі. Від виникнення мови до його «успішну стандартизацію» (стандартизація мов програмування проводиться організацією ASNI - American Standard National Institute) проходить приблизно 10 років, тому програмісти віддають перевагу старим мови, незважаючи на постійну критику з боку ентузіастів-розробників нових мов. Це пов'язано з тим великим доробком програмного забезпечення, який існує у традиційних мов, а також новими їх версіями, в яких триває подальше вдосконалення з урахуванням критичних зауважень (не завжди об'єктивних). Тому характерною тенденцією останнього часу в розвитку традиційних мов високого рівня є не стільки створення нових мов, скільки включення нових функціональних можливостей в традиційні мови - використання елементів машинної графіки, об'єктна орієнтація, створення графічних програмних інтерфейсів кошти розпаралелювання і т. П. Проблеми паралельного програмування, використання віртуальної пам'яті в значній мірі вирішуються не тільки на рівні прикладного програмування, але також засобами системних програм (операційних систем, трансляторів і т. п.).

Серед чималої кількості мов, розроблених до теперішнього часу, дуже важливе значення мають мови, які хоча і не отримали широкої применительной практики, але зробили сильний вплив на весь подальший розвиток лінгвістичного забезпечення інформатики. До таких мов можна віднести: ALGOL (міжнародний комітет), Симула 67 (Крістен Нігаард, Оле Йохан Дав), Small Talk (Ален Кей), Modula, Pascal (Object Pascal), Oberton (Ніклаус Вірт).

В цілому, рейтинг за мовою дуже складне завдання, оскільки існує 2570 різних можливостей або властивостей для порівняння, до яких додаються 12 характеристик трансляторів. Отже, не існує найкращого мови програмування, так само як не існує найкращого природної мови. Вибір мови визначається цілями застосування і індивідуальністю програміста. Як сказав король Карл V [17]: «Я розмовляю по-іспанськи з богом, по-італійськи з жінками, по-французьки з чоловіками і по-німецьки зі своїм конем».

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




 Суперкомп'ютерів, мейнфреймів і міні-комп'ютерів |  перспективи |  Функціональні можливості, номенклатура |  периферійних пристроїв |  Робочі станції, сервери і суперсервери |  Еволюція розподілених обчислювальних систем |  Способи передачі даних по фізичних лініях |  Стандартизації, багаторівневий підхід, стек протоколів |  Сучасний стан і найближчі перспективи |  Адресація, основні програми |

© 2016-2022  um.co.ua - учбові матеріали та реферати