Призначення компонувальника та завантажувача. В чому різниця між статичним та динамічним компонуванням бібліотек? Дайте порівняльну характеристику програмних модулів та динамічних бібліотек. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Призначення компонувальника та завантажувача. В чому різниця між статичним та динамічним компонуванням бібліотек? Дайте порівняльну характеристику програмних модулів та динамічних бібліотек.



Об'єктний модуль можна виконувати лише після спеціальної додаткової обробки (компоновки), яка здійснюється спеціальною програмою-компонувальником.

Розглянемо у загальних рисах процес компоновки. Програма будується з інструкцій і операторів. У свою чергу, операторів включають вирази, які складаються з операцій і операндів. Принаймні, частини операндів у виразах повинні відповідати окремі "ділянки" оперативної пам'яті, що призначаються, наприклад, для збереження результатів обчислень. В ході трансляції встановлюється відповідність між операндами і адресами областей пам'яті обчислювальної машини. Так от завдання компонувальника полягає в узгодженні адрес у всіх фрагментах коди, з яких збирається готова до виконання програма. Компонувальник відповідає за те, щоб конкретному операнду вираження відповідала певна область пам'яті. Компонувальник також додає до компонованої програми коди так званих бібліотечних функцій (вони забезпечують виконання конкретних дій - обчислення, виведення інформації на екран дисплея і так далі), а також код, що забезпечує розміщення програми в пам'яті, її коректний початок і завершення.

Завантажувач - програма, яка готує об'єктну програму до виконання і ініціює її виконання. • Детальніше функції Завантажувача наступні: • виділення місця для програм в пам'яті (розподіл); • фактичне розміщення команд і даних в пам'яті (завантаження); • дозвіл символічних посилань між об'єктами (скріплення); • налаштування всіх величин в модулі, залежних від фізичних адрес відповідно до виділеної пам'яті (переміщення); • передача управління на вхідну крапку програми (ініціалізація).

Розглянемо суть динамічного і статичного скріплення (або компоновки).

Статичне скріплення (static linking) має місце в процесі скріплення програми, коли для створення виконуваного exe-файлу зв'язуються воєдино різні об'єктні obj-модулі, lib-файлі бібліотек і як правило, скомпільовані res-файлі ресурсів.

Термін динамічне скріплення (dynamic linking) відноситься до процесів, які Windows використовує для того, щоб зв'язати виклик функції в одному з модулів з реальною функцією з DLL. На відміну від статичного скріплення динамічне скріплення має місце під час виконання програми. У виконуваний файл занесена лише інформація про місцезнаходження функцій DLL (цю інформацію додаток отримує з так званих бібліотек імпорту). Звичайна windows-програма є виконуваним файлом (програмний модуль), який зазвичай створює одне або більш за вікна, а для здобуття даних від користувача використовує цикл обробки повідомлень. Бібліотеки (DLL), що динамічно підключаються, як правило, безпосередньо не виконуються і зазвичай не отримують повідомлень. Вони вдають із себе окремі файли з функціями, які викликаються програмами і іншими DLL для виконання певних завдань. DLL активізується лише тоді, коли інший модуль викликає одну з функцій, що знаходяться в бібліотеці.

 

Поняття ресурсу програми, наведіть приклади ресурсів. Що таке редактори ресурсів, транслятори ресурсів. Складові інтегрованого середовища програмування та їх функціональна характеристика. Мови четвертого покоління (4 GL).

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

Переваги використання ресурсів: вони завантажуються у пам’ять лише при звертання до них, тим самим досягається економія пам’яті; властивості ресурсів підтримується системою автоматично, не потребуючи від програміста написання додаткового коду.

Опис ресурсів зберігається окремо від програми у текстовому файлі з розширенням *.RC і компілюється спеціальним транслятором ресурсів, після чого отримуємо файл з розширенням *.RES. У виконуючий файл ресурси включається  компонувальником.

Найбільш часто використовуємі ресурси: піктограми, курсори, бітові зображення, строки, діалогові вікна, меню, акселератори.

Редактор ресурсів дозволяє, наприклад, самостійно змінювати інтерфейс (у тому числі і мову меню) будь-якої програми. Крім того, за допомогою редактора можливо роздивлятися, змінювати і видаляти текст зображення, значки, меню, діалоги, звуки, анімацію тощо.

Інтегроване середовище програмування – система програмних засобів, що використовується програмістами для розробки ПЗ.

Складається з редактора текстів, компілятора та/чи інтерпретатора, компонувальника, завантажувача, відлагоджувача. Іноді містить засоби для інтеграції із системою управляння версіями, різноманітні інструменти для спрощення конструювання графічного інтерфейсу користувача. Прикладом ІСП є NetBeans, Eclipse, Turbo Pascal, Borland C++, Borland Delphi та ін.

Хоч й існують ІСП, призначені для декількох мов - Eclipse чи Microsoft Visual Studio, частіше усього вони призначені для одної визначеної мови, наприклад Visual Basic.

До мов 4го покоління відносяться програмні інструменти, які дозволяють користувачам розроблювати ПЗ, маючи при цьому мінімальні технічні навички, а також нові засоби розробки, які підвищують продуктивність праці програміста.

Мови 4GL поступово стають менш процедурними чи навіть не процедурними, у порівнянні із звичайними мовами програмування. Оскільки, процедурна мова потребує опису послідовності кроків (процедур), які чітко вказують комп’ютеру, що і яким чином це повинно бути зроблено. Тоді як не процедурні мови потребують від користувача тільки вказівки що потрібно зробити, без детального опису як це повинно виконатись.

Існує 7 категорій мов 4GL: мови запитів, генератори звітів, графічні мови, мови програмування дуже високого рівня, пакети прикладних програм, а також деякі види програм для ПК.

 

Узагальнена архітектура подіє-орієнтованого програмного забезпечення. Що таке повідомлення, структура повідомлення, метод обробки повідомлень? Як здійснюється диспетчеризація повідомлень? Що таке подія? Що таке обробник події? Наведіть основні групи обробників подій.

Подіє-орієноване програмування – це спосіб побудови ПЗ, при якому в коді явним чином виділяється головний цикл додатку, тіло якого складається з 2х частин: виборки події та обробки події

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

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

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

Принцип независимости обработки от процесса создания объектов приводит к появлению двух параллельных процессов в рамках одной программы: процесса создания объектов и процесса обработки данных.

Событие с точки зрения языка С++ – это объект, отдельные поля которого характеризуют те или иные свойства передаваемой информации, например:

struct Event

{   int what; union

{ MouseEventType mouse;

KeyDownEvent keyDown;

MessageEvent message;

};

Объект Event состоит из двух частей. Первая (what) задает тип события, определяющий источник данного события. Вторая задает информацию, передаваемую с событием. Для разных типов событий содержание информации различно. Поле what может принимать следующие значения:

evNothing – это пустое событие, которое означает, что ничего делать не надо. Полю what присваивается значение evNothing, когда событие обработано каким-либо объектом.

evMouse – событие от мыши.

Событие от мыши может иметь, например, такую структуру:

struct MouseEventType

{ int buttons; int doubleClick; TPoint where;

};

где buttons указывает нажатую клавишу; doubleClick указывает был ли двойной щелчок; where указывает координаты мыши.

evKeyDown – событие от клавиатуры.

Событие от клавиатуры может иметь, например, такую структуру:

struct KeyDownEvent

{ union

{ int keyCode; union

{ char charCode;

char scanCode;

}; }; };

evMessage - событие-сообщение от объекта.

Для события от объекта (evMessage) задаются два параметра:

command – код команды, которую необходимо выполнить при появлении данного события;

infoPtr – передоваемая с событием (сообщением) информация.

struct MessageEvent

{ int command;

  void *infoPtr;

};

Методы обработки событий.

Следующие методы необходимы для организации обработки событий (названия произвольны).

GeEvent – формирование события;

Execute реализует главный цикл обработки событий. Он постоянно получает событие путем вызова GeEvent и обрабатывает их с помощью HandleEvent. Этот цикл завершается, когда поступит событие «конец».

HandleEvent – обработчик событий. Обрабатывает каждое событие нужным для него образом. Если объект должен обрабатывать определенное событие (сообщение), то его метод HandleEvent должен распознавать это событие и реагировать на него должным образом. Событие может распознаваться, например, по коду команды (поле command).

ClearEvent очищает событие, когда оно обработано, чтобы оно не обрабатывалось далее.

Основні групи обробників подій:

· Події від миші:

OnClick. OnDblClick викликаються, коли відбулося клацання, або подвійне клацання мишею;

· події на зміну розміру елементу управління:

OnResize викликається при завершенні операції зміни розміру елементу управління;

OnCanResize викликається перед операцією зміни розміру.

· на події при перетаскуванні елемента управління:

OnDragOver виникає при перетаскуванні елемента управління над даним

· події на стикування елементів управління.

OnDockDrop і OnDockOver викликаються для стиковочних станцій під час стикування, а OnUnDock – при роз’єднанні

· події на передачу фокуса введення:

OnEnter OnExit  викликається, коли елемент отримує або втрачає фокус введення.

· події від клавіатури:

OnKeyPress викликаються, коли була натиснута клавіша.

 

Назвіть основні принципи розробки програмного інтерфейсу з користувачем в сучасному програмному забезпеченні. Які основні складові графічного інтерфейсу з користувачем (GUI)? Принципи побудови багато віконних SDI та MDI застосувань. Чим відрізняються модальні та немодальні вікна?

Основою принципів розробки програмного інтерфейсу з користувачем є людські можливості. Нижче представлені основні принципи, що застосовуються при розробці будь-яких інтерфейсів користувачів:

1) Облік знань користувача. У інтерфейсі потрібно використовувати терміни та поняття, взяті із досвіду майбутніх користувачів.

2) Погодженість. У тому сенсі, що однотипні операції повинні виконуватись одним тим же способом.

3) Мінімум несподіванок. Поведінка системи повинна бути прогнозованою.

4) Здатність до відновлення. Інтерфейс повинен мати засоби, які дозволяють користувачеві відновлювати дання після помилкових дій.

5) Посібник користувача. Інтерфейс повинен надавати потрібну інформацію у випадку помилок користувача і підтримувати засоби контекстно-залежної довідки.

6) Облік різнорідності користувачів. Наявність засобі, що взаємодіють із користувачами різного рівня кваліфікації та можливостей.

Основні складові GUI: вікна, піктограми, меню, показники, графічні елементи.

Современные многооконные приложения чаще всего строятся в стиле SDI (SDI - Single Document Interface), который в противоположность MDI не накладывает ограничений на положение и размеры вспомогательных форм, каждая из которых при необходимости может иметь свое главное меню (в стиле SDI реализована, например, среда Delphi). Для создания форм в этом случае используется стиль fsNormal.

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

Модальные окна приложения получают фокус ввода и не дают возможности перевести его на другое окно данного приложения пока данное модальное окно не будет закрыто.

Немодальные окна не фиксируют фокус ввода подобным образом, позволяя работать одновременно с несколькими активными окнами в рамках приложения.

 



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.12.172 (0.036 с.)