КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Принцип локалізаціїПаралельна робота ряду виконавців над різними модулями однієї і тієї ж програми може бути достатньо ефективною лише в тому випадку, якщо окремі виконавці матимуть можливість працювати незалежно один від одного. Реалізація ж цієї можливості викликає певні труднощі. Зокрема, в процесі запису алгоритму підзадачі, зазвичай, виникає необхідність оголошення деяких додаткових типів значень і (або) програмних об'єктів, наприклад допоміжних змінних для представлення проміжних результатів. Якщо всі їх описувати в основній програмі, то паралелізму і незалежності при розробці різних частин програми досягти не вдасться. При цьому один і той же ідентифікатор в програмі не повинен використовуватися для різних цілей. З одного боку, ця вимога зрозуміла, оскільки інакше може виникнути неоднозначність розуміння і інтерпретації програми. З іншого боку, абсолютне виконання цієї вимоги приводить до значних труднощів при паралельній роботі виконавців в частині узгодження ідентифікаторів, які використовуються в підпрограмах і в основній програмі. Зазначені труднощі усуваються в більшості імперативних мов програмування завдяки блоковій структурі програми і принципу локалізації, суть якого полягає в тому, що будь-якій підпрограмі дозволяється вводити у вживання свої внутрішні програмні об'єкти (змінні, константи, тощо), необхідні для її виконання. Такі програмні об'єкти називаються локальними і мають певний сенс (область дії) лише в межах даної підпрограми. При цьому об'єкти, що описуються в основній програмі глобальні і доступні в будь-якому місці програми, у тому числі і у підпрограмах.. Відповідно підпрограма в загальному випадку може містити: 1. Глобальні дані – змінні і константи, які описані в основній програмі, і доступ до яких дозволений із тіла будь-якої підпрограми. Глобальні ідентифікатори в тілі підпрограми мають той же самий сенс, який вони мали до моменту входу в підпрограму. Під усі глобальні дані пам'ять виділяється на етапі компіляції і її розмір залишається незмінним протягом всього часу роботи програми. За допомогою глобальних ідентифікаторів здійснюється постійний і безпосередній зв'язок підпрограми з охоплюючим її блоком. 2. Локальнідані - змінні і константи, які описані в підпрограмах. Область їхньої дії – та підпрограма, у якій вони описані, і всі вкладені в неї підпрограми. Локальна змінна створюється при кожному виклику підпрограми і знищується, як тільки завершилося її виконання. Тому поза підпрограмою локальна змінна недоступна. Поняття "глобальності" і "локальності" варто розуміти відносно - стосовно конкретного блоку: дані, описані в блоці, вважаються глобальними по відношенню до усіх внутрішніх блоків.
|