КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
III. Прикладне ПЗ
I. Системне ПЗ. Структура ПЗ Все ПЗ можна умовно поділити на такі (складові) три групи: II. Інструментальне ПЗ
І. Системне ПЗ
Під Системним ПЗ розуміють ПЗ, яке використовується для розробки і виконання програмних продуктів, а також для надання користувачу додаткових послуг. Цей вид ПЗ є необхідним доповненням до апаратної частини. До цього ПЗ відносять: 1. Системи технічного обслуговування. Системи технічного обслуговування, призначені для полегшення тестування обладнання і пошуку несправностей в роботі комп’ютера.
Комплекс таких програм включає: 1) Налагоджувальні програми, ті які забезпечують автономне настроювання і перевірку окремих пристроїв ЕОМ, і функціонально незалежні від іншого ПЗ зокрема операційні системи. 2) Перевіряючі тест-програми – періодично проводять тестування щодо правильності функціонування окремих пристроїв. 3) Діагностичні програми, використовуються в тих випадках, коли необхідно класифікувати відмову обладнання і локалізувати місце несправності.
Частина таких програм записана на постійний запам’ятовуючий пристрій(ПЗП) і при включенні ЕОМ та завантаженні відбувається перевірка таких тестових програм, за відповідною послідовністю. Якщо є помилка, формуються звукові та певні повідомлення на екрані. Крім контролю працездатності системи такі засоби дозволяють відобразити на скільки є факт використання ресурсів ЕОМ та як здійснити їх перерозподіл. Програмні засоби цього виду є інструментом роботи спеціаліста з експлуатаційної апаратурної частини.
2. Операційні системи (ОС) Операційна система – комплекс програм, який забезпечує управління ресурсами ЕОМ і процесами, які використовують ці ресурси при обчисленні. Ресурси – будь-який логічний компонент ЕОМ і можливості, які він надає.
Основними ресурсами є: - процесор; - оперативна пам’ять; - пристрої управління;
Управління ресурсами зводиться до виконання таких двох функцій: 1) спрощення доступу до ресурсу; 2) розподіл ресурсів між процесами, які на них претендують;
Функція розподілу ресурсів притаманна не всім ОС, а тільки тим, які забезпечують одночасне виконання або хоча б збереження декількох програм. Процес або обчислювальний процес передбачає виконання програмою послідовності дій, а також містить дані для роботи, які використовуються для обчислень. Виходячи з поняття процесу поняття ресурс як правило застосовується по відношенню до об’єктів, які повторно використовуються, які є відносно стабільними, які використовуються і вивільняються процесами в період їх активності. Ресурси можуть бути розподіленими коли декілька процесів можуть використовувати їх одночасно або паралельно, а також можуть бути і неподільними. При розробці перших ОС ресурсами вважали: пам’ять, канали введення-виведення і периферійні пристрої. Для сучасних ОС поняття ресурсу є абстрактною структурою з переліком атрибутів, які характеризують спосіб доступу до цієї системи. Оскільки перші ЕОМ функціонували на основі принципу, сформульованого Фоннейманом, всі підсистеми і пристрої комп’ютера управляються виключно центральним процесором(ЦП). Тобто здійсненням обчислення і переправлення вводу-виводу керував один ЦП. Тому до складу обчислювальних машин було введено спеціальні контролери, які дозволяли сумістити в часі операції введення-виведення даних і подальші обчислення на ЦП. Проте і в цьому випадку процесор простоював чекаючи чергової операції введення-виведення. Тому було запропоновано організувати так званий мультипрограмний режим роботи, суть якого полягає в тому що поки одна програма чекає завершення чергової операції введення-виведення, інша програма поставлена на розв’язок. Таким чином ОС, які підтримують мультипрограмний режим, ефективно використовують ресурси шляхом організації до них відповідних чергових запитів, які розв’язуються тим чи іншим способом. Реалізація двох видів інтерфейсів користувацького і програмного передбачає організувати доступ до ресурсів і управління процесами на різних рівнях. Рівень програмного інтерфейсу значно підвищується за рахунок використання систем програмування високого рівня. Основні функції ОС: 1) Отримання від користувача завдань або команд сформульованих відповідною мовою. 2) Прийом і виконання програмних запитів на запуск, призупинення і зупинку програмних продуктів. 3) Завантаження в ОС програм які потребують виконання. 4) Ідентифікація програм і даних. 5) Забезпечення роботи систем управління файлами (СУФ). 6) Забезпечення функцій по організації і управлінню всіма операціями введення-виведення. 7) Для залежних від виду ОС забезпечення мультипрограмного режиму або забезпечення жорсткого режиму обмежень на час відповіді. 8) Розподіл пам’яті а також організація віртуальної пам’яті. 9) Організація механізмів обміну повідомленнями і даними між програмами, що виконуються. 10) Захист однієї програми від впливу іншої, а також збереження даних. 11) Надання послуг на випадок часткового збою системи. 12) Забезпечення роботи систем програм за допомогою яких готуються інші програми.
Класифікація ОС ОС можуть розрізнятись: 1) За особливостями реалізації внутрішніх алгоритмів управління ресурсами комп’ютера. Відповідно до цієї ознаки ОС поділяються на такі, які визначають кількість одночасно виконуваних задач або кількість одночасно працюючих користувачів. a) За кількістю виконуваних задач: - Однозадачні (MS DOS, MSX) – це такі, які виконують функцію надання користувачу віртуальної машини при цьому роблять більш простим і зручним процес взаємодії користувача з комп’ютером. Відповідно до функцій ОС включають засоби управління периферійними пристроями, засоби управління файлами та засоби спілкування з користувачем. - Багатозадачні системи (OS/2, Windows, Unix). Крім перерахованих функцій однозадачних систем, управляють розподілом ресурсів таких як процесор, файли, оперативна пам’ять, зовнішні пристрої. b) За кількістю працюючих користувачів: - Однокористувацькі (MSDOS, OS/2(останні версії),Windows 3.X) - Багатокористувацькі (Unix, Windows NT). Відмінністю однокористувацьких від багатокористувацьких систем є наявність запису інформації кожного користувача від несанкціонованого доступу іншого користувача. Не кожна багатозадачна система є багатокористувацькою.
c) Крім наведених двох груп розрізняють витісняючу і невитісняючу багатозадачність для ОС. Оскільки процесорний час є важливим розподільним ресурсом, то спосіб його розподілення визначає невитісняючу багатозадачність для таких ОС як NetWare і витісняючу для ОС як OS/2, Windows NT, Unix. Основною відмінністю між ними є ступінь централізації механізму планування процесів. В першому випадку такий механізм повністю зосереджений на ОС, а в другому випадку, розподілений між ОС і прикладними програмами.
d) Система класифікації за підтримкою багато гілкового виконання програми. e) Багатопроцесорне опрацювання. Зокрема такі функції багатопроцесорного опрацювання відносять до таких ОС як Solaris, OS/2, NetWare 4, Windows NT.
2) За особливостями апаратних платформ. За типом апаратури розрізняють ОС персональних, мінікомп’ютерів, мереж ЕОМ. Серед них зустрічаються одно процесорні, багатопроцесорні системи. Це відображається на специфіці ОС. 3) За сферами використання: - Системи пакетного опрацювання. Це ОС ЕОМ які призначаютсья в основному для розв’язування задач обчислювального характеру, які не потребують швидкого обчислення результатів. Головним є максимальна пропускна здатність. Для досягнення цієї мети в таких системах формують пакет задач кожному з яких є вимоги для одночасного вибору задачі, які відрізняються вимогам наступної задачі. - Системи розподілу часу. Це UNIX, VMS, ці системи усувають основний недолік систем пакетного опрацювання. Тобто ізоляцію програміста від процесу виконання його задачі. В цих системах кожній задачі виділяється квант, де кожна задача не виконується довго, а час відповіді є достатньо коротким. Такі системи характеризуються меншою пропускною здатністю і мають критерій ефективності: – тільки зручність і ефективність роботи користувача. - Системи реального часу. Це QNX, вони застосовуються для управління різними технологічними об’єктами такими як наукова експериментальна установка, станок, супутник, де в усіх випадках існує максимально допустимий час, протягом якого повинна бути обов’язково виконана та чи інша програма, що управляє об’єктом. Критерієм ефективності таких систем є здатність їх дотримання наперед заданих інтервалів часу між запуском програми і отриманням результату. Цей час називається часом реакції системи і характеризується властивістю реактивності.
4) За ознакою особливостей методів побудови. При описі ОС перед її побудовою вказуються особливості її структури організації і основні концепції покладені в її основу. До базових концепцій відносять: - Способи побудови ядра системи. Зокрема використовується мікро ядерний підхід або монолітний. Якщо монолітне ядро, то воно компонується як одна програма. При цьому ця програма використовує швидкі переходи з однієї процедури на іншу не потребуючи при цьому додаткових переключень в користувацький режим і навпаки. А мікро ядерне ядро використовує мінімум функцій по управлінню апаратурою в той час як інші функції ОС вищого рівня використовують спеціалізовані компоненти ОС. В цьому випадку ОС працює більш повільно оскільки потребує часто здійснювати переходи між користувацьким режимом і тим, що використовує ядро. Проте в той же час така система є більш гнучкою оскільки її функції можна нарощувати, модифікувати, додавати нові. - Побудова ОС на базі обєктно-орієнтованого підходу. Це дає можливість використовувати стандартні об’єкти, можливість створення нових об’єктів на базі існуючих, захист даних. - Використання декількох прикладних середовищ в межах однієї ОС. Це даватиме можливість одночасно використовувати програми розроблені для декількох ОС. - Розподілена організація ОС, де реалізовано механізми, які дозволяють користувачу подавати і сприймати мережу у вигляді традиційного однопрцесорного комп’ютера. Основні принципи проектування і побудови ОС: 1) Принцип модульності. Визначає відособлення окремих складових частин ОС в окремі модулі за функціональною ознакою. Такі модулі визначаються як повторно-входжувані привілейовані та реєнтерабельні. Завдяки цьому розподілу здійснюється ефективне використання ресурсів ОС. Поняття реєнтерабельності забезпечує автоматичний розподіл ресурсів, автоматичне відокремлення кодових частин програми від даних і розміщення даних в системну область памяті. 2) Принцип функціональної вибірковості. В ОС виділяється деяка частина важливих модулів, які повинні постійно знаходитись в оперативній памяті для більш ефективного виконання обчислювального процесу. Цю частину називають ядром ОС і при формуванні його складу враховують: - Включити найбільш часто використовувані системні модулі. - Їх кількість повинна бути така, щоб обсяг памяті, яку займає ядро повинен бути невеликим. 3) Принцип генерованості ОС. Основне положення якого визначає такий спосіб початкового подання центральною системною управляючою програмою ОС, який би дозволив настроювати цю системну частину на конкретну конфігурацію конкретного обчислювального комплексу і кола розв’язування задач. 4) Принцип функціональної надлишковості. Враховує можливість проведення однієї і тієї ж роботи різноманітними засобами. 5) Принцип віртуалізації. Передбачає побудову віртуальних ресурсів, їх розподіл та використання. Проявом цього принципу є поняття віртуальної машини, яка відтворює архітектуру реальної машини, але архітектурні елементи виступають з новими або покращеними характеристиками, які найчастіше спрощують роботу програми. 6) Принцип незалежності програми від зовнішніх пристроїв. Він полягає в тому, що зв’язок програми з конкретними пристроями відбувається не на рівні трансляції програми, а в період планування її виконання. 7) Принцип сумісності. Здатність ОС виконувати програми молодших версій ОС. 8) Принцип нарощуваності і відкритості. Нарощуваність дозволяє вводити до складу ОС нові моделі та удосконалювати існуючі не порушуючи цілісності системи. Відкритість системи передбачає доступність до аналізу як користувачу так і системним спеціалістам, які обслуговують систему. 9) Принцип мобільності або переносності. Передбачає, що ОС повинна легко переноситись з процесу одного типу на процес іншого типу та іншої апаратної платформи. 10) Принцип забезпечення безпеки. Передбачає організацію безпеки і захисту ресурсів одного користувача від інших, а також встановлення квот по ресурсах, щоб уникнути захоплення одним користувачем всіх системних ресурсів. Системи управління файлами (СУФ) СУФ – призначена для організації зручного доступу до даних організованих як файли. Як правило всі ОС мають у своєму складі відповідні СУФ. Проте це ПЗ можна віднести до окремого виду з тих міркувань, що ряд ОС дозволяють працювати з декількома файловими системами. В цьому випадку говорять про вмонтовані файлові системи, тобто такі, що можна додатково встановити і в цьому розумінні вони є самостійні. Крім того є такі ОС, що можуть працювати і без файлових систем. Проте варто зазначити, що будь-яка СУФ не існує сама по собі. Вона розробляється для конкретної ОС і працює з конкретною файловою системою. Найбільш відомою файловою системою є FAT, яка має багато реалізацій як СУФ і для DOS, і для OS/2, і для Windows. Невеликим видом системного ПЗ є і емулятори, які дозволяють моделювати в одній ОС деяку іншу ОС, або машину.
3. Сервісні системи Сервісні системи – це ті системи, які доповнюють і розширюють користувацький і програмний інтерфейс ОС.
За функціональною ознакою такі сервісні системи поділяються на: 1) Інтерфейсні системи. В основному це системи графічного типу, які модифікують як користувацький, так і програмний інтерфейси. Вони також реалізовують додаткові можливості по розподілу ресурсів ЕОМ, їх іноді називають продовженням ОС. До інтерфейсних систем відносять: - Системи, які використовуються сумісно із ОС DOS і доповнюють її можливості, зокрема Windows 3.x. - Системи, які доповнюють можливості ОС OS/2, зокрема Presentation Manager. - Для ОС Unix відомі такі інтерфейсні системи як Motif, Ten/Plus.
2) Оболонки. Це такі системи, які модифікують тільки користувацький інтерфейс не зачіпаючи програмного. Підвищення рівня користувацького інтерфейсу відбувається за рахунок спеціальних меню систем, використання додаткових функціональних клавіш, а також із наданням додаткових можливостей. Всі оболонки характеризуються універсальністю інтерфейсу, забезпечення роботи з файлами і каталогами, перегляд файлів різних форматів та редагування текстових файлів за рахунок вбудованих редакторів, створення додаткових користувацьких меню, подача різноманітної довідкової інформації для користувача. Представниками оболонок назвемо наступні: - Disk Director - Magelan - MS-DOS Shell 3) Утиліти. Це такі обслуговуючі програми, які надають користувачу сервісні послуги, збагачуючи при цьому користувацький інтерфейс користувача. Багато утиліт мають розвинутий графічний і діалоговий інтерфейс. Утиліти надають можливість користувачу реалізувати додаткові функції обслуговування магнітних дисків, обслуговування файлів і каталогів, надання користувачу інформації про ресурси комп’ютера, шифрування інформації та інше. В розряд утиліт було віднесено і програми архіватори і антивірусні програми.
ІІ. Інструментальне ПЗ Інструментальною системою(ІС) - називається сукупність програмного продукту, який забезпечує розробку інформаційного ПЗ і формальних мов, що підтримується цим продуктом. ІС містять такі складові, як систему програмування(СП), що складається із сукупності мов програмування і віртуальної машини. Мова програмування(МП) – це певна система позначень яка призначена для опису деякого алгоритму розв’язування задачі, має визначений синтаксис і семантику. Віртуальна машина(ВМ) – це програмний комплекс, який амулює роботу реальної машини з деякою вхідною машинною мовою, зокрема передбачає наявність транслятора.
В розвитку ІС виділяють декілька етапів: 1) Для забезпечення розробки та виконання програм перші транслятори були відособленими програмними модулями, які здійснювали переведення вихідного тексту програми на деякій мові в мову машинних кодів. Такі транслятори розроблялися поза зв’язком з іншими технічними засобами, а завданням розробника при цьому було забезпечити взаємозв’язок всіх використовуваних технічних засобів і організувати цілий ряд операцій по управлінню процесами і використовуванню ресурсів. 2) Було запропоновано для трансляторів використати в одній поставці необхідні програмні модулі і для написання командних файлів використовується спеціальна командна мова MakeFile, яка забезпечує автоматизацію процесу управління ресурсами і процесами. 3) Поява інтегрованого середовища розробки, яке об’єднало в собі можливості текстових редакторів і командних мов компіляції. Користувач в такому середовищі вказував склад необхідних для створення програмних вихідних модулів і бібліотек, а середовище розробки автоматично готувало послідовність команд мовою MakeFile, виконувало їх і давало результат. Найбільш вдалою розробкою такого середовища стало середовище Turbo Pascal на основі мови Pascal. 4) Пов’язаний із використанням графічного інтерфейсу користувача, який став обов’язковою складовою більшості сучасних ОС. До складу систем програмування були включені відповідні бібліотеки, які забезпечували підтримку такого інтерфейсу, а також взаємодію з функціями прикладного програмного інтерфейсу.
Сучасний період розвитку інструментального ПЗ передбачає таку тенденцію, що розвиток всіх систем програмування іде в напрямку підвищення їх сервісних можливостей і якостей інтерфейсу. Це пов’язане з тим, що ефективними щодо використання є ті системи, які дозволяють суттєво знизити трудозатрати необхідні для створення ПЗ на всіх етапах тестування і налагодження ПЗ. Показник зниження трудозатрат вважається більш суттєвим ніж показник пов’язаний з ефективністю результуючої програми. В якості основних тенденцій розвитку сучасних СП називають запровадженням в них засобів розробки на основі так званих мов 4-го покоління(4GL), а також підтримка систем швидкої розробки систем ПЗ(RAD). Мови 4GL становлять широкий набір засобів, орієнтованих на проектування і розробку ПЗ. Вони побудовані на основі оперування не синтаксичними структурами мови і описів елементів інтерфейсу, а представляють їх графічні образи. На такому рівні проектувати і розробляти ПЗ користувач, непрофесіонал програміст не може, а може спеціаліст з даної предметної галузі, для якої розробляється прикладна програма. Оскільки опис програми побудований на основі мови 4GL транслюється у вихідний текст і файл опису ресурсів інтерфейсу. З таким текстом працює уже професійний програміст, який потім його корегує і доповнює потрібними функціями. Мови 4GL розв’язують значно ширше коло задач і становлять частину засобів автоматизованого проектування і розробки ПЗ на всіх етапах життєвого циклу. Ці системи мають назву CASE- системи.
Головною класифікаційною ознакою мов і систем програмування є належність до одного із сучасних стилів програмування: - Процедурне - Функціональне - Логічне - Обєктно-орієнтоване Для сучасних ПЕОМ реалізовані всі чотири стилі програмування різними представниками.
1. Процедурне(імперативне) програмування
Процедурне програмування є відображенням архітектури традиційних ЕОМ, яка була запропонована Фоннейманом, а теоретичною моделлю процедурного програмування є алгоритмічна система „Машина Тюрінга”. Програма на процедурній мові складається із послідовності операторів, що задають певні дії. Основним є оператор присвоєння, призначений для зміни змісту комірок памяті. Концепція памяті як сховища знань, вміст якого поновлюється операторами програмування, є фундаментальною в процедурному програмуванні. Виконання програми зводиться до послідовного виконання операторів з метою перетворення вихідного стану памяті в кінцевий. Процедурні мови характеризуються значною складністю, відсутністю строгої математичної основи, необхідністю явного управління пам’яттю, зокрема опису змінних, низькою придатністю для символьних обчислень, високою ефективністю реалізації на ЕОМ. Важливою класифікаційною ознакою процедурних мов програмування є їх рівень. Рівень - визначається семантичною ємністю її конструкцій і її орієнтованість на людину-програміста, оскільки частково ліквідує симантичний розрив між методами розв’язання задач людиною і машиною. Чим більше мова орієнтована на програміста, тим вищий рівень мови програмування.
1 Двійкова мова, яка є машинною мовою і передбачає опис програм, де програміст вручну описує взаємодію між регістрами памяті, між ресурсами які задіяні і процесами. На даний час такі мови вже не застосовуються.
2 Шістнацядкова мова, яка забезпечує деяке спрощення запису програми на машинній мові шляхом подання чотирьох двійкових цифр однією шістнацядковою. Така мова може бути доповнена в використана в мовах вищого рівня(Pascal) для програмування окремих фрагментів.
3 Мова Assembler призначена для подання, в зручній символьній формі, програми записаної на машинній мові, дозволяє користуватися кодами операцій, присвоювати символьні імена регістрам пам’яті. Задавати зручні схеми адресації. Розвитком цієї мови є мова Macro Assembler, яка передбачає включення макрозасобів.
4 Мова C, яка в початковому варіанті була розроблена для реалізації ОС Unix, на даний час виконується для розробки програм з можливістю доступу до апаратних ресурсів ЕОМ на рівні мови Assembler. Мова має синтаксис, який забезпечує надзвичайно короткі тексти програм, проте компілятори внаслідок особливостей такої мови генерують ефективно об’єктний код. Основною особливістю цієї мови є стирання відмінностей між виразами і операторами, між процедурами і функціями.
5 Мова Basic, передбачає багатоцільове використання символьних інструкцій для початківців, вважається досить простою мовою, призначеної для використання її початківцями. Початкові варіанти реалізації передбачають тільки інтерпретацію. Basic вважається антиподом мови Pascal. В ньому використовуються різного роду замовчування.
6 Мова Fortran використовує при реалізації програм, що передбачають роздільну компіляцію модулів, що дало можливість створювати бібліотеки наукових підпрограм.
7 Pascal є найбільш вдалим представником систем структурного програмування, не тільки за рахунок впорядкування зв’язків між фрагментами програм, але і за рахунок структуризації даних. Вперше в цій мові була реалізована концепція визначення нових типів даних.
8 Modula-2 (розвиток мови Pascal) передбачає високу модульність програми, наявність записів опису паралельних процесів незалежних модулів визначених наявністю секцій інтерфейсу і реалізації в модулях, а також підтримки механізму експорту/імпорту.
9 Мова Ada розроблена на замовлення міністерства оборони США для використання у вбудованих системах з управляючими ЕОМ, що потребує підтримки режиму реального часу. Крім характерних рис паскалеподібних мов, цій мові притаманні такі риси: - Логічна модульність(коли дані, типи і підпрограми можуть бути пакетами); - Фізична модульність(досягається роздільною компіляцією); Програмування в реальному часі забезпечується за рахунок механізму розпаралелювання і опрацювання переривань. Передбачається програмування на рівні доступу до системно залежних параметрів.
10 APL, PL/1, SNOBOL. Ці мови в загальному орієнтовані на розв’язання задач з конкретної предметної галузі. На приклад APL і COBOL розраховані на опрацювання інформації комерційного типу. SNOBOL – для опрацювання текстових даних.
11 Algol, яка за структурою і зовнішнім виглядом є подібною до мови Pascal, проте для сучасних СП і ПЕОМ не знайшла представлення.
2. Функціональне програмування(аплікативне).
Це програмування базується на одній із перших алгоритмічних систем – Черга. Роль основної конструкції у функціональних мовах відіграє – вираз. До виразів відносяться скалярні константи, структуровані об’єкти, функції, виклики функцій і тіла функцій. Функція трактується як однозначне відображення із , де Х – множина виразів, що відповідають поняттю функції в математиці.
Будь-які аплікативні мови включають елементи: - Класи компонент, якими маніпулюють функції. - Набір базових функцій, якими може оперувати програміст без додаткового оголошення. - Правила побудови функцій із базових - Правила формування виразів на основі викликів функцій.
Програма у функціональному програмуванні – сукупність описів функцій, які необхідно обчислити. Обчислення здійснюється шляхом послідовних спрощень, тобто редукції, до того часу поки це можливо за такими правилами: 1) Виклики базових функцій заміняються відповідними значеннями. 2) Виклики не базових функцій заміняються їх тілами, де параметри заміняються аргументами.
Виклики функцій можна обчислювати одночасно, що дає можливість автоматичного розпаралелювання програм. Таким чином функціональне програмування не використовує концепції памяті як сховище значень змінних, оператори присвоєння відсутні тому змінні тут визначають об’єкти програми, а це відповідає поняттю змінної в математиці. Представником є LISP. Система функціонального програмування не має суттєвої різниці між функціями і константами, тобто між програмами і даними. Тому функція може бути замінена значенням виклику іншої функції і може бути елементом структурованого об’єкта. Число аргументів у виклику функції не обов’язково повинно співпадати з числом параметрів при її описі. Якщо аргументів не вистачає, то значенням виклику буде функція. А коли їх надлишок - або функція, або константа. Названі характеристики визначають аплікативні мови як мови надвисокого рівня. Функціональне програмування вважають розвитком ідей структурного програмування за рахунок структуризації не тільки управляючих зв’язків і даних, але й інформаційних зв’язків. На відміну від процедурних мов в функціональному програмуванні будь-які функції можуть бути передані тільки за рахунок виклику функції, а обчислення значень функції не приводить до зміни значень інших змінних. Це забезпечує чітку ієрархічну структуру програми і її високу надійність. Ці функціональні мови характеризуються крім цього автоматичним розподілом памяті і високою придатністю для символьних обчислень. А числові обчислення – слабка ланка в системах функціонального програмування. Першою функціональною мовою стала мова LISP. Її мета полягала у зручності опрацювання будь-якої символьної інформації і уніфікація програмних структур і структур даних. Всі вирази в цій мові подаються у вигляді списків. В даний час широко використовується основна мова для систем штучного інтелекту.
3. Логічне програмування. Логічне програмування базується на використанні відомого методу резолюції, який використовує єдине правило виведення замість лінійних правил для встановлення загальноозначуваності логічної формули. Метод резолюції використовується при автоматичному доведенню теорем і його основні ідеї були покладені в систему програмування Prolog – логічне програмування. В початковому варіанті призначеного для роботи з природними мовами. Центральним поняттям в логічному програмуванні є поняття відношення, а програма - представляє собою сукупність визначених відношень між об’єктами і запитом. Процес виконання програми трактується як встановлення загально значущості логічної формули, яка побудована за правилами встановленими семантикою конкретної мови. Результат обчислення в цьому випадку виявляється побічним продуктом. В реляційному програмуванні потрібно не тільки специфікувати факти, на яких базується алгоритм, а не визначати послідовність кроків. Це свідчить про декларативність мов логічного програмування і визначає основну формулу таких систем, яка записується так:
Алгоритм = логіка + управління
Основні характеристики: 1) Надвисокий рівень 2) Висока орієнтація на символьні обчислення 3) Інверсні обчислення, тобто змінні у викликах процедур не поділяються на вхідні і вихідні 4) В окремих випадках логічна неповнота двох аспектів: не можна отримати всі правильні висновки у програмі, і не можна виразити в програмі деякі логічні конструкції
Логічні програми відрізняються низькою швидкодією, оскільки іде пошук з поверненнями, і за рахунок цього є не ефективними з точки зору реалізації. Проте вони відіграють центральну роль в проектах ЕОМ 5-го покоління. 4.Обєктно-орієнтовне програмування
Обєктно-орієнтовне програмування як самостійна система програмування визначена з появою мови SMALLTALK, яка спочатку призначалася для реалізації функцій машинної графіки. Основою обєктно-орієнтовного програмування є одна із віток логіки, де центральним поняттям є об’єкт. У порівнянні із численням предикатів обєктно-орієнтовного програмування логічні системи характеризуються складним синтаксисом і правилами виведення. Із обєктно-орієнтовним програмуванням пов’язана теорія акторів(активний обєкт). Основні особливості: 1) Наявність активних об’єктів 2) Формування об’єктів шляхом наслідування властивостей 3) Посилання повідомлень від об’єкта до об’єкта, як механізм організації обчислювального процесу Суть обєктно-орієнтовного програмування може бути визначена формулою: Об’єкт = дані + процедури
Виходячи з цього об’єкт інтегрує деякий стан і доступні тільки для нього механізми зміни цього стану. Дія або метод виконується тільки для об’єкта, який є адресатом, що отримує відповідні повідомлення. В такому тлумаченні концепція об’єкта спирається на методи структуризації програм і методи розробки програм, що базуються на абстракції даних. В обєктно-орієнтовному програмуванні ліквідовано протиставлення процедур даним. Завдяки чому підтримується якісно новий рівень спільної структуризації даних і процедур їх опрацювання. Крім цього даний стиль програмування характеризується високими графічними можливостями, модульністю щодо структуризації програм.
Властивостями таких мов є: - Поліморфізм - Інкапсуляція - Наслідування
5. Системи управління базами даних(СУБД)
З точки зору класифікації ПЗ ці СУБД можуть бути визначені як інструментальне ПЗ і як прикладне ПЗ. Якщо система передбачає використання спеціальної мови для створення структури бази даних(БД) та маніпулювання даними в ній, то її відносять до інструментальних. БД визначаються як сукупність організованих спеціальним чином даних, що зберігаються на зовнішніх носіях, а СУБД – це програмний продукт, який забезпечує централізоване управління даними в цій БД. Для маніпулювання даними використовують спеціальну мову даних, яка реалізовується безпосередньо для конкретних систем.
6. Інструментарій штучного інтелекту(ШІ) (Для розробки інтелектуальних або експертних систем)
Це системи, які використовують науку про знання, про те, як їх добувати, представляти, опрацьовувати всередині системи і використовувати їх для розв’язання практичних задач.
Програми інтелектуальних систем визначаються сукупністю таких характеристик: - Призначення - Стадія існування - Тип - Тип використовуваних методів і знань - Універсальність - Основні властивості - Середовище функціонування
Дослідження в галузі ШІ проводяться в напрямку: - Опрацювання природної мови і моделювання діалогу - Експертні системи - Автоматизація доведення теорем - Робототехніка - Автоматизація програм - Розпізнавання образів Розрізняють такі типи інструментальних систем ШІ: 1) Символьні мови програмування(LISP,SMALLTALK, та ін.) 2) Мови інженерії знань, які орієнтовані на побудову експертних систем(Prolog) 3) Системи, що автоматизують розробку експертних систем і їх часто називають оточенням для розробки систем ШІ орієнтованих на знання 4) Оболонки експертних систем, які характеризуються реалізаційним механізмом виведення, але порожньою базою знань для наповнення її в конкретній предметній галузі
Під експертною системою розуміють програму, в яку включені знання спеціалістів з деякої предметної галузі, і яка в межах цієї галузі здатна приймати експертні рішення на рівні людини-експерта.
7. Інструментальні системи для мережі Internet
1. Концепція.NET. Це не система програмування, а найбільша технологія запропонована фірмою Microsoft з метою уніфікації процесу розробки ПЗ за допомогою різноманітних систем програмування. В межах цієї концепції різноманітні програмні продукти надаються користувачам і розробникам як сервіси, які взаємодіють між собою відповідно до конкретних проблем, доступні на різноманітних прикладах, зрозумілий і адаптований для користувача. Основні ідеї архітектури.NET полягають в тому, що ОС типу Windows 2000 і вище організовується спеціальна віртуальна машина, яка інтерпретує команди деякої проміжної низькорівневої мови. Будь-яка програма що використовується в NET – це набір команд проміжної мови, а самі команди інтерпретуються незалежно від архітектури обчислювальної системи, і версії ОС, де вони виконуються таким чином, системи програмування, що орієнтовані на дану концепцію створювати код результату програми не у вигляді машинних команд для конкретної архітектури, а у вигляді проміжного коду. Крім того будь-яка програма використана в.NET може скористатись сервісними функціями іншої програми доступної в.NET, але незалежно від того в яких системах ці програми були розроблені. В першу чергу на підтримку концепції.NET орієнтуються системи Visual C++ і Visual Basic. Крім того пропонується нова система побудови на базі нової мови C#. Підтримка концепції.NET в системах програмування не відміняє в ній можливості традиційних шляхів створення ПЗ. 2. Розробка ПЗ для Internet. При розробці ПЗ для Internet визначною є вимога уніфікованого виконання коду програми незалежно від архітектури обчислювальної системи. Оскільки компіляція і створення об’єктного коду в умовах глобальної мережі немає значення, тому що наперед невідомо на якій обчислювальній системі буде виконуватись отриманий вручну компіляційний код. З цієї ж причини сервер не може передавати по мережі об’єктний код або команди асемблера. Тому основною особливістю програмування в мережі Internet є використання в якості основного засобу програмування інтерпретації мов. Оскільки при інтерпретації використовується не об’єктний код, а вихідний код програми і безпосередньо з боку клієнта інтерпретація відповідає щоб вихідний код програми був виконаний одним і тим же чином. В такому випадку сервер готує код програми одним і тим же способом незалежно від клієнта. Зрозуміло, що в цьому випадку зростає навантаження на інтерпретацію клієнта. Проте задача спрощується, а деякий проміжний код низького рівня призначений для виконання на боці клієнта. Толі в обміні даними беруть участь ще дві додаткові програми: транслятор на боці сервера і інтерпретатор на боці клієнта, що відповідає за виконання проміжного коду. Практично у всіх випадках при використанні виконуваних програм глобальною системою Internet застосовується саме ця схема. Для її реалізації існує багато технічних і мовних засобів, а також спеціальних мов програмування орієнтованих на використання Internet. Представниками для розробки найпростіших Internet- програм є засоби: HTML, Java, JavaScript та інші.
8. Інструментальні засоби і технології програм розподілених систем
Сучасні технології проектування великих сучасних систем використовують інтегрування різних підходів, що лежать в основі названих раніше технологій програмування і включення їх в деяку узгоджену систему. Таким чином утворюють ефективні засоби, що доповнюють один одного при розробці складних систем. Представниками часто використовуваних технологій рішень, які застосовуються при проектуванні систем є наступні: 1) XML – стандарт представлення документів 2) DCOM - об’єктно-орієнтована технологія створення розподілених систем на базі платформи Microsoft Windows. 3) CORBA – універсальна відкрита технологія для створення розподілених систем незалежно від мови програмування і платформи 4) RMI – розподілена технологія створення переносних програмних об’єктів на мові програмування Java.
Крім того виділяють так звані CASE- засоби, до яких відносять програмні засоби, що автоматизують визначені процеси життєвого циклу ПЗ. Ці засоби характеризуються спеціальним чином організованим сховищем проектних даних, графічними засобами для опису і документування програмних систем.
ІІІ. Прикладне ПЗ загального призначення.
Концепція документа в прикладній програмі і технології обміну даними між прикладними програмами Windows.
Тенденція розвитку прикладного ПЗ загального призначення здійснюється відповідно до положень визначених до всього класу ПЗ. Варто зазначити, що для прикладних програм важливим е спрощення роботи користувача, виконання операцій по опрацюванню інформації раціонально із мінімальним затратами. В зв’язку з цим в електронних засобах формування результуючих документів опрацювання результатів різних видів інформації постає питання визначення поняття документа. Документ в прикладній програмі з точки зору ОС Windows є сховище специфічних об’єктів, де об’єктом може бути все від простого текстового файла до відео ролика чи анімації. Крім того створення і збереження в документ зв’язків між об’єктами передбачає принцип робити роботу тільки один раз. Крім того процес створення і подання інформації перетворюється у вибір найкращого об’єкта для формування того чи іншого документа. Використання модульних архітектур в розвитку ПЗ спрямоване на полегшення процесу перенесення об’єктів із однієї прикладної програми в іншу. Це поклало основу для створення інтегрованих пакетів, що призначені для опрацювання різних видів інформації. Для вирішення проблеми перенесення даних із одних прикладних програм в інші були реалізовані технології обміну даними між цими програмами.
1. В перших версіях Windows було реалізовано вбудований буфер проміжного збереження даних, який постійно залишався активним і доступним всім Windows-програмам. Clipboard – ця технологія мала ряд недоліків: - Неможливість накопичення даних в буфері - Обмеження обсягу інформації - Вставлені в документ-приймач через буфер обміну дані не поновлювались при їх зміні в документі-джерелі Проте перевагою цієї технології стало можливість поєднання в одному документі об’єктів створених різними програмами. Це забезпечувалося тим, що для всіх Windows-програм встановлено ряд стандартних форматів, в яких можуть подаватися дані і при операції буфером обміну перетворених даних відбувається автоматично і не помітно для користувача.
2. DDE – динамічний обмін даними, яка починаючи з Windows 3.0 визначена була як стандарт на організацію взаємодії між різними програмами. Суть в тому, що в сеансі зв’язку одна програма названа клієнтом посилає запити у вигляді роману, а друга – сервер – у відповідь посилає дані. При цьому зберігається зв’язок вставлення об’єкта з оригіналу. Ця технологія не знайшла широкого розповсюдження, оскільки навіть враховуючи переваги DDE була складною у функціонуванні і користувачі продовжували використовувати обмін даними через буфер.
3. OLE – технологія зв’язування втілення об’єктів. Вперше була реалізована для Windows 3.1. Основною новизною її стала можливість активізації вбудованих об’єктів, зокрема при обміні даними в попередніх технологіях для вияснення змін у вбудований об’єкт потрібно було запускати програму, в якому створювався цей об’єкт, відкривати відповідний файл, змінювати і зберігати. Потім через буфер обміну виправлений об’єкт знову копіювався в потрібне місце, але при цьому необхідно було знищити стару версію об’єкта в документі. Технологія DDE передбачає динамічну зв’язування, але процес був складним. В технології OLE використовувалась та ж послідовність дій. Проте для вставленого об’єкта засіб активізації об’єктів Windows в полі об’єкта активізував цей об’єкт. Після завершення такої роботи ця програма закривається, а змінений об’єкт залишається в основному документі. Ця технологія визначила новий зміст поняття об’єкта. Зокрема це поєднання даних будь-якого вигляду у внутрішньому форматі програмного створювача поданого в одному з стандартних форматів Windows, а також інформацію про програму що створила цей об’єкт, його розмір, час створення. Особливістю цієї технології став метод drag-and-drop, який використовується замість копіювання через буфер обміну.
Дата добавления: 2014-01-06; Просмотров: 820; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |