69751

Принцип локалізації

Домашняя работа

Информатика, кибернетика и программирование

Метод покрокової деталізації та апарат процедур якраз і дають змогу вести таку паралельну розробку програм. Створені часткові алгоритми подають у вигляді досить автономних частин програми - описів процедур, які потім достатньо вставити в розділ опису процедур і функцій програми.

Украинкский

2014-10-09

38 KB

1 чел.

Самостійне вивчення

Тема 9. Принцип локалізації

Для розв'язування складних задач за допомогою комп'ютера, як зазначено, застосовують метод низхідного програмування і покрокової деталізації. У цьому випадку задачу розділяють на простіші підзадачі, які доручають виготовляти різним програмістам або колективам, щоб пришвидшити виготовлення великої програми. Метод покрокової деталізації та апарат процедур якраз і дають змогу вести таку паралельну розробку програм. Створені часткові алгоритми подають у вигляді досить автономних частин програми - описів процедур, які потім достатньо вставити в розділ опису процедур і функцій програми. За такої організації роботи бажано, щоб реалізація окремих алгоритмів була якомога автономнішою, а в завданні з виготовлення певної процедури потрібно задавати тільки її функцію і зв'язки за вхідними і вихідними даними.

Однак у процесі розробки часткових алгоритмів виникає потреба вводити додаткові типи значень, програмних об'єктів, наприклад, допоміжних змінних для подання проміжних результатів. У цьому випадку можуть виникнути труднощі, пов'язані з тим, що однакові імена можуть мати тільки одне призначення і кожне з них може бути використане для позначення тільки однієї змінної.

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

program LOC(output);

const n=1;

var t: real; x: char;

procedure P(x, y: real);

var n: real;

begin

n:=x+t;

t:=y;

writeln(n, t, x);

end,

begin

t:=n/2;

x:="+";

P(n, 0.8);

writeln(n, t, x);

end.

Це приклад програми, в тілі якої описана процедура Р. У блоці головної програми описано чотири ідентифікатори: n, t, х і Р. їхні описи чинні в усьому описі головної програми, за винятком, можливо, опису процедур і функцій.

Опис процедури може містити три типи ідентифікаторів: формальні параметри, глобальні й локальні ідентифікатори.

Щодо формальних параметрів, то відомо, що вони можуть бути параметрами-значеннями і параметрами-змінними. Змінні, що відповідають параметрам-значенням, діють тільки протягом виконання процедури; параметри-змінні тільки вказують на відповідні змінні програми, яка викликає, і є фактичними параметрами.

У наведеному вище прикладі параметрами процедури Р є формальні параметри-значення. У разі звертання їм будуть присвоєні значення фактичних параметрів x=1, v=0.8, а після виходу з процедури вони стають недоступними.

Глобальні ідентифікатори не є формальними параметрами і не описані в тілі процедури, вони можуть мати той самий сенс, що й до моменту входження в процедуру. В процедурі Р глобальним ідентифікатором є змінна t. У тілі процедури ця змінна має значення r=0.5. Отже, за допомогою глобальних ідентифікаторів можливий безпосередній зв'язок процедури з блоком, який її охоплює, обминаючи формальні параметри.

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

У прикладі, який ми розглядаємо, п описана в головній програмі як стала. Після входження в процедуру вона втрачає сенс сталої і набуває сенсу дійсної змінної. Програма працює так: t=0.5; х='+'. Під час входження в процедуру змінним х і у, що є формальними параметрами, присвоюються значення х=1; y=0.8. Дійсна змінна n=1+0.5= 1.5 (оскільки t зберігає свій сенс і у процедурі як глобальна змінна), t=0.8. Отже, оператор виведення дає 1.5; 0.8; 1.0. Після виходу з процедури виводяться величини, позначені такими ж ідентифікаторами. Однак тепер будуть виведені дещо інші значення - 1; 0.8; +, оскільки перший і третій ідентифікатори набувають сенсу, описаного в головній програмі, і виводяться значення, які вони мали до входження в процедуру; тільки t, як глобальна змінна, має значення, одержане в процедурі.

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

var x, у: real;

………….

procedure P1(b: real; var y: real);

………….

P1(x,y);

…………

Цю колізію транслятор усуває, вводячи в процедурі замість у іншу змінну, наприклад у 1.

Отже, як локалізовані в процедурі можна брати довільні ідентифікатори, які не використовуються як формальні параметри цієї процедури і не збігаються з глобальними ідентифікаторами. З іншими ідентифікаторами, що використані поза цією процедурою, вони можуть збігатися.

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

procedure P(a: real; var b: real);

var с: integer;

procedure P1(d: integer; x: real);

………

begin

………

end;

procedure P2()

……..

begin

……..

end;

…….

Begin

…….

      P1();

      …….

      P2();

      …….

      end

Звертання до процедур P1 і Р2 можливе лише в процедурі Р, причому формальні параметри зовнішньої процедури можна використовувати як фактичні параметри у разі звертання до локалізованих у ній процедур.


 

А также другие работы, которые могут Вас заинтересовать

33381. Структура однопроцессорной СУ с двумя магистралями 35 KB
  Схема микропроцессорной управляющей системы Расширители стандартных арифметических функций МП УЧПУ необходимы для повышения производительности МПС при выполнении операций входящих в базовый набор арифметических функций. Примером реализации данной структуры являются УЧПУ 2С42 Маяк600. Уже в однопроцессорных УЧПУ в полной мере определились основные принципы организации МПС УЧПУ обеспечивающие возможность расширения системы при сохранении функциональной гибкости и обеспечении надежности функционирования при малом времени восстановления в...
33382. Структура многопроцессорной СУ с параллельным обменом информации между процессорами 29 KB
  Верхний уровень управления системная магистраль. Нижний уровень управления локальные магистрали ВЧС1 ВЧС n. В качестве примера реализации данной структуры можно назвать СУ промышленных роботов: РБ242Б двухпроцессорная двухуровневая система управления с БОП Сфера 36 семипроцессорная двухуровневая система управления с модулем связи.
33383. Структура многопроцессорной СУ с последовательным обменом информации между процессорами 29.5 KB
  2 б в отличие от первой МП ВЧС имеют равные возможности обмена данными. Обмен осуществляется через адаптеры связи АС1АС3 подключенные к локальным магистралям соответствующих вычислителей и имеющих выходы на два последовательных канала обмена. Достоинством данной структуры является конструктивная автономность локальных ВЧС вычислитель возможность их встраивания в аппаратуру расположенную в различных местах общей системы управления при минимальном числе линий обмена и хорошей а в перспективе при использовании оптических каналов обмена ...
33384. Структура с ее перекрестными связями 29.5 KB
  Коммутация может осуществляться в каждом коммутирующем узле КУ матричной системы обеспечивая физическое подсоединение любого модуля памяти МП к любому процессору ПРЦ. Выход из строя части коммутатора не приводит к отказу системы так как функции процессоров коммутируемых этой частью могут быть распределены между другими процессорами системы. Данные системы используются там где необходимо получить максимальную производительность при вычислениях либо управлении.
33385. Структура с многошинными связями 29 KB
  ММПС с многошинными связями В ММПС с многошинными связями каждый процессорный модуль имеет доступ к любому модулю памяти при помощи собственных шин. Пропускная способность схем с многошинными связями ниже чем с матричным коммутатором но у них меньше и аппаратные затраты.
33386. Структура с общей шиной и общими модулями памяти 30 KB
  ММПС с общей шиной отличаются наибольшей простотой организации связей и наименьшими аппаратными затратами. Основными недостатками таких систем являются ограниченная пропускная способность общей шины и невысокая надежность так как выход из строя общей шины приводит к отказу всей системы. Структуры с общей шиной ШД в настоящее время получили наибольшее распространение.
33387. Структура с общей шиной и раздельной памятью 31.5 KB
  ОШ служит только для межпроцессорного обмена в процессе взаимодействия программных модулей выполняемых на разных ПРЦ. ММПС с объединёнными локальной и общей памятью процессоров Физически отдельная ОМП общая память может располагаться как на шинах ПРЦ так и на ОШ рис. Наибольшим быстродействием обладают структуры в которых общая память физически отделена и расположена на шинах ПРЦ так как в этих случаях отсутствуют конфликты при одновременных обращениях одного из ПРЦ в область локальной памяти и других ПРЦ в область общей памяти....
33388. Система управления МАЯК 600 на базе промышленного компьютера. Характеристика, структура 36 KB
  УЧПУ Маяк600 относится к многопроцессорным системам класса CNC. Структурная схема УЧПУ представлена на рис. УЧПУ предназначено для управления технологическим оборудованием и позволяет управлять 8 следящими приводами подач. Основные технические характеристики УЧПУ Маяк600 Наименование параметра Величина 1.
33389. Система управления Маяк 600 на базе ПК. Характеристика СУ, назначение модулей СУ 41.5 KB
  Основные технические характеристики УЧПУ Маяк600 Наименование параметра Величина 1. Максимальное число связей с электрооборудованием станка для одного блока вводавывода входы выходы 48 32 УЧПУ состоит из двух функциональных блоков: блока управления БУ и пульта оператора. Возможность работы с различными комбинациями модулей позволяет оптимально сконфигурировать УЧПУ применительно к управлению конкретным технологическим оборудованием. Компьютер БУ управляет УЧПУ по программе базового программного обеспечения хранящейся в электронном Flsh...