Сторінка
7
У загальному випадку залежно від виграшу в продуктивності і тимчасових витрат всі види оптимізації можна розділити на декілька рівнів. Перший і другий рівні оптимізації, як правило, підвищують швидкодію на 10 - 15% при мінімальних витратах. Третій рівень оптимізації дозволяє збільшити продуктивність ще на 5%, проте це обійдеться значно дорожчим.
Таким чином, вибір типа алгоритмічної мови (див. мал. 7.3) залежить від багатьох чинників: призначення, зручності написання вихідних програм, ефективності отримуваних об'єктних програм і тому подібне Для ПК провідне місце в даний час займають мови високого рівня, наприклад різні версії мов: Бейсик, Паскаль, Фортран, Кобол, АПЛ, Ада, Сі і так далі
Серед них домінуюча роль відводиться процедурно-орієнтованим мовам, званим також універсальними (хоча деякі з них, наприклад Фортран, Кобол, Бейсик і тому подібне, і розроблялися з орієнтацією на конкретну сферу вживання).
Абсолютну більшість мов програмування в даний час складають процедурні мови, за допомогою яких програміст визначає послідовність реалізації подій в об'єктній програмі шляхом послідовного запису пропозицій у вихідній програмі. Іншими словами, програмування на цих мовах має на увазі необхідність опису не лише того, що необхідно отримати в результаті рішення завдання, але і того, як це необхідно здійснити.
Одним з головних напрямів вдосконалення мов програмування для завдань економічного управління було прагнення до розробки таких мов, в яких до мінімуму зводилася (а в ідеалі взагалі відсутня) проблема як. Природно, що такі мови не можуть бути процедурними.
Першу спробу створення такої мови зробив Ломбарду той, що запропонував і реалізував в 1963 р. для приватного класу завдань, пов'язаних з обробкою файлів у сфері управління, мова General business-oriented language baseed on decision expression. У цій же області свої мови запропонували фірми ICL (мова NICOL) і IBM (мова РПГ), в яких багато що пов'язане з процедурою роботи програми носить швидше неявний, чим явний характер. Враховуючи, що значна частина логіки програми реалізується
автоматично, час створення програм за допомогою таких мов і число налагоджувальних перевірок значно скоротилися.
Таким чином, разом з універсальними процедурно-орієнтованими мовами стали створюватися проблемно-орієнтовані мови програмування, призначені для опису процесів обробки інформації в якій-небудь вузькій (специфічною), області, в яких рішення задачі більшою мірою зосереджувалося на проблемі, що необхідно отримати в результаті, а проблема, як це необхідно зробити, більшою чи меншою мірою знімалася з програміста. Серед цих мов найбільш відомими є: РПГ - мова для генерації звітів, Лісп - мова для обробки списків, GPSS - мова для моделювання, АПЛ - мова для статистичної обробки масивів.
В рамках реалізації цієї ідеї "програмування без програмістів" були створені не процедурні мови, що наближаються по своєму синтаксису до природної мови і орієнтовані на користувачів - фахівців управління, що не є програмістами.
Найбільш відомими з мов цього типа є:
• Smalltalking - малий розмовний;
• QBE (Query By Example-программирование на прикладі);
• Форт, який знаходить вживання при рішенні складних завдань імітаційного моделювання, в системах штучного інтелекту в графічних системах і тому подібне
Основною особливістю мови Форт є його відвертість, яка дозволяє на основі наявних визначень будувати нові функції. При цьому програміст Може вводити нові операції, типів даних або визначення. Можливість підтримки засобами Форт багатозадачного режиму роботи додають йому властивості операційної системи.
Особливе місце серед мов програмування займають функціональні мови, зокрема Пролог (PROLOG -
PROgramming in LOGic - логічне програмування). Головне призначення мови - розробка інтелектуальних програм і систем. Пролог - це мова програмування, створена спеціально для роботи з базами знань, заснованими на фактах і правилах (одного з елементів систем штучного інтелекту). У мові реалізований механізм повернення для виконання зворотного ланцюжка міркувань, при якому передбачається, що деякі виводи або висновки достеменні, а потім ці припущення перевіряються в базі знань, що містить факти і правила логічного виводу. Якщо припущення не підтверджується, виконується повернення і висувається нове припущення.
Мовні засоби СУБД призначені в першу чергу для розробки прикладних програм вирішення завдань економічного управління, інформація для яких зберігається і підтримується за допомогою баз даних. Синтаксис мови програмування в середовищі СУБД мало чим відрізняється від синтаксису високорівневих мов програмування, у зв'язку з чим вказані програмно-інструментальні засоби орієнтовані в основному на професійних програмістів, хоча наявність розвинених засобів підказки і допомоги (у вигляді прикладів, що демонструють використання окремих мовних конструкцій) значно полегшує роботу досить широкого круга користувачів.
Sequel (Structured English QUEry Language) і його вдосконалений варіант SQL - мови маніпулювання даними, засновані на численні стосунків. Використовуються в реляційних СУБД як мова запитів до баз даних і мови програмування завдань обробки даних.
З розвитком комп'ютерних мереж, збільшенням обчислювальної потужності комп'ютерів і їх ресурсів виникла потреба в мові, що інтерпретує, дозволяє отримувати багатоплатформене обчислювальне середовище шляхом перетворення з його допомогою програм, написаних на інших мовах програмування (при, незначному зниженні їх продуктивності). Найближче до реалізації подібної мови підійшла технологія мови Java. Об'єктно-орієнтована мова Java (розроблений на базі мови С++) призначена для створення надійних, переносимих, розподілених мережевих програмних застосувань, що працюють в різних багатовіконних системах в умовах архітектури клієнт-сервер, а також для адміністраторів мережі, що використовують Java-приложения для поліпшення інтерактивних якостей Web-серверов.
Іншою об'єктно-орієнтованою мовою програмування є мова Delphi. Створений на базі мови Паськаль фахівцями фірми Borland мова Delphi, володіючи потужністю і гнучкістю мов С і С++, перевершує їх по зручності і простоті інтерфейсу при розробці додатків, що забезпечують взаємодію з базами даних і підтримку різного роду робіт в рамках корпоративних мереж і мережі Інтернет.