Научная статья на тему 'The specification systems of the object-oriented programs with nominative data'

The specification systems of the object-oriented programs with nominative data Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
31
11
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Омельчук Л.Л.

Основываясь на композиционно-номинативном методе уточнения понятия программы, аксиоматической системе спецификаций программ над номинативных данным, секвенциальные многочисленные композиционно номинативных логик и языке Object-Z построено прототип аксиоматической системы спецификаций программ над номинативных данными (OBJ-NDSL).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «The specification systems of the object-oriented programs with nominative data»

УДК 681.3.06

СИСТЕМИ СПЕЦИФ1КАЦ1Й ОБ'еКТНО-ОРШНТОВАНИХ ПРОГРАМ НАД НОМ1НАТИВНИМИ ДАНИМИ

© Л. Л. Омельчук

Кш'ВСЬКИй НАЦЮНАЛЪНИй УШВЕРСИТЕТ IMEHI ТАРАСА ШЕВЧЕНКА ФАКУЛЬТЕТ К1БЕРНЕТИКИ КАФЕДРА ТЕОРП ТА ТЕХНОЛОГИ ПРОГРАМУВАННЯ

пр-т Академ1ка Глушкова, 4д, м. Кшв, 03680, Украша e-mail: l.omelchuk@gmail.com

The specification systems of the object-oriented programs with nominative data.

Omelchuk L. L.

Abstract. Today the problem of fast and economical design of reliable software is up to date. For a quick and economical design of reliable software is possible to apply formal methods of software specifications. Formal methods allow to prove some properties of programs using mathematical methods.

Specifications program should include a description of program goals, functional program structure, input application program output. Problem improving the adequacy of representation of data structures, functions, and compositions used in programming is important.

In this article the notion of abstract computably has been defined. Complete classes of computable functions of various abstraction levels have been described. Formal semantic-syntactic models of specification and programming languages have been defined and investigated.

Imperative and declarative models of nondeterministic programs based on composition-nominative approach are constructed and investigated. Semantics of such programs is presented by partial multi-valued functions. The complete class of naturally computable functions of described type is defined and its algebraic representation is built. A special computability considered in this paper is nominative computability. Nominative computability allows to set adequately a complete class of computable functions over nominative data. At the same time nominative computability is invariant relative to a set of basic elements. Moreover, it is oriented to functions and compositions, which are close to function and compositions of programming languages.

You can increase the adequacy of the default data structures, functions, and compositions used in programming languages if you use nominative data.

Axiomatic theory of nominative data develops a theory of admissible sets. This theory has a number of advantages with respect to the adequacy of programming. It is powerful enough to produce computable function over various data structures. It is not as restrictive as different versions of constructive logic, but not too strong and does not allow, for example, the use of

axioms constructing the set of all subsets (compared to the set theory ZF). This theory uses the basic data (praelementy) corresponding methods of constructing data programming.

An axiomatic theory of nominative data, which is capable to specify all computable functions, is constructed. The axiomatic system of program specification over nominative data is constructed.

Prototype axiomatic system software specifications of nominative data (OBJ-NDSL) is constructed. It is based on composition nominative method, axiomatic system software specifications of nominative data and it is based on the sequent calculi for logics. This prototype is based also on language Object-Z.

OBJ-NDSL system allows to prove some properties of programs. shown that for an axiomatic system specification software method can effectively use composition nominative approach. Composition nominative approach is sufficient to adequately meet the needs of programming.

Вступ

Постшне розширення сфери застосування обчислювально!' техшки та необхщ-н1сть побудови все бшьш складних програмних систем загострюе проблему швидко-го та економ1чного конструювання надшного програмного забезпечення. Ускладнен-ня програмних комплекав, а також збшьшення залежност людей в1д правильного функцюнування систем, викликае зростання вимог до ix надшность В багатьох ви-падках «ручш» методи розробки програмного забезпечення стають незадовшьними.

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

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

В [1, 2] показано, що з точки зору композицшно-номшативного шдходу (КНП) [1, 2, 3, 4], використовуючи номшативш даш [1, 2, 3, 4] можна шдвищити адекватшсть задання структур даних, функцш та композицш, що використовуються в мовах про-грамування (процедурне програмування), та будувати системи специфжацш програм на единш концептуальнш основь В композицшному програмуванш дослщжуються системи на р1зних р1внях абстракцп [3, 4], яю виникають на шляху експлжацп програмування — абстрактному, булевському та номшативному (атрибутному) р1внях.

Системи останнього р1вня, композицшно-номшативш системи, е досить багатими для адекватного задання моделей структур даних, програм та засоб1в !'х конструювання.

1. АКСЮМАТИЧНА ТЕОР1Я НОМ1НАТИВНИХ ДАНИХ

Аксюматична теор1я номшативних даних [1, 2, 3] розвиваеться в дус теор1'1 до-пустимих множин (С. Кршке, Р. Платек, Дж. Барвайз, Ю.Л. бршов). Ця теор1я мае низку переваг, у вщношенш адекватност до програмування: з одного боку, вона досить потужна, щоб породжувати обчислюваш функцп над р1зними структурами даних, з шшого ж боку, не настшьки обмежувальна, як р1зн1 вар1анти конструк-тивних логж, але 1 не надм1рно потужна та не допускае, наприклад, застосування аксюми побудови множини вах шдмножин (в пор1внянн1 з теор1ею множин ZF). Кр1м того, ця теор1я використовуе базов1 даш (праелементи), що в1дпов1дае методам побудови даних у програмуванш. Теор1я номшативних даних будуеться як аксюматична теор1я 1-го порядку з р1вшстю та тернарною зв'язкою (предикатом) номшативно!' належност1, що записуються в шфжснш форм1 х м уЕпа (або (х,у)Епа).

Класом А0-формул називаеться найменший клас У, що мютить елементарш фор-мули 1 замкнений в1дносно наступних операцш: 1) якщо ( Е У, то 1 (р Е У ,2) якщо (,ф Е У, то 1 ( Vф Е У 1 (Лф Е У, 3) якщо ( € У, то 1 Ух м- уЕпа(, Зх м уЕпа( Е У для вах змшних х, у, а.

Клас ^-формул е найменший клас X, що м1стить А0-формули 1 замкнений в1д-носно умов 2) 1 3) визначення класу А0-формул 1 наступно'1 умови екзистенц1ально1 квантифжацп: якщо ( Е X, то Зи( Е X.

Спещальш аксюми аксюматично!' системи специфжацш програм над НД дшяться на три групи: перша група описуе властивост р1вност1; друга — описуе властивост множини 1мен та даних; третя група аксюм описуе властивост НД:

1. екстенсюнальшсть: УхУу(х м уЕпа О х м уЕпЬ) м а = Ь;

2. фундовашсть (шдукщя за належшстю):

(Уа(Ух м уЕпа((х) Л ((у) м ((а))) м Уа((а);

3. шдукщя за включенням: (Уа(УЬ С а((Ь) м ((а))) м Уа((а);

4. А0-видшення: ЗЬУхУу(х м уЕпЬ О х м уЕпа Л (0(а));

5. 1менування: Зсх м уЕпс;

6. об'еднання: Зс(а С с Л Ь С с);

7. нетрив1альн1сть: ЗаЗхЗу(х м уЕпа).

2. НОМШАТИВНА ОБЧИСЛЮВАШСТЬ

В [3] введено до розгляду та доошджено спещальний вид обчислю-ваност — номшативну обчислювашсть. Номшативно обчислюваними нази-ваються функцп над номшативними даними, отримаш замиканням функ-ц1й 0, ^ 1, [Id , \d , U D, \d , (=w )D ,asd ,cnD, G W D } вщносно множини компози-ц1й (od, Od, *d, @d}. Показано [1], що довшьна частково-рекурсивна функщя мо-же бути представлена номшативно обчислюваними функщями над множиною на-туральних чисел при ïx моделюванш у клас номшативних даних. Кр1м того, показано [1, 2], що кожна номшативно обчислювана [1, 2] функщя представима деяким бшарним S-предикатом P(x,y), тобто f (x) = y тод1 i тшьки тод1, коли P(x,y). Для цього будуються представлення вах функцiй, зазначених у визначеннi номшативно!' обчислюваноси, а також всix функцш, отриманих застосуванням композицiй.

3. СИСТЕМИ СПЕЦИФ1КАЦ1Й ПРОГРАМ ДЛЯ ООП над номшативними даними

На сьогоднiшнiй день абсолютним лщером в прикладному програмуванш е об'ектно-орiентоване програмування (ООП) [5]. Таким чином при побудовi сучасних мов специфжацш програм необxiдно враховувати специфжу об'ектно-орiентованиx мов програмування, а саме те, що методолопя ООП базуеться на представленш про-грами у виглядi сукупностi об'ектiв, кожен з яких е екземпляром певного класу, а класи утворюють iерарxiю наошдування [5]. Покажемо, що КНП може бути застосо-ваний для побудови систем специфжацш програм для ООП [5]. Для цього спочатку формалiзуемо поняття об'екта, використовуючи КНП. Базовi типи даних мов програмування були задан в [1, 2], крiм того в [1, 2] було задано функцп над номшативними даними. Об'ект можна представити номшативними даними наступного вигляду:

< об'ект >::= []|[< iм'я — об'екту >м< опис — об'екту >]

< опис — об'екту >::= [class м- [name м-< iм'я — класу >, base м- []|

< об'ект >, inter face — list м []| < штерфейси >, members м []|

[attributes м []|< атрибут >,...,< атрибут >, methods м []|

< метод >,...,< метод >,properties м []|< властивiсть >,...,< властивiсть >]]

< iнтерфейси >::= < штерфейс >,...,< iнтерфейс >

< штерфейс >::= [< iм'я — штерфейсу >м< опис — штерфейсу >]

< опис — штерфейсу >::= [interface м [name м< iм'я — iнтерфейсу >,

interface — list м []| < iнтерфейси >, member s м []| [methods м []

|< метод >,...,< метод >,properties м []|< властивiсть >,...,< властивiсть >]]

< атрибут >::= [visibility м< видимiсть >,name м< номiнативнедане >]

< метод >::= [visibility М< видимють >,

modif М< модифжатор >, name М< номшативне — дане >]

< властивють >= [visibility М< видимють >,

get М- [visibility М< видим1сть >,prop М< номшативна — функщя >],

set М [visibility М< видимють >,prop М< номшативна — функщя >]]

< видимють >G {0,1, 2, 3}

//позначають модифжатори public, protected, private, internal

< модифжатор >G {0,1} //позначають модифжатори virtual, override

Таке дане складаеться з композицп типiв даних визначених в [1, 3, 4], таким чином, очевидно, що вище представлен об'екти можна задати в клас номшативних даних.

Запропоноване представлення об'ектав шдтримуе такi основнi властивостi ООП, як наошдування, iнкапсуляцiю та може шдтримувати полiморфiзм.

Зважаючи на можливють представлення об'екту за допомогою номшативних даних можна розширити запропонований в [1] прототип аксюматично! системи специфжацш програм над номшативними даними (NDSL), що побудований на основi композицшно-номшативного методу уточнення поняття програми [1, 2, 3, 4], аксюматично! системи специфжацш програм над номшативними даними [1, 3], секвен-цшного числення над номшативними даними [1, 6], та бере за основу синтаксичну нотащю мови специфжацш Z [7]. Для такого розширення (OBJ-NDSL) вiзьмемо за основу запропоноване представлення об'ектав, синтаксичну нотащю мови Object-Z [8] та розширимо мову NDSL поняттям класу.

OBJ-NDSL специфжащя складаеться з формального математичного тексту та ш-ту!тивного неофщшного пояснення (у виглядi коментарiв). Формальний текст складаеться з поошдовност параграфiв, що представляють схеми-класи, схеми, глобальш змiннi, базовi типи специфiкацiй. Кожен параграф базуеться на попередшх та може визначати один чи бшьше iмен схем-класiв, схем, основних тишв, глобальних змш-них та глобальних констант. Вш може використовувати iмена, визначенi в iнших параграфах.

1снуе юлька видiв параграфiв. Основнi визначення типу, схема стану (обов'язково присутня та едина), схема iнiцiалiзацil (обов'язково присутня та едина), визначення схеми, операцп, предикати та шше.

Визначення базових тишв представляе один, чи юлька основних тишв. 1мена, що використовуються не повинш мати попередньо! глобально!' декларацп. Область !'х ^ii простягаеться вщ визначення до кiнця специфжацп, !'х iмена стають частиною глобального словника основних тишв.

Визначення схеми включае вид схеми (схема-клас, схема стану, схема шщаль зацп, операщя), 1м'я, декларативну та аксюматичну частини. При цьому, декларативна частина складаеться з набору декларацш змшних з типами, що е глобальни-ми типами, або побудоваш за допомогою конструктор1в тишв (декартовий добуток, множина, список, номшативна множина, клас). Аксюматична частина складаеться з набору Д0-предикатав [1, 3].

Визначення схеми-класу включае 1м'я, частину наошдування, декларативну та предикатну частини, схему шщал1зацп об'екта (конструктор), схема-деструктор, схеми-методи. Частина наошдування може м1стити один параграф з об'ектом вщ-повщного базового класу, та (або) деюлька реал1зацш штерфейав. Декларативна частина може м1стити public, protected, private та internal параграфи, що мютять вiдповiднi набори декларацш атрибутав з типами, що е глобальними типами, або побудоваш за допомогою конструкторiв типiв (декартовий добуток, множина, список, номшативна множина, клас). Предикатна (аксюматична) частина складаеться з набору Д0-предикатав [1, 3]. Схема iнiцiалiзацiï та схема деструктор е вщповщно конструкторами та деструкторами об'екта, схеми-методи та схеми-властивост — е звичайними схемами виду операщя.

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

Висновки

Базуючись на композицiйно-номiнативному методi уточнення поняття програ-ми [1, 3], аксюматичнш системi специфiкацiй програм над номшативними дани-ми [1, 2, 3], секвенцшному численнi композицшно-номшативних логiк [1, 5] та мо-вi Object-Z [8] побудовано прототип аксюматично!' системи специфiкацiй програм над номшативними даними (OBJ-NDSL). Система OBJ-NDSL дозволяе доводити певш властивост програм. Тим самим показано, що КНП може ефективно використо-вуватися для побудови аксюматично!' системи специфжацш програм (в тому чист i об'ектно-орiентованих) над номiнативними даними, що достатньо адекватно вщпо-вiдае проблемам програмування.

Список Л1ТЕРАТУРИ

1. Омельчук Л. Л. Аксюматичш системи специфжацш програм над номшативними даними: Дисер-тащя к.ф.-м.н.: 01.05.01. - К., 2007. - 142 с.

Omelchuk, L. L. 2007. Axiomatic Systems of Spécifications of Programs over Nominative Data. Ph. D. Thesis: 01.05.01. (Ukrainian), Kyiv, 142 p.

2. Омельчук Л. Л. Прототип реал1заци аксюматично!' системиспецифжацш програм над ме-таномшативними даними. Theoretical and applied aspects of program systems development (TAAPSD'2007). - Abstracts. - Berdyansk, Ukraine, 2007. P. 107-113.

Omelchuk, L. L. 2007. A prototype of axiomatic system of specifications of programs over metanominative data. Theoretical and applied aspects of program systems development (Ukrainian), Abstracts. Berdyansk, Ukraine, P. 107-113.

3. Никитченко Н. С. Композиционно-номинативный подход к уточнению понятия программы // Проблемы программирования. — 1999. — №. 1. — С. 16-31.

Nikitchenko, N. S. 1999. Composite-nominative approach to updating the concept of the program Problems in programming (Ukrainian), 1, pp. 16-31.

4. Редько В. Н. Основания композиционного программирования // Программирование. — 1979. — № 3. — С. 3-13.

Redko, V. N. 1979. The grounds of the composite programming. Programming (Russia), Kyiv, 3, pp. 3-13.

5. Grady Booch. Object-Oriented Analysis and Design with Applications (3rd Edition)Addison Wesley Longman Publishing Co., Inc. Redwood City, CA, USA 2004 ISBN:020189551X. p. 534.

6. Шктченко М. С., Шкыьняк С. С. Математична логжа. Додатковi роздши: Навчальний поаб-ник. — Кшв.: Видавничо-полiграфiчний центр "Кшвський ушверситет", 2004. — 77 с. Nikitchenko, M. S. and Shkilnyak, S. S. 2004. Logic. More sections: TutorialPublishing center "Kyiv University" (Ukrainian), Kyiv, 77 p.

7. J. M.j;Spivey 1998. The Z Notation: A Reference Manual.-Oriel College, Oxford, OX1 4EW, England.

8. Graeme Smith 2000. The Object-Z Specification Language. — Advances in Formal Methods Series, Kluwer Academic Publishers.

Статья поступила в редакцию 24.09.2013

i Надоели баннеры? Вы всегда можете отключить рекламу.