Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; Нарушение авторских прав |