Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Современные виды модульности





 

Модуль – общетехнический термин, означающий элемент или блок, стандартным образом стыкуемый с другими модулями для построения составной конструкции. В классических языках программирования модуль – это единица компиляции и сборки, т.е. подпрограмма или головная программа. Независимая компиляция и библиотеки модулей – основа повторного их использования. В конце 70-х появились модули, в той или иной степени реализующие концепцию АТД. Таковы АТД в CLU, модуль в Модуле-2, unit в Турбо-Паскале, пакет в Аде и файл в С. Такой модуль состоит из двух частей – интерфейса и реализации. В интерфейсном разделе (заголовочный (header) файл в С) описаны видимые данные и процедуры и импортируемые извне (# include) – вся информация, достаточная для задействования модуля. В разделе реализации – тела интерфейсных процедур и инкапсулированные данные и процедуры, защищенные от случайного неправильного использования их другими частями программы. В языке С инкапсуляция внутри файла имеет место для static данных. Вопрос 3. Пример – интерфейс АТД «стек символов»:

 

// файл stack.h

int stack_id, size;

int Create_stack (int size); // создает стек и возвращает его идентификатор

void Push (stack_id, char); // затолкнуть символ

char Pop (stack_id); // вытолкнуть символ

Destroy_stack (stack_id); // уничтожает стек

 

В файле stack.с структура данных стека объявлена как static char v [size]; и закодированы все 4 интерфейсные процедуры.

 

Большое преимущество – возможность раздельной компиляции.h и.c файлов.

Вопрос 4.

АТД, реализованный как файл С, не дотягивает до полноценного типа данных, каким является любой стандартный (встроенный) тип:

· Необходимо самому кодировать процедуры создания и уничтожения экземпляра

· Этот тип не поддерживается компилятором в смысле контроля правильности использования

· Этот тип не передается функциям как параметр

·







Date: 2016-05-25; view: 450; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию