• No results found

CONSTRUCTIVE MODEL OF DATA STRUCTURES ADAPTATION IN RAM: PART I. PROGRAM TEXT CONSTRUCTING

N/A
N/A
Protected

Academic year: 2020

Share "CONSTRUCTIVE MODEL OF DATA STRUCTURES ADAPTATION IN RAM: PART I. PROGRAM TEXT CONSTRUCTING"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

ІНФОРМАЦІЙНО

-

КОМУНІКАЦІЙНІ

ТЕХНОЛОГІЇ

ТА

МАТЕМАТИЧНЕ

МОДЕЛЮВАННЯ

УДК

510.25:004.422.63.05

В

.

И

.

ШИНКАРЕНКО

1*

,

Г

.

В

.

ЗАБУЛА

2*

1*Каф. «Компьютерныеинформационныетехнологии», Днепропетровскийнациональныйуниверситет

железнодорожноготранспортаимениакадемикаВ. Лазаряна, ул. Лазаряна, 2, Днепропетровск, Украина, 49010, тел. +38 (056) 373 15 35, эл. почта [email protected], ORCID 0000-0001-8738-7225

2*Каф. «Компьютерныеинформационныетехнологии», Днепропетровскийнациональныйуниверситет

железнодорожноготранспортаимениакадемикаВ. Лазаряна, ул. Лазаряна, 2, Днепропетровск, Украина, 49010, тел. +38 (056) 373 15 35, эл. почта [email protected], ORCID 0000-0002-8607-5729

КОНСТРУКТИВНАЯ

МОДЕЛЬ

АДАПТАЦИИ

СТРУКТУР

ДАННЫХ

В

ОПЕРАТИВНОЙ

ПАМЯТИ

:

ЧАСТЬ

I.

КОНСТРУИРОВАНИЕ

ТЕКСТОВ

ПРОГРАММ

Цель. Стремительно растущиеобъемы обрабатываемыхданных информационныхсистемсущественно снижаютвременнуюэффективностьалгоритмовихобработки. Однимизнаправленийрешенияданнойпро

-блемыявляетсяэффективноеразмещениеданныхвоперативнойпамяти (ОП). Необходиморазработатьмо

-дели, позволяющиеавтоматизированорешатьзадачи рациональногоразмещенияданныхвОП. Методика.

Длямоделированияпроцессовадаптацииструктурданных (СД) вОПпримененаметодологияматематико

-алгоритмического конструктивизма. Данный подход предусматривает разработку конструктивно

-продукционных структур (КПС) с преобразованиями специализации, интерпретации, конкретизации

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

Результатом реализации конструктора процесса адаптации являются генерации программного текста библиотеки классов, реализующей заданную логическую структуру данных с соответствующими опера

-циями их обработки, и ее компиляция в бинарный код. Научная новизна. Впервые предложена конструктивная модель процессов разработки и адаптации структур данных к различным программно

-аппаратным средам. При этом адаптируется размещение данных в ОП и алгоритмы их обработки.

Применение конструктивизма в моделировании позволило в рамках единого подхода и применяемых средствсвязатьмоделиданныхиалгоритмыихобработкискритериямиэффективности. Усовершенствова

-наметодикаформированиясистемыКПС, механизмы, связимеждувзаимодополняющимидругдругаКПС.

Модификация конструктора и преобразователей позволяет коренным образом изменять и исследовать процесс адаптации. Практическая значимость. Разработанная модель позволяет автоматизировать процессы рационального размещения данных в ОП, что, в свою очередь, повышает временную эффективностьпрограммсозначительнойдолейобработкибольшихиоченьбольшихобъемовданных.

Ключевыеслова: структураданных; конструктивно-продукционная структура; адаптация; конструктор;

(2)

Введение

Существует несколько подходов формали -зацииструктурданных (СД). Вбольшинствеиз них модели данных не связаны с алгоритмами обработки. Такая связьпрослеживается врабо -тах [1, 2, 5], вкоторыхзаложеныосновыалгеб -раического аппарата, где в описание управ -ляющих структур алгоритмов органично «встроены» данные. В [1] реализован ком -плексный подход на основе трехосновной ал -гебраическойсистемы. Приописаниикомпози -ционныхсхемалгоритмы согласуютсяс управ -ляющими структурами и СД. Описание СД ввидесхемданныхпозволяетих детализовать, обеспечивая спецификацию данных на входе ивыходепроизводныхД-операторов. СДмогут быть реконфигурированы в соответствии с из -менениемалгоритмарешаемойзадачи.

Однако, в этом и других подходах отсутст -вует связь между логическим представлением данных и представлением данных в оператив -ной памяти в процессе выполнения обработки данных, что не позволяет решать задачи опти -мизации и адаптации размещения СД в опера -тивной памяти (ОП) на основании критериев временнойэффективности.

ПроблемыформализацииСДналогическом, физическом и промежуточных уровнях орга -ничнорешаютсясредствамиКПС [12].

Цель

Стремительно растущие объемы обрабаты -ваемыхданныхинформационныхсистем суще -ственно снижают временную эффективность алгоритмов их обработки. Одним из направле -ний решения данной проблемы является эф -фективное размещение данных в оперативной памяти (ОП).

Инструментальные средства оптимизации программ не предусматривают изменений в размещении и соответствующей обработке данныхвОП. Некоторыеприемыихэффектив -ного проектирования [8-11, 14] требуют высо -кого уровня профессиональной подготовки специалистовиявляютсялибоуниверсальными (не учитывающими особенностей программно -аппаратнойсредыихиспользования), либоузко специализированными.

Необходимы модели, позволяющие автома -тизировано решать задачи рационального раз

-мещения данных в ОП с учетом программно -аппаратной среды их эксплуатации. При этом должны выполняться лишь допустимые преоб -разования [6] структурданных.

Методика

Обобщеннойконструктивно-продукционной структурой (ОКПС) называетсятройка [12]:

, , G

C =<M Σ Λ >,

где M – неоднородныйносительструктуры; Σ – сигнатура, состоящая из множеств операций связывания, подстановки и вывода, операций надатрибутамииотношенияподстановки; Λ – конструктивная аксиоматика. Аксиоматика Λ полностьюпредставленав [12].

Назначение конструкционно-продукцион -ной структуры (КПС) состоит в формировании множеств конструкций с помощью операций связывания, подстановки, вывода и др. опера -ций, задаваемыхправиламиаксиоматики.

В данной работе под конструкциями пони -маются формируемые конструкции логических структур данных (ЛСД), тексты программ в описательной и исполнительной форме, сце -нарии обработкиданных, конструктивныепро -цессыадаптации.

Для формирования конструкций необходи -мовыполнятьрядуточняющихпреобразований ОКПС [4, 12]:

− специализация определяет предметную область: семантическую природу носителя, ко -нечное множество операций и их семантику, атрибутику операций, порядок их выполнения иограничениянаправилаподстановки;

− интерпретация заключается в связывании операций сигнатуры с алгоритмами выполне -ния некоторой алгоритмической структуры [13]. При интерпретации выполняетсясвязыва -ние информационной модели способапострое -нияконструкцийимоделиисполнителя;

− конкретизация КПС заключается в рас -ширенииаксиоматикимножествомправилпро -дукций, задании конкретных множеств нетер -минальных и терминальных символов с их ат -рибутами и, при необходимости, значений ат -рибутов;

(3)

соперациями сигнатуры. Реализациявозможна только для предварительно специализирован -ной, интерпретированной и конкретизирован -нойКПС [12].

Согласно аксиоматике ОКПС формой wl с атрибутом w называется набор терминалов и нетерминалов, объединяемых операциями связывания. Конструкцией называется форма, содержащаятолькотерминалы [12].

Правила подстановки имеют вид : ,

r s gr r

ψ ∈Ψ, где sr – отношения подста -новки; gr – набор операций над атрибутами. Отношение подстановки – двуместное отноше -ние с атрибутами

i j

w il ww lj [12]. Для фор -мы

0 ( 11, 2 2,..., ,..., )

l h k

w ll = ⊕w wl w l w hl w kl и доступ

-ного отношения подстановки

h p q

w hl ww ql такого, что w hhlw lll (w hhl явля

-ется частью

l

w ll ), результатом трехместной операции подстановки ( , , )

p h q l

ww h w q w ll l l бу -дет форма *

0 1 2

*

1 2

( , ,..., ,..., )

q k

l l w w w w q w k

w l = ⊕ l l l l [12], где ⊕ – любаяоперациясвязыванияиз Σ.

Операция частичного вывода

*

, , ( | ( , , , ))

тахn q ml = ⇒ Ψ тахn q ml заключаетсяв: − выбореодногоиздоступныхправилподста -новки dψr: s gr, r ∈Ψ, с отношениями подста -новки sr и выполнении на его основе операций подстановки, где d – вектордоступностиправил. Доступностьправила dψr определяется значени -емвекторадоступности: если dr =1 правилодос -тупно, если dr =0 – правилонедоступно;

− выполненииоперацийнадатрибутами gr. Порядок применения операции над атрибу -тамив процессе выполненияоперации частич -ноговыводазадаетсяатрибутом τj, где τ ∈j I,

0 1

{ }

I = τ τ, , IMKAC, τ0 – операция над атри -бутом выполняется перед операцией подста -новки, τ1 – послеоперацииподстановки.

Операция полного вывода (или просто вы -вода) заключается в последовательном выпол -нении операции частичного вывода, начиная с начального нетерминала и заканчивая конст -рукцией, удовлетворяющейусловиюокончания вывода.

Условием окончания вывода является от -сутствиенетерминаловвформе.

Результаты

В первой части работы представлены вспо -могательные конструкторы, позволяющие кон -струировать множество различных вариантов размещения данных в ОП и порождающие со -ответствующие им программы обработки дан -ных, такихкакдобавление, поискит.д.

Конструктор логической структуры дан

-ных. Формальной структурой дляпроектирова -ния СД на логическом уровне назовем КПС

LD

C :

, ,C=<M Σ Λ > S CLD =<MLDLDLD >,(2)

где S – операция специализации формаль -ных структур (операция выполняется внешним исполнителем),

, , ,{ }

LD LD LD LD

Σ =< Ξ Θ Φ → >, Ξ =LD

{

i,

}

,

1 2

LD

Λ = Λ ∪Λ .ΛLD = Λ1∪Λ2.

1 {ΜLD (T N ,T) {↵x ,t ,si i ix ,Ni} {siαi}},

Λ = ⊃ ∪ = =

где { }xi – множество простейших элементов данных с атрибутами: типом type, определяю -щим множество допустимых значений ↵xi, множеством допустимых операций { }Op= oi , семантикой φi; { }αi – множествомнетермина -лов.

Множество допустимых операций Op

включает операции поиска, удаления, добавле -нияиоперации, построенные наихоснове. На -пример, поиск по ключу, удаление нескольких элементов.

Частичная аксиоматикаΛ2 включает сле -дующиеаксиомыиинструктивныедополнения.

Операциясвязываниятерминалов x xi i j об -ладаетсвойствомсимметричности:

&

i i

s xi s xj

∀ i sisjx xii j =x xji i.

Операция предназначена для связывания неоднородныхэлементов.

Операция связывания терминалов xi xj

(4)

&

i i

s xi s xj

si =sjxi xjxj xi.

Операция предназначена для связывания однородных элементов в примитивную конст -рукцию.

Значение трехместной операция условного выбора ( , , )÷ c a b является a, если c true= и b

впротивномслучае.

Операции связывания имеют идентифици -рующий атрибут ρi∈ =Ρ {ρ12,...,ρn}, где n – общее количество групп операций связывания вконкретизированной грамматике. Атрибут ρi

применяетсядля идентификацииоперации свя -зываниявразличныхчастяхЛСД.

Для интерпретации CLD построим модель исполнителя в виде базовой алгоритмической структуры (БАС) [13]:

, , , , , , , ,

A LD A LD A LD A LD A LD

С =<M V Σ Λ >,

где MA LD, – неоднородный носитель, VA,LD – множество образующих алгоритмов базовых (элементарных) для некоторого исполнителя,

A,LD

Σ – сигнатура и ΛA,LD – аксиоматика. Но -ситель MA LD, ⊃ ∪ ∪ ΩT N (CA LD, )∪W , где

( A,LD)

Ω С все сформированные алгоритмами алгоритмическойструктурыконструкции; W – множество допустимых значений атрибутов.

Множество базовых 0

1

{ i j

i j

A A A,LD A ,A

VA |,

1 2

0

2 i i

:A Z ,Z ,A

A | , 0

3 ,

i j

i j

l l l ,l

A | i 0

4 }

i j

i j

l l l ,l

A | и сконструиро

-ванных { 5 | j, , ,

h q i

f f f f

A 6 | j, ,

i

f f

A Ψ 7 | j, }

i

f

W f

A ΨV

,

(СA LD)

⊂ Ω алгоритмов:

− выполнения операции композиции алго -ритмов 0

1 | ,

i j

i j

A A A A

A ⋅ ( |Y X

A – алгоритм над данными из входного множества X со значениями из множества Y , A0образующий алгоритм),

,

, ( )

i j A MS

A A ∈Ω С ,A Aij – последовательное выполнениеалгоритма Aj послеалгоритма Ai; − условного выполнения алгоритма

1 2

: 0 2 | i, , i

A Z Z A

A , который заключается в выполнении алгоритма Ai приусловии Z1Z2;

− связывания неоднородных элементов

0 3 | ,

i j

i j

l l l l

A i , , *

i j

l lF ;

− связывания однородных элементов

0 4 | ,

i j

i j

l l l l

A , , *

i j

l lF ;

− выполнения операции подстановки

5|h qj, ,i

f l l f

A , ,f fi jF l l, ,h qS;

− выполнения операций частичного и пол -ноговывода 6| j,

i

f f

A Ψ, 7 | j, i

f f

A Ψ f fi, jF;

− выполнения операции условного выбора

8 |vc a b, ,

A ;

− множествоалгоритмов, реализующихопе -рациинадатрибутамиVW.

Интерпретация формальнойструктуры про -ектированияСДналогическомуровне:

, , ,

LD LD LD LD

C M

< =< Σ Λ >

, , , , , ,

A LD A LD A LD A LD

C =<M Σ Λ >>

, , , , ,

I ICLD=<MI LD ΣI LD ΛI LD>,

где I – операцияинтерпретации;

, 3

I LD LD

Λ = Λ ∪Λ ; 0

3 {( 3 | , );

i j

i j

l l l l

A

Λ = i ↵i

0

4 ,

( |i j );

i j

l l l l

A i ↵ ( 5 | j, , );

h q i

f l l f

A ↵ ⇒ ( 6| j, | );

i

f f

A Ψ ↵ ⇒

7 ,

( | j || );

i

f f

A Ψ ↵ ⇒ ( 8 |v, , , ); c f t

A ↵÷ ∀ ∈Φ ∃i :

( |i " "),

i

Y i X i

A ↵ |i ( , )}

i

Y

i X A LD

A ∈Ω C .

Рассмотрим однуиз конкретизаций ICLD на примерелогическойструктуры BMP файла [7]

, , , , ,

ICLD =<MI LD ΣI LD ΛI LD >

, ,

BMP BMP BMP BMP

K CL =<ML ΣL ΛL >,

где K – операцияконкретизации;

BMP

L LD LD

MTN;

,

BMP

L I LD BMP Σ = Σ ∪ Σ ;

{" "," "," "," ",": "," "} BMP

(5)

, 4 5

BMP

L I LD

Λ = Λ ∪ Λ ∪ Λ . Λ =<4 TLD={ ,a ,b ,c ,

e ,f ,o ,q ,z ,x }v , NLD = α β δ η ϕ θ{ , , , , , } >.

Частичнаяаксиоматика Λ5 включает всебя следующиеправилаподстановки.

Отношение s1 определяетобщуюструктуру файла

1 1

1 d

s =< αφ → βφ ρiφδ >;

0 g1: d1: true

τ ↵τ =< = >.

Сокращенный информационный заголовок BMP-файла представлен s2. Заголовоксостоит извысоты, ширины, количествабитнапиксель

2 2 2

2 d type, ρ type, ρ type,

s =< βφφa i φb i φc>;

0 g :2 d :2 true

τ ↵τ =< = >.

Следующее отношение определяет данные изображенияввидепоследовательности цветов в RGB-модели.

1 3 5

3 d type, ρ

s =< δφφe φη >;

0 g3: d3: (z a 256, true,false)

τ ↵τ =< = ÷ ↵ > >.

Далее представляется изображение в виде модели Index Color

2 4 3

4 d ρ

s =< δφ → ϕφ iφθ >;

0 g :4 d :4 (z a 256, true,false)

τ ↵τ =< = ÷ ↵ ≤ >.

Отношение s5 определяетструктуру палит -ры. Палитра представлена в виде последова -тельностицветовв RGB-модели

5 6

5 d type, ρ

s =< ϕφφf φη >;

0 g6: d6: true

τ ↵τ =< = >.

Данные изображения в виде индексов, ука -зывающих на элементы палитры, определены вследующемотношении

6 type, 7 type,

6 d ρ

s p q

φ φ

φ

=< θ → >;

0 g6: d6: true

τ ↵τ =< = >.

Отношение s7 определяет цвет в модели RGB

7 3 3

7 d type, ρ type, ρ type,

s =< ηφφz i φx i φv>;

0 g7: d7: true

τ ↵τ =< = >.

Значения атрибутов семантики приведены втабл. 1. Идентификаторы, указанныевтабл. 1, используются дляименования полейСДвпре -образователях, приведенныхдалее.

Таблица 1 Table 1

Атрибут Значение Идентификатор

φ↵α BMP файлбезфай

-ловогозаголовка

BMPFile

φ↵β Информационный

заголовок BMP InfoHeader

1

φ ↵δ Данныеизображе

-ниявмодели RGB

ImageDataRGB

a

φ↵ Количествобитовна

пиксель BitsPerPixel

b

φ↵ Ширинаизображе

-ния

Width

c

φ↵ Высотаизображе

-ния Height

f

φ↵ Массивпалитры

цвета RGB

Palette

e

φ↵ Цвета RGB RGBMatrix

2

φ ↵δ нияДанныевмоделиизображеиндек-

-сированногоцвета

ImageDataIndex

φ↵δ Данныеизображе

-ния ImageData

p

φ↵ Матрицаиндексов

цветапикселей IndexMatrix

q

φ↵ Индексцветапиксе

-лей Index φ↵η Цвет RGB RGB

z

φ↵ Компонента R R

v

φ↵ Компонента B B

В результате реализации могут быть сфор -мированыконструкцииЛСД, соответствующие BMP файлу, смодельюцвета:

– Index Color

2 2 1 6

type, type, type, type,

(6)

3 3 4 7 type,

type, type, type, type,

( φz ρ i φx ρ i φv)) ρ i φp ρ φq);

– True Color

2 2 1

, , ,

(typeφa ρ itypeφb ρ itypeφc)ρi

5 3 3

, , , ,

(typeφe ρ (typeφz ρ itypeφx ρ itypeφv)).

Преобразователь логической структуры

данных в программный интерфейс на языке

программирования. После проектирования на

абстрактном и логическом уровнях следует этаппроектирования СДна уровнепредставле -ния (языкепрограммирования) [7, 15].

Специализированной формальной структу -ройдляпреобразованиялогическойСД впред -ставление на языке программирования, CPLI

будет:

, , S PLI

C=<M Σ Λ > C =

, , , , . ,

S PLI S PLI S PLI

M

=< Σ Λ > где

, , , ,{ }

S PLI PLI PLI PLI

Σ =< Ξ Θ Φ → >,

{ }

, 1

PLI

Ξ = i ∪ Ξ ,

PLI Φ = ∅,

,

S PLI

Λ = Λ ∪ Λ ∪ Λ6 7,

6 {ΜPLI

Λ = ⊃ (TS PLI,NS PLI, ),

, { }#

S PLI

T = C , NS PLI, ={! !}a ,i

где { }C# – ключевые слова, знаки операций иразделителиязыкапрограммирования C#, Ξ1 – включает единственную операцию конкате -нации лексем языка программирования, знак операциивезде опускается, ! !ai – нетерминалы правилподстановки.

Частичная аксиоматика Λ7 определяет со -став правил подстановки: ψi: si ∈Ψ,

,1, ,2

i i i

s =<s s >, где si,1 – правило подстановки логическойструктурыданных, si,2 – соответст -вующее правило подстановки для формирова -ниятекстапрограммы.

Интерпретацию CPLI выполним, используя ранее определенную алгоритмическую струк -туру

, , , , , ,

A LD A LD A LD A LD

C =<M Σ Λ >:

, , , , , , ,

S PLI S PLI S PLI S PLI

C M

< =< Σ Λ >

, , , , , ,

A LD A LD A LD A LD

C =<M Σ Λ >>

, , , , ,

I ICPLI =<MI PLI ΣI PLI ΛI PLI >

где ΛI PLI, = ΛPLI ∪ ΛA LD, ;

Конкретизируем структуру следующими правиламиподстановки

,PLI, ,PLI, ,PLI

ICPLI =<MI ΣI ΛI >

, ,

K CPLI =<MPLI ΣPLI ΛPLI >, где

PLI PLI PLI

MTN ;

,

PLI I PLI Σ = Σ ;

, 8 9

PLI I PLI

Λ = Λ ∪ Λ ∪ Λ .

8

Λ =< TPLI = TLDTS PLI, ∪{ IBMPFile, IInfo-Header, IImageData, BitsPerPixel, Width, Height, IMatrixRGB, IRGB, IImageDataIndex, IPalette, IIndexMatrix, IMatrixIndex, R, G, B} , NPLI =

{ LD

N ∪ !BMPFILEDECL!,

!INFOHEADERDECL!, !IMAGEDATADECL!, !INFOHEADERTYPE!, !IMAGEDATATYPE!, !INFOHEADEREDECL!, !IMAGEDATATYPE!, !IMAGEDATADECL!, !RGBDECL!,

!RGBTYPE! }>.

Частичная аксиоматика Λ9 включает сле -дующиеправилаподстановки.

Интерфейс файла BMP, состоит из инфор -мационного заголовка и данных. Оба поля имеютсоответствующийтип, декларациякото -рогопредставленоследующимиправилами.

1 1,1, 1,2

s =<s s >;

0 0

1,1 p

s =< αφα νφββρ iφδδ >;

1,2

s =<

!BMPFILEDECL! ->

(7)

!INFOHEADERTYPE! InfoHeader {get;set;} !IMAGEDATATYPE! ImageData {get;set;}}>,

Интерфейс информационного заголовка со -стоитизтрехполей.

2 2,1, 2,2

s =<s s >;

1 1

2,1 ta a am ρ tb b bm ρ tc c cm

s =< β →φβ φ a i φ b i φ c>;

2,2

s =<

!INFOHEADERTYPE! -> IInfoHeader !INFOHEADEREDECL ->

interface IInfoHeader { int BitsPerPixel {get;set;} int Width {get;set;} int Height {get;set;} }>,

Структура данных изображения в виде мо -дели True Color. Используется встроенный в .NET Framework интерфейс IList.

3 3,1, 3,2

s =<s s >;

1,

3,1 e ev

s =<φ δδ → φ e η >;

3,2

s =<

!IMAGEDATATYPE! -> IMatixRGB !IMAGEDATADECL! ->

!RGBDECL!

interface IMatrixRGB : IList< IList< !RGBTYPE! > > { }>.

Структура данных изображения в виде мо -дели Index Color состоит из полей палитры иматрицыиндексов

4 4,1, 4,2

s =<s s >;

2, 2

4,1 ρ

s =< φ δδ → φϕϕ i φθθ >;

4,2

s =<

!IMAGEDATATYPE! -> IImageDataIndex !IMAGEDATADECL! ->

!INDEXMATRIXDECL! !PALETTEDECL!

interface IImageDataIndex { !PALETTETYPE! Palette {get;set;}

!INDEXMATRIXTYPE! IndexMatrix {get;set;} }>.

Интерфейс палитры на основе IList интер -фейсы

6 6,1, 6,2

s =<s s >;

6,1 vf f

s =< ϕ →φϕ φ f η >;

6,2

s =<

!PALETTETYPE! -> IPalette !PALETTEDECL! -> !RGBDECL!

interface IPalette : IList<!RGBTYPE!> { }>. Интерфейс матрицы индексированных цве -тов.

7 7,1, 7,2

s =<s s >;

7,1 vp p vq q

s =< θ →φθ φ p φ q>;

7,2

s =<

!INDEXMATRIXTYPE! -> MatrixIndex !INDEXTYPE! -> byte

!INDEXMATRIXDECL! ->

interface IMatrixIndex : IList< IList< !INDEXTYPE! > > { }>,

8 8,1, 8,2

s =<s s >;

8,1 z zv x xv v vv

s =< η →φπ φ zi φ xiφ v>;

8,2

s =<

!RGBTYPE! -> IRGB !RGBDECL! -> inteface IRGB { int R{get;set;} int G{get;set;} int B{get;set;} }>.

В результате реализации преобразователя формируется интерфейс классов обработки структуры данныхна языке программирования C#. Однаизтакихреализацийприведенаниже. interface IInfoHeader {

int BitsPerPixel { get; set; } int Width { get; set; } int Height { get; set; } } interface IRGB { int R { get; set; } int G { get; set; } int B { get; set; } }

interface IMatrixRGB : IList<IList<IRGB>> { } interface IBMPFile {

(8)

Преобразователь абстрактной логической

структуры данных в представление импле

-ментации на языке программирования. Спе

-циализированной формальной структурой для преобразования ЛСД в представление языка программированияназовемКПС CPL:

, , , ,

, , S S PL S PL, S PL, S PL ,

C=<M Σ Λ > C =<M Σ Λ > где S –операцияспециализацииформальных структур (операциявыполняетсявнешнимис -полнителем),

, , , ,{ }

S PL PL PL PL

Σ =< Ξ Θ Φ → >,

{

}

PL ,

Ξ = i ,

, 10 11 12

S PL

Λ = Λ ∪ Λ ∪ Λ .

10 { PL (TS PL, NS PL, ),

Λ = Μ ⊃ ∪

, { #},

S PL

T = C

, {! !} }

S PL i

N = a , .

Частичная аксиоматика Λ11 содержит сле -дующиеконструктивныедополнения.

Правила подстановки преобразователя име -ют вид: ψr: s gr, r ∈ Ψ, sr =<s sl,1, r,2 >. Где

,1

l

s – правило вывода логической структуры данных, sr,2 – соответствующее правило выво -да текста программы, gr – атрибуты преобра -зованияправилвыводаЛСД.

Частичная аксиоматика Λ12 содержит сле -дующиеконструктивныедополнения.

Конструкцияпреобразователяимеетвидпа

-ры: ,

PL

C

f R < >, где

PL

C

f – реализация преобра -зователя – текст программы имплементации операций обработки СД; R=<r r1, ,...,2 rk > ri – количество допустимых программных шабло -новдля i-ойсоставляющейСД; k –количество примитивныхконструкцийвЛСД.

Нетерминалы содержат атрибут

1, ,...,2 k

Q=<q q q >, где qi – номер конкретного программного шаблона для генерации текста программ, 0≤ ≤qi ri.

Интерпретацию CPL выполним, используя ранее определенную алгоритмическую струк -туру CA LD, =<MA LD,A LD,A LD, >.

Преобразователь логической структуры данных представляет собой модель программ -ного интерфейса. Он является интерпретацией формальной структуры CPL алгоритмической структурой CA PL, :

, , , , , , ,

S PL S PL S PL S PL

C M

< =< Σ Λ >

, , , , , ,

A LD A LD A LD A LD

C =<M Σ Λ >>

, , , , ,

I ICSC =<MI SC ΣI SC ΛI SC>

Программным шаблоном будем называть коднаязыке C#, которыйреализует примитив -ную конструкциютем илииным способом (на -пример, используя физическое представление данныхввидемассива, списка, ит.п.).

Конкретизируем структуру следующими правиламиподстановки

, , , , ,

ICPL =<MI PL ΣI PL ΛI PL>

, ,

K CPL =<MPL ΣPL Λ >PL , где

PL PL PL

MNT ;

,

PL I PL Σ = Σ ;

, 13 14

PLI I PL

Λ = Λ ∪ Λ ∪ Λ .

13 {

Λ = TPL =TPLI ∪{ BMPFile, InfoHeader, Im-ageData, MatrixRGB, RGB, ImageDataIndex, Pal-ette, IndexMatrix, MatrixIndex} ,

, PL PLI

N =N

1,2,1,1,0,1,1,2 R=< >} .

Частичная аксиоматика Λ14 включается в себяследующиеправилаподстановки.

1 1,1, 1,2

s =<s s >;

0

1,1 Q, Q, Q, ;

s

α β ρ δ

φ φ φ

=< α → β i δ >

1,2

s =< !BMPFILEDECL! ->

!INFOHEADERDECL! !IMAGEDATADECL! class BMPFile {

(9)

1 1 ( 1 0, true,false)

g =<d = ÷ q = >;

2 2,1, 2,2

s =<s s >;

1 1

2,1 Q s, ta a am ρ tb b bm ρ tc c cm

s a b c

β φ φ φ

=< β → i i >;

2,2

s =<

!INFOHEADERTYPE! -> InfoHeader !INFOHEADEREDECL! ->

class InfoHeader { int BitsPerPixel {get;set;} int Width {get;set;} int Height {get;set;}}>,

2 2 ( 2 0, true,false)

g =<d = ÷ q = >

3 2,1, 3,2

s =<s s >;

3,2

s =< !INFOHEADEREDECL!-> class InfoHeader {

LinkedList<int> internal = new LinkedList <int>();

LinkedListNode<int> GetNthNode(int index) { var first = internal.First;

int i = 0;

while(i < index) { first = first.Next; ++I;

}

return first; }

public InfoHeader() { internal.AddLast(0); // BPP internal.AddLast (0); // W internal.AddLast(0); // H }

int BitsPerPixel {

get { return internal.Skip(0).First(); } set { this.GetNthNode(0).Value = value; } }

int Width

get { return internal.Skip(1).First(); } set { this.GetNthNode(1).Value = value; } }

int Height {

get { return internal.Skip(2).First(); }

set { this.GetNthNode(2).Value = value; } } }>,

3 3 ( 2 1, true,false)

g =<d = ÷ q = >;

4 4,1, 4,2

s =<s s >;

1,

4,1 Q, e ev Q,

s e

δ φ η

φ δ φ η

=< → >;

4,2

s =<

!IMAGEDATATYPE! -> MatixRGB !IMAGEDATADECL! ->

!RGBDECL! class MatrixRGB :

List<List<!RGBTYPE!>> { } >,

4 4 ( 3 0, true,false)

g =<d = ÷ q = >;

5 5,1, 5,2

s =<s s >;

2 2,

5,1 Q, Q, ρ Q,

s

δ ϕ θ

φ φ φ

=< δ → ϕ i θ >;

5,2

s =<

!IMAGEDATATYPE! -> ImageDataIndex !IMAGEDATADECL! ->

!INDEXMATRIXDECL! !PALETTEDECL! class ImageDataIndex {

!PALETTETYPE! Palette {get;set;}

!INDEXMATRIXTYPE! IndexMatrix {get;set;} } >,

5 5 ( 4 0, true,false)

g =<d = ÷ q = >;

6 6,1, 6,2

s =<s s >;

6,1 Q, vf f Q,

s f

ϕ φ η

φ φ

=< ϕ → η >;

6,2

s =<

!PALETTETYPE! -> Palette !PALETTEDECL! -> !RGBDECL!

class Palette : Vector<!RGBTYPE!> { } >,

6 6 ( 6 0, true,false)

g =<d = ÷q = >;

7 7,1, 7,2

s =<s s >;

7,1 Q, vp p vq q

s p q

θ φ φ

φ

=< θ → >;

7,2

s =<

!INDEXMATRIXTYPE! -> MatrixIndex !INDEXTYPE! -> int

!INDEXMATRIXDECL! ->

(10)

7 7 ( 7 0, true,false)

g =<d = ÷ q = >;

8 8,1, 8,2

s =<s s >;

8,1 Q, vz z vx x vv v

s z x v

π φ φ φ

φ

=< η → i i >;

8,2

s =< !RGBTYPE! -> RGB !RGBDECL! -> class RGB { int R{get;set;} int G{get;set;} int B{get;set;} }

8 8 ( 8 0, true,false)

g =<d = ÷ q = >; 

9 8,1, 9,2

s =<s s >;

9,2

s =<

!LISTIMPL_DECLARE_INT_LIST! -> List<int> internalList = new List<int>();

!LISTIMPL_FIELD_BEG! -> public int !LISTIMPL_FIELD_MI1! -> {

get{return internalList [

!LISTIMPL_FIELD_MI2! -> ];} set { internalList [

!LISTIMPL_FIELD_END! -> ] = value; }} !RGBDECL! ->

class RGB {

!LISTIMPL_DECLARE_INT_LIST! public RGB() { }

!LISTIMPL_FIELD_BEG! R !LISTIMPL_FIELD_MI1! 0 !LISTIMPL_FIELD_MI2! 0 !LISTIMPL_FIELD_END! !LISTIMPL_FIELD_BEG! G !LISTIMPL_FIELD_MI1! 1 !LISTIMPL_FIELD_MI2! 1 !LISTIMPL_FIELD_END! !LISTIMPL_FIELD_BEG! B !LISTIMPL_FIELD_MI1! 2 !LISTIMPL_FIELD_MI2! 2 !LISTIMPL_FIELD_END!

9 9 ( 8 1, true,false)

g =<d = ÷q = >.

Пусть внешним исполнителем задан вектор 1,2,1,1,0,1,1,2

Q=< >, тогда при реализации бу -дет сформирована следующая имплементация программногокоданаязыке C#:

class InfoHeader {

LinkedList<int> internalList = new LinkedList<int>();

LinkedListNode<int> GetNthNode(int index) { var first = internalList.First;

int i = 0;

while (i < index) { first = first.Next; ++i;

}

return first; }

public InfoHeader() {

internalList.AddLast(0); // BPP internalList.AddLast(0); // W internalList.AddLast(0); // H } int BitsPerPixel {

get { return internalList.Skip(0).First(); } set { this.GetNthNode(0).Value = value; } } int Width {

get { return internalList.Skip(1).First(); } set { this.GetNthNode(1).Value = value; } } }

int Height {

get { return internalList.Skip(2).First(); } set { this.GetNthNode(2).Value = value; } } } class RGB {

List<int> internalList = new List<int>(); public RGB() {

internalList.Capacity = 3; }

int R {

get { return internalList[0]; } set { internalList[0] = value; } } int G {

get { return internalList[1]; } set { internalList[1] = value; } } int B {

get { return internalList[1]; } set { internalList[1] = value; } } }

class MatrixRGB : List<List<RGB>> { } class BMPFile {

InfoHeader InfoHeader { get; set; } MatrixRGB ImageData {get;set;} }

Выводы

(11)

сценариевипроцессов адаптациипредставлена вовторойчастистатьи.

СПИСОКИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Акуловский, В. Г. Алгебрадля описаниядан

-ных в композиционных схемах алгоритмов /

В. Г. Акуловский // Проблеми програмування. – 2012 – № 2-3. – C. 234–240.

2. Акуловский, В. Г. Основы алгебры алгорит

-мов, базирующейся наданных / В. Г. Акулов

-ский // Проблеми програмування. – 2010. –

№ 2-3. – C. 89–96.

3. Алгоритмы: построение и анализ / Т. Кормен,

Ч. Лейзерсон, Р. Ривест, К. Штайн. – Санкт

-Петербург : ООО «И. Д. Вильямс», 2011. – 1296 с.

4. Босов, А. А. Структурная сложность систем /

А. А. Босов, В. М. Ильман, Н. В. Халипова //

Вісн. Дніпропетр. нац. ун-тузалізн. транспім.

акад. В. Лазаряна. – Дніпропетровськ, 2012. –

Вип. 40. – C. 173–179.

5. Дорошенко, А. Е. Алгебра алгоритмов с дан

-ными и прогнозирование вычислительного процесса / А. Е. Дорошенко, В. Г. Акуловский

// Проблеми програмування. – 2011. – № 3. –

С. 3–10.

6. Дрожжин, В. В. Преобразованиеструктурдан

-ныхв полеструктурданных / В. В. Дрожжин,

А. М. Володин // Изв. Пензен. гос. пед. ун-та им. В. Г. Белинского. – Пенза, 2011. – № 26. –

С. 380–385.

7. Шинкаренко, В. И. Конструкционно

-продукционнаямодельструктурданныхнало

-гическом уровне / В. И. Шинкаренко,

В. М. Ильман, Г. В. Забула // Проблеми про

-грамування. – 2014. – № 2-3. – С. 10–16.

8. Array Based HV/VH Tree: an Effective Data Structure for Layout Representation / J. Ren, W. Pan, Y. Zheng [et al.] // J. of Zhejiang Univer-sity-SCIENCE C (Computers & Electronics). – 2012. – Vol. 13. – Iss. 3. – P. 232–237. doi: 10.1631/jzus.c1100193.

9. Attali, D. Efficient Data Structure for Representing and Simplifying Simplicial Complexes in High Dimensions / D. Attali, A. Lieutier, D. Salinas // In-tern. J. of Computational Geometry & Applications. – 2012. – Vol. 22. – Iss. 4. – P. 279–303. doi: 10.1142/S0218195912600060.

10. Bentley, J. L. Writing Efficient Programs / J. L. Bentley. – New Jersey : Prentice-Hall in Eng-lewood Cliffs, 1982. – 170 p.

11. Drepper, U. What Every Programmer Should Know About Memory / U. Drepper. – Raleigh : RedHat, Inc., 2007. – 114 p.

12. Shynkarenko, V. I. Constructive-Synthesizing Structures and Their Grammatical Interpretations. I. Generalized Formal Constructive-Synthesizing Structure / V. I. Shynkarenko, V. M. Ilman // Cy-bernetics and Systems Analysis. – 2014. – Vol. 50. – Iss. 5. – P. 655–662. doi: 10.1007/s10559-014-9655-z.

13. Shynkarenko, V. I. Structural Models of Algo-rithms in Problems of Applied Programming. I. Formal Algorithmic Structures / V. I. Shynk-arenko, V. M. Ilman, V. V. Skalozub // Cyber-netics and Systems Analysis. – 2009. – Vol. 45. – Iss. 3. – P. 329–339. doi: 10.1007/s10559-009-9118-0.

14. Weiss, M. A. Data Structures and Algorithm Anal-ysis in C++ / M. A. Weiss. – New Jersey : Pearson Education Inc., Addison-Wesley, 2014. – 656 p. 15. Ziegler, C. A. Programming System

methodolo-gies / C. A. Ziegler. – New Jersey : Prentice-Hall, Englewood Cliffs, 1983. – 260 p.

В

.

І

.

ШИНКАРЕНКО

1*

,

Г

.

В

.

ЗАБУЛА

2*

1*Каф. «Компьютерніінформаційнітехнології», Дніпропетровськийнаціональныйуніверситетзалізничного

транспортуіменіакадемікаВ. Лазаряна, вул. Лазаряна, 2, Дніпропетровськ, Україна, 49010, тел. +38 (056) 373 15 35, ел. пошта [email protected], ORCID 0000-0001-8738-7225

2*Каф. «Компьютерніінформаційнітехнології», Дніпропетровськийнаціональныйуніверситетзалізничного

транспортуіменіакадемікаВ. Лазаряна, вул. Лазаряна, 2, Дніпропетровськ, Україна, 49010, тел. +38 (056) 373 15 35, ел. пошта [email protected], ORCID 0000-0002-8607-5729

КОНСТРУКТИВНА

МОДЕЛЬ

АДАПТАЦІЇ

СТРУКТУР

ДАНИХ

В

ОПЕРАТИВНІЙ

ПАМ

ЯТІ

:

ЧАСТИНА

I.

КОНСТРУЮВАННЯ

ТЕКСТІВ

ПРОГРАМ

(12)

завданняраціональногорозміщенняданихвОП. Методика. Длямоделюванняпроцесівадаптаціїструктурданих

(СД) в ОП застосована методологія математико-алгоритмічного конструктивізму. Даний підхід передбачає розробку конструктивно-продукційних структур (КПС) із перетвореннями спеціалізації, інтерпретації,

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

вбінарнийкод. Науковановизна. Впершезапропонованаконструктивнамодельпроцесіврозробкитаадаптації структурданихдорізнихпрограмно-апаратнихсередовищ. ПрицьомуадаптуєтьсярозміщенняданихвОП та алгоритми їх обробки. Застосування конструктивізму в моделюванні дозволило в рамках єдиного підходу та застосовуванихзасобівзв’язатимоделіданихіалгоритмиїхобробкизкритеріямиефективності. Удосконалено методику формування системи КПС, механізми, зв’язки між взаємодоповнюючими один одного КПС.

Модифікація конструктората перетворювачів дозволяє докоріннозмінюватиі досліджуватипроцес адаптації.

Практичназначимість. Розробленамодельдозволяєавтоматизуватипроцесираціональногорозміщенняданих

в ОП, що, у свою чергу, підвищує часову ефективність програм зі значною часткою обробки великих

ідужевеликихобсягівданих.

Ключові слова: структура даних; конструктивно-продукційна структура; адаптація конструктор; пере

-творювач

V. I. SHYNKARENKO

1*

, H. V. ZABULA

2*

1*Dep. «Computer and Information Technologies», Dnipropetrovsk National University of Railway Transport

named after Academician V. Lazaryan, Lazaryana St., 2, Dnipropetrovsk, Ukraine, 49010, tel. +38 (056) 373 15 35, e-mail [email protected], ORCID 0000-0001-8738-7225

2*Dep. «Computer and Information Technologies», Dnipropetrovsk National University of Railway Transport

named after Academician V. Lazaryan, Lazaryana St., 2, Dnipropetrovsk, Ukraine, 49010, tel. +38 (056) 373 15 35, e-mail [email protected], ORCID 0000-0002-8607-5729

CONSTRUCTIVE MODEL OF DATA STRUCTURES ADAPTATION

IN RAM: PART I. PROGRAM TEXT CONSTRUCTING

Purpose. Rapidly growing volumes of information systems data being manipulated significantly reduce the temporary algorithms effeciency of their processing . Effective data layout in RAM is one of the directions of solving this problem. It is necessary to develop the model to solve problems of efficient automated data layout in RAM. Methodology. For proc-esses simulation of data structures (DS) adaptation in RAM, the methodology of mathematical and algorithmic construc-tivism was applied. This approach involves the development of constructive and productive structures (CPS) with trans-formations of specialization, interpretation, specification and implementation. CPS development provides definition of expandable vector, signature of relations, transactions and constructive axioms. The most complex and essential part of the set of axioms is generated substitution rules that determine the output process of respective structures. Findings. CPS sys-tem was developed by the authors, consisting of the logical structure constructor of data, converters of logical structure in to a software interface and implementation in a programming language, constructors of scenarios and adaptation proc-esses. The result of the adaptation process constructor is software text generations of the class library that implements the specified logical data structure with appropriate processing operations and its compilation in binary code. Originality. Structural model of development processes and data structures adaptation to different software and hardware environ-ments was first proposed. It adapts date layout in the RAM and data processing algorithms. Application of constructivism in simulation allowed within a single approach and applied tools linking the data models and algorithms of their process-ing with performance criteria. Formation methodology of CPS system, mechanisms, and links between complementary CPS were improved. Modification of the constructor and converters allows changing and exploring the process of adapta-tion. Practical value. The developed model allows automating the data layout in RAM, which in turn increases the time efficiency of programs with significant processing of large and very large volumes of data.

(13)

REFERENCES

1. Akulovskiy V.G. Algebra dlya opisaniya dannykh v kompozitsionnykh skhemakh algoritmov [Algebra for describing the data in the compositional schemes of algorithms]. Problemy prohramuvannia – Problems in

Programming, 2012, no. 2-3, pp. 234-240.

2. Akulovskiy V.G. Osnovy algebry algoritmov, baziruyushcheysya na dannykh [Basic algebra algorithms based on data]. Problemy prohramuvannia – Problems in Programming, 2010, no. 2-3, pp. 89-96.

3. Kormen T., Leyzerson Ch., Rivest R., Shtayn K. Algoritmy: postroeniye i analiz [Algorithms: construction and analysis]. Saint-Petersburg, OOO «I. D. Vilyams» Publ., 2011. 1296 p.

4. Bosov A.A., Ilman V.M., Khalipova N.V. Strukturnaya slozhnost sistem [Structural complexity of systems].

Visnyk Dnipropetrovskoho natsionalnoho universytetu zaliznychnoho transportu imeni akademika

V. Lazariana [Bulletin of Dnipropetrovsk National University of Railway Transport named after Academician

V. Lazaryan], 2012, issue 40, pp. 173-179.

5. Doroshenko A.Ye., Akulovskiy V.G. Algebra algoritmov s dannymi i prognozirovaniye vychislitelnogo prot-sessa [Algebra of algorithms with data and prediction computational process]. Problemy prohramuvannia –

Problems in Programming, 2011, no. 3, pp. 3-10.

6. Drozhzhin V.V., Volodin A.M. Preobrazovaniye struktur dannykh v pole struktur dannykh [Convert data structures in the field of data structures]. Izvestiya penzenskogo gosudarstvennogo pedagogicheskogo

Univer-siteta im. V.G. Belinskogo [News of Penza State Pedagogical University named after V. G. Belinsky], 2011,

no. 26, pp. 380-385.

7. Shinkarenko V.I., Ilman V.M., Zabula G.V. Konstruktsionno-produktsionnaya model struktur dannykh na logicheskom urovne [Construction-production model of the data structures at the logical level]. Problemy

prohramuvannia – Problems in Programming, 2014, no. 2-3, pp. 10-16.

8. Ren J., Pan W., Zheng Y., Shi Z., Yan X. Array Based HV/VH Tree: an Effective Da-ta Structure for Layout Representation. Journal of Zhejiang University-SCIENCE C (Computers & Electronics), 2012, vol. 13, issue 3, pp. 232-237. doi: 10.1631/jzus.c1100193.

9. Attali D., Lieutier A., Salinas D. Efficient Data Structure for Repre-senting and Simplifying Simplicial Com-plexes in High Dimensions. Intern. Journal of Computational Geometry & Applications, 2012, vol. 22, issue 4, pp. 279-303. doi: 10.1142/S0218195912600060.

10. Bentley J.L. Writing Efficient Programs. New Jersey, Prentice-Hall in Englewood Cliffs Publ., 1982. 170 p. 11. Drepper U. What Every Programmer Should Know About Memory. Raleigh, RedHat, Inc. Publ., 2007. 114 p. 12. Shynkarenko V.I., Ilman V.M. Constructive-Synthesizing Structures and Their Grammatical Interpretations.

I. Generalized Formal Constructive-Synthesizing Structure. Cybernetics and Systems Analysis, 2014, vol. 50, issue 5, pp. 655-662. doi: 10.1007/s10559-014-9655-z.

13. Shynkarenko V.I., Ilman V.M., Skalozub V.V. Structural Models of Algorithms in Problems of Applied Pro-gramming. I. Formal Algorithmic Structures. Cybernetics and Systems Analysis, 2009, vol. 45, issue 3, pp. 329-339. doi: 10.1007/s10559-009-9118-0.

14. Weiss M.A. Data Structures and Algorithm Analysis in C++. New Jersey, Pearson Education Inc., Addison-Wesley Publ., 2014. 656 p.

15. Ziegler C.A. Programming System methodologies. New Jersey, Prentice-Hall, Englewood Cliffs Publ., 1983. 260 p.

Статьярекомендованак публикациид.т.н., проф. В. В. Скалозубом (Украина); д.физ.-мат.н.,

проф. В. Е. Билозёровым (Украина)

References

Related documents

In this work, the modified homotopy perturbation method was successfully used for solving Fisher’s equation with time-fractional derivative, and the classical HPM has been used

19% serve a county. Fourteen per cent of the centers provide service for adjoining states in addition to the states in which they are located; usually these adjoining states have

patents on human milk components: human lactoferrin, human milk oligosaccharides, the probiotic derived from human milk-Lactobaccillus reuteri, and 3 of the Prolacta Bioscience

If one has a control group and a group treated with methyl prednisolone, and they are killed at the same time (in this instance on the 21st day) one finds that the tumors

Field experiments were conducted at Ebonyi State University Research Farm during 2009 and 2010 farming seasons to evaluate the effect of intercropping maize with

The literature indicates that good public sector auditing has a significant impact on domestic levels of corruption (Gustavson &amp; Sundström, 2016), as it is a cornerstone and

• Follow up with your employer each reporting period to ensure your hours are reported on a regular basis?. • Discuss your progress with

Trying to fill the gap in the literature, this study proposed an integrated BSC–FAHP model for evaluat- ing and selecting suppliers by considering the characteristics of