Ви є тут

Інструментарій проектування комп'ютерних систем на основі діалогових алгебро-граматичних моделей представлення знань

Автор: 
Хохлов Вадим Анатолійович
Тип роботи: 
Дис. канд. наук
Рік: 
2006
Артикул:
0406U003567
129 грн
Додати в кошик

Вміст

розділ 2]. Описи алгоритмів у мові САА/Д називають САА/Д-схемами.
Базовими об'єктами мови є абстракції операторів (перетворювачів даних) і умов
(предикатів), для запису яких використовуються змістовні ідентифікатори —
тексти будь-якій іншій ПМ, обрамлені лапками чи апострофами в залежності від
того, чи є даний змістовний ідентифікатор ідентифікатором оператора чи умови.
Використання подібних ідентифікаторів істотно полегшує розуміння алгоритмів, що
представляються в мові САА/Д.
Абстрактні оператори й умови підрозділяються на елементарні і складені.
Елементарні оператори й умови є первинними абстракціями. В мові САА/Д
елементарні оператори й умови дозволяють подальше розбиття на складові частини,
а також введення параметрів.
Складені оператори й умови будуються з елементарних за допомогою керуючих
конструкцій мови САА/Д, до яких належать операції САА/Д-М (композиція,
a-диз'юнкція, a-ітерація, синхронна диз'юнкція; диз'юнкція, кон’юнкція,
заперечення), а також операції діалогового вибору і циклічного діалогового
вибору. Складені оператори й умови мають унікальні номери в межах САА/Д-схеми.
Відзначимо, що змістовні ідентифікатори містяться лише в тексті САА/Д-схеми. В
тексті відповідної формули використовуються номери операторів з попередніми
символами A, B, V, W. При цьому символи A і B передують номерам елементарних і
складених операторів, а символи V і W – номерам елементарних і складених умов
відповідно.
Таким чином, мова САА/Д “відкрита знизу”, тобто забезпечує первинність уведених
програмістом абстракцій у межах схеми алгоритму й одержання похідних
абстрактних об'єктів з первинних. Тип змістовного ідентифікатора (елементарний
чи складений) задається неявно і визначається з контексту САА/Д-схеми.
Текст у мові САА/Д має наступну структуру:
СХЕМА (назва);
рівність;
рівність;
КІНЕЦЬ [СХЕМИ (назва)];
Таким чином, у САА/Д-схемі між ключовими словами СХЕМА і КІНЕЦЬ знаходиться
послідовність рівностей, відділених друг від друга знаком ';'. При цьому кожна
наступна рівність конкретизує (засобами САА) абстракцію деякого складеного
оператора чи умови, змістовний ідентифікатор якого знаходиться в одній з
попередніх рівностей. У записі рівностей припустимі ланцюжки символів '=', '–',
'*', '+' довільної довжини, що забезпечує графічну наочність САА/Д-схем.
Інтерпретація первинних абстракцій може бути різною. Тим самим відкривається
можливість проектування схем (моделей) цілих класів алгоритмів, які ідентичні
по способу запису і відрізняються лише інтерпретацією абстракцій, що входять в
цей запис. Якщо в САА/Д-схемі замінити змістовні ідентифікатори їх кодами, то
ми отримаємо компактний вираз – формулу САА/Д-схеми, до якої більш зручно
застосовувати співвідношення.
Оператор діалогового вибору записується в такий спосіб:
ДіалоговийВибір( Оператор1 | Оператор2 | ... ОператорN),
Де Оператор1,…,ОператорN – змістовні ідентифікатори операторів (елементарних
або складених).
При виконанні діалогового оператора користувачу демонструє спеціальне меню, за
допомогою якого він визначає, який з операторів має виконуватись. У меню в
якості пунктів використовуються змістовні ідентифікатори операторів. Вигляд
меню залежить від типу інтерфейсу користувача, що надає операційна система.
Наприклад, у DOS чи текстовому режимі Unix меню утворює нумерований список.
Користувачу необхідно ввести номер відповідного оператора. У системах Windows
чи X Window меню являє собою спеціальне діалогове вікно з рядком кнопок чи
списком. В якості назв кнопки містять змістовні ідентифікатори операторів, що
входять у діалогові оператори. Кнопки використовуються при невеликій кількості
пунктів у меню і невеликій довжині змістовних ідентифікаторів. В іншому випадку
використовується стандартний список.
Циклічний діалоговий вибір відрізняється від звичайного тем, що операторів
виконуються в циклі доти, доки користувач не вибере оператор, що завершує
цикл.
При проектуванні складного апаратного забезпечення комп'ютерів з метою
мінімізації витрат устаткування кілька САА/Д-схем можуть поєднуватися в одну.
Однак алгоритм об'єднання істотно використовує механізм безумовного переходу,
тому результуюча схема може бути неструктурованої. У зв'язку з цим виникла
необхідність у введенні в мову САА/Д оператора безумовного переходу goto. Даний
оператор також може бути корисним при розробці програмного забезпечення у
випадках, коли важлива найкраща ефективність [71].
Поняття предметної області і типи даних САА/Д.
По ступеню складності всі поняття тієї чи інший ПрО можна розділити на дві
групи. До першої відносяться найпростіші чи атомарні поняття, що не можуть бути
розкладені на ще більш прості. До другої групи належать складені поняття, що
яким-небудь образом будуються з найпростіших [79, 80, 81, 82, 83]. Очевидно,
такий поділ багато в чому є умовним і залежить від прийнятої точки зору.
Наприклад, поняття “число” можна розглядати і як атомарне, і як складене, що
складається з бітів.
Як приклад атомарних можна привести такі поняття, як: “число”, “символ” та ін.
Таким поняттям у ДТМ відповідають визначені типи даних МП.
Більш складні поняття в багатьох МП моделюються за допомогою механізму АТД.
Вихідна інтуїтивна ідея, що стоїть за поняттям АТД — це групування в одне
поняття множини (одного чи більш) об'єктів, декількох операцій і предикатів, що
застосовуються до цих об'єктів, і захист (приховання) у мові і відповідної йому
системі програмування внутрішнього представлення АТД від дій, не зазначених
явно у визначенні АТД. Як відзначалося в розділі 2, концепція АТД допускає
формалізацію в трьохосновних САА. В сучасних МП прийнятий підхід, при якому АТД
розглядається як конструкція, що склад